0
我在使用从ajax调用返回的json结果更新wijgrid时遇到了一些麻烦。 wijgrid似乎没有重绘。这里是培训相关的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的设置是正确的,但我只是根据一些例子进行了有根据的猜测。
非常感谢提前!