我预先填充了数据的jqgrid。单击任何行将发送4个ajax请求以获取详细信息(加载4个jsp页面)。 3页有新的jqgrids。
我在第一个网格(jsp页面)上有一个外部搜索和清除选项。它在任何时候都可以正常工作。但是一旦我用网格获取其他页面,搜索和清除就不起作用了。当然,脚本正在执行但不是触发器。
我确实看到了一些解决方案并且已经应用了所有但是无济于事。
网格1:
<sjg:grid
autowidth="true"
id="assetgridtable"
caption="List of Assets"
dataType="json"
href="%{remoteurl}"
pager="true"
navigator="false"
navigatorSearch="false"
navigatorAdd="false"
navigatorEdit="false"
navigatorDelete="false"
navigatorView="false"
navigatorExtraButtons="{
seperator: {
title : 'seperator'
}
}"
gridModel="gridModel"
rowList="10,15,20,30,50"
rowNum="15"
shrinkToFit="true"
viewrecords="true"
onSelectRowTopics="rowselect"
loadonce="false">
以下是rowselect的订阅代码。
$.subscribe('rowselect',
function(event, data){
var id = event.originalEvent.id;
$.ajax(
{
type : 'GET',
url : "displayAsset.action",
cache : false,
data :
{
"id" : id
},
success : function(result)
{
$("#dataassetshow").append('<div id="assetshow"></div>');
$("#assetshow").html(result);
$("#assetshow").css(
{
"text-align" : "center",
}).show("fast");
}
});
我只显示其中一个ajax调用,同样还有3个调用来获取其他网格。
现在搜索代码
$('#searchAsset').on('submit', function(event)
{
$("#assetgridtable").jqGrid('setGridParam',
{
type : 'GET',
url : "listAsset.action",
page : 1,
datatype : 'json',
cache : false,
gridview : true,
postData :
{
"search" : function()
{
return true;
},
"searchText" : function()
{
return $('#searchText').val();
},
"option" : function()
{
return $('input[name=option]:checked').val();
},
"from" : function()
{
return $('#from').val();
},
"to" : function()
{
return $('#to').val();
},
},
}).trigger('reloadGrid');
event.preventDefault();
});
正如已经指出的那样,上面的代码一直运行良好,但是当获取其他网格时,它不会触发重新加载!!!
答案 0 :(得分:1)
请勿使用trigger('reloadGrid')
更好地使用重新加载主题。
<sjg:grid
...
reloadTopics="reloadMyGrid"
...
/>
之后,您可以触发自定义javascript代码中的重新加载:
$.publish("reloadMyGrid");
或点击sj:像这样的链接
<sj:a ... onClickTopics="reloadMyGrid">Link</sj:a>