Сетка: удаленный источник данных
Я пытаюсь реализовать 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); }
Надеюсь, это кому-нибудь поможет.