0
Im正在從數據庫更新網格值。並將CS頁面的值傳遞給JSgrid。刪除,編輯與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'返回,promise將被過濾的數據解析,並且它應該按預期工作。 – tabalin