【问题标题】:JqGrid Specifying the Column Label using colNames vs using label property from colNamesJqG​​rid 使用 colNames 指定列标签与使用 colNames 中的标签属性
【发布时间】:2016-01-25 22:31:11
【问题描述】:

我使用 jqGrid 已经有一段时间了,我只是想知道使用 colNames 指定标签之间有什么区别,如图所示

colNames:['Actions','Inv No'],
colModel [
    {name:'act',index:'act',width:55,align:'center'},
    {name:'inv',width:100,align:'left'}
]

或者使用 colModel 的 Label 属性,如下所示

colModel [
    {label:'Actions', name:'act',index:'act',width:55,align:'center'},
    {label:'Inv No', name:'inv',width:100,align:'left'}
]

【问题讨论】:

    标签: jqgrid


    【解决方案1】:

    两种声明没有区别。 colNames 的使用要短一些,因为它提供了相同的信息,但没有在列标题的每个文本之前包含文本 label:。另一方面,包括label: 和跳过colNames 有一些小的实际优势。修改旧代码的人都犯了一个错误:一个删除(注释)colModel 中的一列,但一个忘记删除(注释)colNames 中的相应项。

    我发现了解如何使用label 信息很重要。看the code fragment

    if (p.colNames.length === 0) {
        for (iCol = 0; iCol < p.colModel.length; iCol++) {
            p.colNames[iCol] = p.colModel[iCol].label !== undefined ?
                    p.colModel[iCol].label :
                    p.colModel[iCol].name;
        }
    }
    

    可以看到 jqGrid 测试是否指定了colNames。如果colNames 为空数组(默认值为colNames),则colNames 数组将填充来自labelname 属性的信息。

    就是这样。我个人认为使用label 而不是colNames 的代码更具可读性。

    为了更准确,我必须添加一个额外的小评论。如果 both 指定了colNameslabel,则jqGrid 使用colNames 作为列标题,但label 将用作the Searching Dialog 中的标签(参见文本“Inv否”在搜索对话框中)。

    【讨论】:

    • 感谢 Oleg 的解释和良好的回答。
    【解决方案2】:

    colNameslabel 做同样的事情;在标题层上分配列名。

    我能读到的唯一区别是colNames 优先于label。如果两者都定义了colNames,则值显示为标题。

    label 充当colNames 的备份。如果未定义 colNames 选项,则使用 label 选项属性来分配列标题。

    JSFiddle https://jsfiddle.net/tfkanxhv/ 引用 colNames 和标签值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-21
      相关资源
      最近更新 更多