簡體   English   中英

jqgrid .trigger('reloadGrid'); 不適用於多個網格

[英]jqgrid .trigger('reloadGrid'); doesn't work with multiple grids

我有一個預裝了數據的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();
});

正如已經指定的那樣,上面的代碼一直可以正常工作,但是當獲取其他網格時,它不會觸發重新加載!!!

不要使用trigger('reloadGrid')更好地使用reload主題。

<sjg:grid 
...
reloadTopics="reloadMyGrid"
...
/>

之后,您可以像這樣在自定義javascript代碼中觸發重新加載:

$.publish("reloadMyGrid");

或通過單擊sj:類似的鏈接

<sj:a ... onClickTopics="reloadMyGrid">Link</sj:a>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM