当鼠标悬停在每列上时,我希望工具提示指示该列是否可排序。
我可以使用以下内容更改标题属性:
$("#List .ui-th-column").each(function(i) {
var isSortable = i % 2;
$(this).attr('title', isSortable ? "Not Sortable" : "Click header to sort.");
});
我想用 colMode的可排序属性检查替换演示表达式'i%2',但我无法弄清楚如何获取colModel的可排序属性的值。
colModel: [ { name: 'Name', index: 'Name', width: 100, sortable: true },
{ name: 'Note', index: 'Note', width: 200, sortable: false } ]
我已经尝试过.getGridParam和.getColProp,但我不认为我使用的语法是正确的。
答案 0 :(得分:0)
要获得sortable
属性的值,就像列定义中的任何其他属性一样,您可以执行以下操作:
var grid=$("#list");
var propsName = grid.jqGrid('getColProp','Name');
var propsNote = grid.jqGrid('getColProp','Note');
alert("'Name' has sortable="+propsName.sortable+
"\n'Note' has sortable="+propsNote.sortable);
要在列标题上设置工具提示,您可以执行以下操作
var setTooltipsOnColumnHeader = function (grid, iColumn, text) {
var thd = $("thead:first", grid.hdiv)[0];
$("tr th:eq(" + iColumn + ")", thd).attr("title", text);
};
var grid=$("#list");
setTooltipsOnColumnHeader(grid,2,"Bla Bla!");
这里我们按可见列索引标识列。
您可以轻松地为您的目的重写代码示例。
答案 1 :(得分:0)
这很好用。感谢Oleg的所有帮助。
$("#gbox_List .ui-th-column").each(function(i) {
var col = grid.getGridParam('colModel');
var isSortable = grid.jqGrid("getColProp", col[i].name).sortable;
$(this).attr('title', isSortable ? "Click header to sort by column." : "Not Sortable");
});
你是对的 $(#List 不在DOM上的正确位置,它应该是 #gbox_List - 其他信息清楚了。
我必须使用.ui-th- 列而不是.ui-th- 标签,以便.each循环遍历每一列。
通过使用 grid.getGridParam('colModel')返回一个数组,然后关闭 .name 属性,我能够避免对列名进行硬编码对于每一列。
这个解决方案很好,因为我有大约20个网格,每个网格都有很多不合格的列,并且每个不可移动的列都必须有不同的行。现在我可以利用colModel中的可排序属性设置。