2010-04-21 107 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