Вызов функции Javascript для метода c # для получения массива целых чисел для порядка столбцов datatables.net

0

Я должен заявить, что я не очень хорошо разбираюсь в Javascript.

Я создаю таблицу с использованием datatables.net. Datatable заполняется с помощью вызова общего обработчика, который затем вызывает базу данных (в С#) для получения значений. Это работает. Я бы хотел использовать функцию переупорядочения столбцов. Установка порядка осуществляется массивом целых чисел. Я хотел бы, чтобы эти значения сохранялись в базе данных, а затем назначали их использование. Сначала я не думал о первой части заказа на сохранение столбцов, так как я хочу сначала обработать процесс "получить".

В нормальном мире код для установки переупорядочения столбца заключается в его кодировании в функцию datatables functionlity:

 <script>
    $(function () {

        var columnOrder = [4, 3, 2, 1, 0, 5];

        $("#<%=DT.ClientID%>").dataTable({
            dom: 'Rlfrtip',
            colReorder: {
                order: columnOrder
            },
            "bProcessing": true,
            "bServerSide": true,
            "bFilter": false, //Hide the search box
            "sPaginationType": "full_numbers",
            "sAjaxSource": "../DataHandler/Data.ashx",

Поэтому я хотел бы заполнить "columnOrder" значениями из базы данных. я попытался использовать веб-метод, а затем получил это значение с помощью $.ajax({+ Post). Это пошло на мой код С# позади метода на default.aspx, но вернул пустой объект. Он также, кажется, заполняет данные, прежде чем входить в webmethod, поэтому время вызова также неверно.

ВОПРОС: Я почесываю голову, если я слишком усложняю это. Все, что я хочу, это возврат массива целых чисел от aС# серверного метода к переменной javascript. Затем используйте эту переменную, чтобы установить порядок столбца. Любое предложение о том, как я могу просто получить массив целых чисел из С# в переменную, - это в основном то, что мне нужно начинать. благодарю!

Теги:
datatable

1 ответ

0

Все, что я хочу, это возврат массива целых чисел от aС# серверного метода к переменной javascript.

У меня есть метод, который возвращает массив целых чисел, а не массив, но он работает как один в javascript.

Метод ниже

[WebMethod]
    public static List<int> getAdd_Zip(int ZIP_ID)
    {
        try
        {
            BusinessContacts objContacts = new BusinessContacts();
            DataTable dtInf = objContacts.getAdd_Zip(ZIP_ID);
            List<int> lRes = new List<int>();

            if (dtInf.Rows.Count > 0)
            {
                lRes.Add(Convert.ToInt32(dtInf.Rows[0]["COU_ID"]));
                lRes.Add(Convert.ToInt32(dtInf.Rows[0]["STE_ID"]));
                lRes.Add(Convert.ToInt32(dtInf.Rows[0]["MUN_ID"]));
            }

            return lRes;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

Обратите внимание, что метод возвращает список целых чисел, я объявляю datatable, затем я заполняю эту таблицу другим методом (это не важно), затем я заполняю список тремя значениями.

Итак, теперь у меня есть следующий метод javascript

function wsGetAdd_Zip(ZIP_ID) {
var AddZips = new Array();
var params = new Object();
params.ZIP_ID = ZIP_ID;
params = JSON.stringify(params);
$.ajax({
    type: "POST",
    url: "Contactos.aspx/getAdd_Zip",
    data: params,
    contentType: "application/json; charset=utf-8",
    async: false,
    success: function (result) {
        AddZips = result.d;
    },
    error: function (XMLHttpRequest, textStatus, errorThrown) {
        alert(textStatus + ": " + XMLHttpRequest.responseText);
    }
});

return AddZips;
}

Этот метод возвращает массив целых чисел.

Я надеюсь, это поможет вам.

  • 0
    Привет, спасибо за вашу помощь. ваш код имеет смысл. Я попробовал нечто подобное, используя ваш код в качестве руководства. ошибка, которую я получаю сейчас: «Не поддерживается для десериализации массива». Я думаю, что мне нужно вернуться к основам Javascript, чтобы понять это. с другой стороны. Было бы неправильно, если бы я получил все значения, которые мне нужны в коде c #, а затем использовал открытую переменную на этой странице и вызвал ее из javascript? Я знаю, что это сработает. я не уверен, является ли это лучшей практикой или нет. еще раз спасибо.
  • 0
    Вы использовали тот же код, который я дал вам? Эта ошибка произошла из-за JSON (я полагаю), если это так, вы должны импортировать json2.js. Я не могу вспомнить, где я скачал, но вы можете найти его в Google.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню