我有这个代码只是为了从已加载的jqGrid发送数据:
jQuery("#bedata").click(function(){ //Function for button "bedata"
var postData = "SOME DATA TO SEND"
//Sending data:
$.ajax({
type: "POST";
url: "GuardaFila.action", //Action called to data treatament (Struts 2)
data : {
jgGridData: postData, //PARAMETER jgGrdData with variable "postData" value
customData: "someinfo" //Just another parameter called "customData" with more data,
},
dataType:"json",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
//Success function has the key that I am looking for:
success: function(response, textStatus, xhr) {
//SOME CODE HERE TO REFILL jqGrid.
alert("success");
},
error: function(xhr, textStatus, errorThrown) {
alert("error");
}
});
});
jqGrid是以这种方式创建的:
jQuery("#rowed3").jqGrid({
url:'CargaTabla.action',
datatype: "json",
colNames:['id', 'Direccion', 'Nombre'],
colModel:[
{name:'id',index:'id', width:55},
{name:'direccion',index:'direccion', width:90, editable:true},
{name:'nombre',index:'nombre', width:100,editable:true}
],
jsonReader: {
root: 'gridModel',
id: '0',
cell :"",
repeatitems: false
},
(....... etc)
因此,jqGrid表的id是#rowed3。我知道在ajax函数中:
success: function(response, textStatus, xhr) {
//SOME CODE HERE TO REFILL jqGrid.
alert("success");
},
响应参数在网格的JSON中有一个新内容。我尝试了一些方法,用其数据重新填充网格,将其“datastr”参数与其内容和其他内容一起设置。有人面临这个问题吗?
谢谢。
答案 0 :(得分:1)
不要在这里重新发明轮子。 jqGrid已经知道如何获取数据,因此您无需调用$.ajax
。只需更改网格参数并告诉它做它的事情(从内存;如果需要,更正确的函数名称,但这会给你的想法):
var opts = { url: "GuardaFila.action", postData: postData };
grid.setGridParam(opts);
grid.trigger("reloadGrid");
答案 1 :(得分:1)
我认为您可能正在寻找grid.addJSONData
方法。
例如:
success: function (data, textStatus) {
if (textStatus == "success") {
var grid = $("#rowed3")[0];
grid.addJSONData(JSON.parse(data.d));
}
},
请记住,您需要确保您的JSON数据格式与JSON阅读器中指定的格式相匹配。