代码之家  ›  专栏  ›  技术社区  ›  Pokuri

动态更改jqgrid列名称

  •  8
  • Pokuri  · 技术社区  · 15 年前

    我只需要根据用户从选项列表中选择的内容动态重命名jqgrid列。我该怎么做?

    6 回复  |  直到 9 年前
        1
  •  5
  •   Justin Ethier    14 年前

    根据 jqGrid Documentation , colNames 创建网格后无法更改。

    但是,您可以通过使用多个列来模拟列名称更改。然后,您可以隐藏所有这些内容,除了将向用户显示的单个内容。当用户选择另一个时,只需交换所选列。例如,如果有效列是[A、B、C、D],则可以从只显示A开始。如果用户选择C,则隐藏A和显示C。但是,这种方法的主要缺点是需要将相同的数据复制到许多列。

    更新

    根据Galichev的回答,您可以使用 setLabel 方法重命名列标题。

        2
  •  16
  •   Galichev Anton    14 年前

    您可以使用以下语法:

    jQuery("#grid1").jqGrid('setLabel', 0, 'NewLabel');
    

    这将把网格中id=grid1的第一个列名更改为newLabel。

        3
  •  11
  •   Rob Willis    13 年前

    jqgrid的最新版本(4.1+可能更早)似乎不再支持Galichev描述的基于列索引的setlabel方法,而是提供了基于列名称的方法:

    jQuery("#grid1").jqGrid('setLabel', 'columnName', 'NewLabel');
    

    查看 jqGrid Methods wiki 更多信息。

    我没有编辑之前的答案,因为这种方法在4.1之前的版本中可能有效。

        4
  •  2
  •   Yasser Shaikh    12 年前

    * 设置标签:* colname列的名称(此参数可以是从0开始的数字(列的索引)

    但是,index参数不适用于4.1及更高版本。

    JQgrid升级至4.0版

     $(tableId).jqgrid("setLabel", 0, "BBBBB");
    

    jqgrid 4.1及以上版本

    尝试使用这些

      $(tableId).setLabel("ColumnName", "AAAAA");
    

      $(tableId).jqgrid("setLabel", "ColumnName", "BBBBB");
    
        5
  •  1
  •   kirk    12 年前
    JQGrid1.Columns.FromDataField(ColumnName).HeaderText = ColumnName;
    
        6
  •  0
  •   patrick    9 年前

    我给了我的栏目名一个分区

    '<div id="DateDivId">Date</div>'
    

    然后我按常规的方式更改了它,getElementByID,更改内容。