0
データベースからグリッド値を更新しています。 CSページからJSグリッドに値を渡します。削除、編集はdbと完全に連携しています。しかし検索後、グリッドは更新されません。私はCSページに検索値を渡し、DBから対応する検索値を取得できます。しかし、値はJSgridで更新されていません。JSGridが検索値で更新されない
var Status;
var lastPrevItem;
var clients =<%=gridData%>
$("#jsGrid").jsGrid({
width: "100%",
height: "450px",
filtering: true,
//filterable:true,
//inserting: true,
autosearch: true,
editing: true,
sorting: true,
paging: true,
autoload: true,
pageSize: 25,
pageButtonCount: 5,
deleteConfirm: "Do you really want to delete the Department?",
controller: //db,
{ loadData: function (filter) {
if (filter["ID"] != "" || filter["Name"] != "") {
return $.ajax({
type: "POST",
async: true,
processdata: false,
paging: true,
contentType: "application/json; charset=utf-8",
url: "myurl/mycsmethod",
data: "{'ID':'" + filter["ID"] + "','Name':'" + filter["Name"]+ "'}",
success: function (data) {
},
error: function (XHR, errStatus, errorThrown) {
var err = JSON.parse(XHR.responseText);
errorMessage = err.Message;
alert(errorMessage);
}
});
}
},
updateItem: function (clients) {
var result = $.Deferred();
alert(result);
var ajaxDeferred = $.Deferred().reject();
alert(ajaxDeferred);
ajaxDeferred.done(function (updatedItem) {
result.resolve(updatedItem);
}).fail(function() {
result.resolve(lastPrevItem);
});
return result.promise();
},
},
onItemDeleting: function (args) {
//its working fine
},
onItemEditing: function (args) {
//its working fine
},
data: clients,
fields: [
{ type: "control" },
{ name: "ID", visible: false, width: 0, validate: "required" },
{ name: "Name", visible: false, width: 0, validate: "required" },
]
});
私は、検索ボタンがトリガされるとjsgridで<% = gridData%>を更新したいです。
'lodaData'は、約束事か、ちょうど静的な項目の配列を返すべきです。実際の例では、クライアント側のフィルタリングを実装しました。上記のようにサーバー側のフィルタリングを実装する場合は、 '$ .ajax'(条件付きではない)を常に返してください。フィルタリングは 'loadData'を呼び出し、フィルタリングパラメータをサーバに送り、' $ .ajax'によって返されます。約束はフィルタリングされたデータで解決され、期待どおりに動作するはずです。 – tabalin