簡體   English   中英

jqGrid從服務器問題刷新

[英]jqGrid Refresh From Server Issue

我有一個Struts2 jqGrid頁面,可以很好地加載。 單擊導航器刷新按鈕后,我希望它從服務器重新加載網格。

    <sjg:grid
        altRows="false"
        id="gridtable"
        dataType="json"
        editurl="%{editurl}"
        filter="true"
        filterOptions="{stringResult:true}"
        gridModel="gridModel"
        gridview="true"
        height="600"
        href="%{remoteurl}"         
        loadonce="true"
        navigator="true"
        navigatorAdd="%{editPermission}"
        navigatorAddOptions="{
            closeAfterAdd:false,
            closeOnEscape:true,
            reloadAfterSubmit:true,
            addCaption:'Add Record'}" 
        navigatorDelete="false"
        navigatorEdit="%{editPermission}"
        navigatorEditOptions="{
            closeAfterEdit:false,
            closeOnEscape:true,
            afterSubmit:function(response, postdata) {
                        return isError(response.responseText);
                     }
        }"
        navigatorRefresh="true"
        navigatorSearch="false"
        onCompleteTopics="loadComplete"
        onSelectRowTopics="rowselect"
        onEditInlineBeforeTopics="beforeFormLoad"
        pager="true"
        pagerButtons="true"
        rowList="25,50,100"
        rowNum="25"
        rownumbers="true"
    >

單擊刷新按鈕時,我具有以下綁定將數據類型設置為json。

$("#refresh_gridtable").bind("click", function(){
    $("#gridtable").jqGrid("setGridParam", {datatype: 'json'});
    return [true];
});

但是,當我單擊“刷新”按鈕時,每單擊一次,它只會從服務器重新加載數據。 如果我在特定列上執行客戶端排序,則單擊“刷新”,它將不會在第一次單擊時從服務器重新加載,第二次單擊將在沒有排序的情況下從服務器刷新(此時,排序圖標仍在頂部可見列),那么第三次點擊將不會影響服務器,但會應用排序。

如何每次從服務器重新加載刷新,然后應用任何現有的排序/過濾器字段?

該解決方案取決於您使用的基礎jqGrid。 如果您使用免費的jqGrid 4.9,則可以僅使用navGrid附加選項: reloadGridOptions: { fromServer: true }

如果使用舊版本的jqGrid的,那么你可以使用回調beforeRefresh重置datatype ,以"json"直接重裝之前。 我自己不使用Struts2。 所以我不知道在哪里可以在beforeRefresh指定回調

或者,您可以使用navigatorRefresh="false"從導航器欄中刪除標准的刷新按鈕,並使用navigatorExtraButtons ,它似乎可以代替navButtonAdd 如果我正確理解該選項,則可以指定onclick免費代碼,該代碼onclick您的所有需求。 您可以使用icon: "ui-icon-refresh"使自定義按鈕看起來與標准的“刷新”按鈕完全相同。 onclick內部,您可以設置datatype: 'json'並觸發"reloadGrid"

暫無
暫無

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

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