2014-10-02 72 views
0

无论如何通过标题模板或其他任何东西把索引标记放入列标题?例如,如果我有一堆网格,并且用户点击“名称”列和“城市”列。添加列排序索引到列标题多列排序

我想在“名称”旁边放一个“1”,在“城市”旁边放一个“2”来表示排序顺序。

回答

1

使用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); 
    } 

    } 

    } 

以下是剑道道场链接:http://dojo.telerik.com/eneH/4

+0

这是一个伟大而聪明的解决方案! – 2014-10-10 01:20:44

0

一个简单的办法,类似于上面

\t $('.field_sort_number').remove(); 
 
\t var sort_v = gridDataSource.sort(); 
 
\t if (sort_v) 
 
\t for (i = 0; i < sort_v.length; ++i) { 
 
\t  $('th[data-field="' + sort_v[i].field + '"] a[class="k-link"]').append('<sub class="field_sort_number">' + (i + 1) + '</sub>'); 
 
\t }