Сетка: удаленный источник данных

Я пытаюсь реализовать W2UI Grid с удаленным источником данных, изначально он работал, используя страницу aspx, возвращающую результаты.

С тех пор я перешел на API, чтобы можно было тянуть и обновлять данные

Проблема или проблема, с которой я постоянно сталкиваюсь, - это необходимость взломать и урезать мои возвращенные данные: "{\"status\":\"success\",\"total\":\"X\",\"records\":"....

Вместо того, чтобы просто возвращать IEnumerable, это вызывает проблемы с другими компонентами, так как теперь мне нужно дублировать логику и т. Д.

Я надеюсь, что я что-то упустил, а не недостаток в W2UI, который всегда нуждается в статусе / общем результате в первую очередь

1 ответ

Кажется, для работы требуется общее количество и статус. Используя C#, я создаю класс, который обрабатывает это более или менее автоматически:

// a few using statements that are needed
using NewtonSoft.Json;
using System.Data;
using System.Data.SqlClient; 

// the class we will need to Serialize
public class w2return
{
    public string status = "success";
    public int total = 0;
    public DataTable records;
}

Теперь в функции веб-службы сделайте что-то вроде:

w2return x = new w2return();
// write some code to return a DataTable
x.records = SomeCodeThatReturnsDataTable();
x.total = x.records.Rows.count();

return JsonConvert.SerializeObject(x); // this assumes your function returns a string

Поскольку процесс сериализации оборачивает все это в переменную-член, называемую "d", вам необходимо проанализировать ее обратно на стороне клиента с помощью обратного вызова w2ui "parse" (при условии, что вы используете jQuery):

parser: function (responseText) { return $.parseJSON($.parseJSON(responseText).d); }

Надеюсь, это кому-нибудь поможет.

Другие вопросы по тегам