2010-10-14 15 views
2

如果當前沒有從我們的搜索中返回數據,我們使用回調loadComplete向用戶打印出一條消息,指出沒有數據。有沒有辦法配置jqGrid在網格中打印出「無數據」消息?目前我們在網格上方打印出div,但希望它位於實際網格內。jqGrid - 在網格中不提供數據消息?

回答

8

的jqGrid顯示「沒有記錄,查看」消息($.jgrid.defaults.emptyrecords)僅在尋呼機區域的末端,只有在情況下,如果所有以下兩點

  • 定義尋呼機
  • viewrecords: true
  • 當前記錄計數(reccount參數)爲0.

我不知道任何「標準」方式來顯示消息網格數據區域的一側(網格的頂部)。在我看來,如果你需要這樣的信息,你必須繼續使用放置在網格體上的div,並在loadComplete事件句柄中隱藏/顯示它。

0

致Oleg:是的你是對的,因爲jqGrid僅在尋呼機即navGrid中顯示消息。因此,在jqGrid表之後放置一個<DIV>是顯示消息的最佳方式。

要馬庫斯:請參閱下面的方法,我在一個項目中做了什麼。我粘貼了HTML代碼片段和loadComplete實現,您必須觸發您的邏輯才能顯示「無記錄顯示」消息。

HTML:

<pre> 
    <div class="cols jsGridOuter" style="position:relative;"> 
    <table id="mandateList" class="jsStretchGridWidth"><tr><td></td></tr></table> 
    <div class="noResultsDiv gridNoRecords jstHidden"> 
     <span class="notice"><label>No records to show</label></span> 
    </div> 
    <div id="pagination"></div> 
    </div> 
</pre> 

Java腳本:

loadComplete: function() { 
    if (j$(this).getGridParam("records")==0) 
    { 
    j$('div#pagination').hide(); 
    if (j$('div.noResultsDiv').hasClass('jstHidden')) 
    { 
     j$('div.noResultsDiv').removeClass('jstHidden'); 
    } 
    } 
    else 
    { 
    j$('div#pagination').show(); 
    if (j$('div.noResultsDiv').length>0) 
    { 
     j$('div.noResultsDiv').addClass('jstHidden'); 
    } 
    } 
} 
+1

發佈時請格式化您的代碼(Ctrl-K做奇蹟),否則它將不可讀=難以理解。 – raina77ow 2012-06-22 10:51:39

0

可以覆蓋體表HTML顯示的消息。 使用此功能可以做到這一點:

loadComplete: function() { 
       if ($('#Grid').getGridParam('records') === 0) { 
        oldGrid = $('#GridIdb2 tbody').html(); 
        $('#Grid tbody').html("<div style='padding:6px;background:#D8D8D8'>No records found</div>"); 
       } 
       else 
        oldGrid = ""; 
      } 

使用oldGrid var當成附配保存的jqGrid了你改變之前;在提交新搜索之前設置舊值:

if(oldGrid!=""){ 
    $("#Grid tbody").html(oldGrid); 
} 
相關問題