无论如何通过标题模板或其他任何东西将索引标记放入列标题中?例如,如果我有一个列有一列的网格,用户点击“名称”列,然后点击“城市”列。
我想在“名称”旁边放一个“1”,在“城市”旁边放一个“2”来表示排序顺序。
答案 0 :(得分:2)
使用Headertemplates时,存在一个问题,即无法在“呈现列标题之前”捕获事件。我有以下dataBinding
事件仍然可以执行您想要的操作:
dataBinding: function(e){
var sortArray = $("#grid").data("kendoGrid").dataSource.sort();
if(sortArray)
{
for(var i = 0;i < sortArray.length; i++)
{
$("#grid th[data-field=" + sortArray[i].field + "] .k-link").html("(" + (i+1) + ")" + sortArray[i].field );
}
var sortedColumns = sortArray.map(function(o){return o.field});
var columns = $("#grid").data("kendoGrid").columns;
for (i in columns)
{
if(sortedColumns.indexOf(columns[i].field) == -1)
$("#grid th[data-field=" + columns[i].field + "] .k-link").html(columns[i].field );
}
}
}
以下是Kendo dojo链接:http://dojo.telerik.com/eneH/4
答案 1 :(得分:0)
一种更简单的解决方案,与上述类似
$('.field_sort_number').remove();
var sort_v = gridDataSource.sort();
if (sort_v)
for (i = 0; i < sort_v.length; ++i) {
$('th[data-field="' + sort_v[i].field + '"] a[class="k-link"]').append('<sub class="field_sort_number">' + (i + 1) + '</sub>');
}