У меня возникли проблемы с обновлением wijgrid с использованием результата json, полученного от вызова ajax. Виджрид, похоже, не перерисовывается. Вот Релевент JavaScript/JQuery:Устранение неполадок WijGrid с помощью пользовательского фильтра
$(function() {
var datasource = new wijdatasource({
data: [{"Id":1,"Name":"Sidney","Type":"Engineer"},{"Id":4,"Name":"Mavis","Type":"Student"},{"Id":5,"Name":"Betty","Type":"Student"},{"Id":80,"Name":"Taylor","Type":"Student"},{"Id":92,"Name":"Graham","Type":"Student"},{"Id":94,"Name":"Belle","Type":"Student"},{"Id":100,"Name":"Terrence","Type":"Student"},{"Id":106,"Name":"William","Type":"Student"},{"Id":108,"Name":"Synthia","Type":"Student"},{"Id":109,"Name":"Lucious","Type":"Customer"},{"Id":116,"Name":"Leonard","Type":"Student"},{"Id":119,"Name":"Katy","Type":"Student"},{"Id":122,"Name":"Sarah","Type":"Student"},{"Id":127,"Name":"Amy","Type":"Student"},{"Id":178,"Name":"Carl","Type":"Student"}],
reader: new wijarrayreader([
{ name: 'Id', mapping: 'Id' },
{ name: 'Name', mapping: 'Name' },
{ name: 'Type', mapping: 'Type' }
])
});
$('#ClientTable').wijgrid({
allowSorting: true,
allowPaging: true,
pageSize: 10,
data: datasource,
columns: [
{ visible: false },
{
cellFormatter: function (args) {
var wg = $.wijmo.wijgrid,
row = args.row;
if ((row.type & wg.rowType.data) && (row.state === wg.renderState.rendering)) {
args.$container.append($('<a href="/Client/Update/' + row.data.Id + '">' + row.data.Name + '</a>'));
return true;
}
}
},
{}
]
});
$('#pageSize').bind('change', function (e) {
$('#ClientTable').wijgrid('option', 'pageSize', parseInt($(e.target).val()));
});
$('#filterBy').keyup(function (e) {
var filter = $('#filterBy').val();
if (typeof filter == 'string' && filter.length > 1) {
$.ajax({
url: '/Home/MemberAsyncResults',
async: true,
traditional: true,
type: 'GET',
data:
{
filter: filter
},
success: function (response) {
// datasource.data = response;
// datasource.read();
datasource.load(response, false);
$('#ClientTable').wijgrid('ensureControl', true);
$('#ClientTable').wijgrid('doRefresh');
},
error: function (e) {
var breakOnThisLine = 1;
}
});
}
});
});
Кроме того, здесь Релевент HTML:
<label for="pageSize">Page Size</label>
<select id="pageSize">
<option>10</option>
<option>25</option>
<option>50</option>
<option>100</option>
</select>
<label for="pageSize">Filter By</label>
<input type="text" id="filterBy" />
<table id="ClientTable"></table>
Когда точка останова устанавливается внутри метода успеха вызова AJAX, возвращается правильные данные с сервера. Тем не менее, код для повторного заполнения источника данных элемента управления wijgrid или для реиндексации элемента управления не должен быть прав ...
В соответствующей заметке я не был уверен, что имя или свойства отображения wijarrayreader для. Я думаю, что wijarrayreader настроен правильно, но я только сделал образованное предположение, основанное на некоторых примерах.
Большое спасибо заранее!