这是我在jQuery中的所有子网格代码。我的问题是,我与用户有一个下拉列表。每个用户都有自己的ID,通过GET方法传输。当我选择另一个用户时,我希望在子网格不同的值中显示,但是在我手动刷新页面(CRTL F5)之后,它并不是发生。我也使用Ajax和JSON。这是我的代码:
subGrid : true,
subGridRowExpanded: function(subgrid_id, row_id) {
//var projectIdRow = $('#list2').jqGrid('getCell',rowId,'projectid');
//alert(row_id);
var subgrid_table_id;
subgrid_table_id = subgrid_id+"_t";
$("#"+subgrid_id).html("<table id='"+subgrid_table_id+"'></table>");
$("#"+subgrid_table_id).jqGrid({
url:"/taskuri/subGrid/?id="+row_id+"&userid="+userAlocat,
datatype: "json",
colNames: ['SubTask',' ','Pri','Responsabil','Alocator','Alocat','Deadline','Estimat','Lucrat',' '],
colModel: [
{name:"SubTask",index:"SubTask",width:'770%',align:"left",sortable:false},
{name:'finished',index:'finished', width:'42%',sortable:false},
{name:"Pri",index:"Pri",width:'60%', sortable:true},
{name:"Responsabil",index:"Responsabil",width:'144%',sortable:false},
{name:"Alocator",index:"Alocator",width:'140%',sortable:false},
{name:"Alocat",index:"Alocat",width:'122%',sortable:false},
{name:"Deadline",index:"Deadline",width:'122%',sortable:false},
{name:"Estimat",index:"Estimat",width:'84%',align:"right",sortable:false},
{name:"Lucrat",index:"Lucrat",width:'94%',align:"right"},
{name:"Delete",index:"Delete",width:'48%',align:"right"},
],
height: '100%',
rowNum:20
});
var useridLogat = $("#userid").val();
},
gridComplete: function(){ //afiseaza subgridurile by default
var grid = $("#list2");
var svi_id = grid.jqGrid('getDataIDs');
$.each(svi_id, function (index, rowId) {
$.post('/taskuri/checkSubtask/', { rowId: rowId}, function(data){
if (data >= 1){ //data reprezinta numarul row urilor din query
grid.jqGrid('expandSubGridRow',rowId);
}else{
// else ul face , ca userul sa numai dea click pe poza +, asa se evita sa afiseze headurl ala fara date, adica cand nu contine date subgridul
$('.sgcollapsed a').remove();
$(".ui-sgcollapsed:eq("+index+")" ).removeClass("sgcollapsed");
}
});
});
},
我该怎么办?thx
//if this textbox
$("#textinputID").keyup(function() {
reloadJQGrid();
});
//if this dropdown
$("#dropdownID").on("change",function() {
reloadJQGrid();
});
try this
function reloadJQGrid(){
jQuery.ajax({
type: "post",
url: ${contextPath}"/webappName/methodName",
cache: false,
data:$("#testForm").serialize(),
success: function(response)
{
jQuery("#Testgrid").trigger("reloadGrid");
},
error: function(){
alert();
alert('server errors..');
}
});
}
//if this textbox
$("#textinputID").keyup(function() {
reloadJQGrid();
});
//if this dropdown
$("#dropdownID").on("change",function() {
reloadJQGrid();
});