2010-04-21 111 views
2

我在我的jqGrid中有一個footerrow,我總結了一些列中的值。當網格完成加載時,我使用'footerData'函數設置頁腳。這要求網格選項中的「footerrow」屬性設置爲「true」。我沒有總結的一些列應用了CSS(在單元格中顯示一些圖標),它使用colModel API中的'classes'屬性進行設置。問題在於,這些CSS類也適用於footerrow中的單元格。我不希望他們在那裏應用,但我不知道如何防止他們被顯示。我嘗試使用jQuery在調用'footerData'函數後從td元素中移除'class'屬性。問題是,當網格加載時,圖標閃現給用戶。我怎樣才能防止首先應用CSS?jqGrid頁腳單元格從主網格中的單元格「繼承」CSS

回答

4

對於從IE8或螢火蟲在Firefox的開發工具你可以創建一個jqGrid的後檢查的和其他表的結構。主要有div與類「ui-jqgrid-view」。它有子的有以下類型:

  • UI-的jqGrid - 標題欄」 - 標題欄
  • UI-的jqGrid-HDIV」 - 與列textes頭(頭)
  • UI-的jqGrid-BDIV」 - 與主信息(身體)
  • UI-的jqGrid-SDIV」 - 它是你需要

如果您的jqGrid有ID = 「列表」,則jQuery('#list')[0].parentNode.parentNode.parentNode - 是主要的網格視圖DIV作爲一個DOM元素(所有jqGrid的HTML元素的家長):

var gviewNode = jQuery('#list')[0].parentNode.parentNode.parentNode; 
var hdiv = jQuery(".ui-jqgrid-hdiv", gviewNode); 
var bdiv = jQuery(".ui-jqgrid-bdiv", gviewNode); 
var sdiv = jQuery(".ui-jqgrid-sdiv", gviewNode); 

後,在SDIV的結構就像是以下幾點:

<div class="ui-jqgrid-sdiv"> 
    <div class="ui-jqgrid-hbox"> 
     <table class="ui-jqgrid-ftable" > 
      <tbody> 
       <tr class="ui-widget-content footrow footrow-ltr"> 
        <td class="ui-state-default jqgrid-rownum">&nbsp;</td> 
        <td>&nbsp;</td> 
        <td>bla bla</td> 
        <td>&nbsp;</td> 
       </tr> 
      </tbody> 
     </table> 
    </div> 
</div> 

因此,在更改頁腳的CSS屬性對於鄰的方式NE:

  1. 包括在你的CSS中包含「tr.footrow TD」描述的元素,定義所有你所需要的
  2. 變化動態類使用我上述的jqGrid的解剖結構。

,我建議你只使用,如果你無法使用第一個第二種方式,因爲你必須要找到一個正確的位置(可能gridComplete事件)進行更改。如果您嘗試在錯誤的地方進行此操作,您的更改將無法工作,或者您必須修復某些jqGrid組件的高度或寬度(請參閱Correctly calling setGridWidth on a jqGrid inside a jQueryUI Dialog

問候並快樂編碼!

+0

謝謝,這解決了這個問題。但是,應該可以在jqGrid中本地修復此問題。 – Tore 2010-04-26 11:07:25

+0

您可以嘗試在http://www.trirand.com/blog/?page_id=393/feature-request/中提出建議。自2009年11月以來,我一直在使用jqGrid,並且我在這裏放置的一些建議已經在當前版本的jqGrid中實現。 jqGrid的開發人員Tony Tomov在論壇中給予了非常好的支持,就像我看來,他對任何對jqGrid的建設性建議都非常開放。 – Oleg 2010-04-26 11:46:30