onRowSelect:如何获取单元格索引

时间:2013-03-03 14:22:29

标签: jquery asp.net-mvc-3 telerik-grid telerik-mvc

我是telerik网格。

@(Html.Telerik().Grid(Model)
        .Name("Grid")
        .Columns(columns =>
        {
            //columns & bound
        })
        .ClientEvents(e=> e.OnRowSelect("OnRowSelect"))

通过点击该行,我需要知道cellindex(单击的那个) 我有这个功能:

function onRowSelect(e){}

如何从那里提取它?

2 个答案:

答案 0 :(得分:0)

您无法通过RowSelect事件检索列索引。

我建议你在Grid初始化后(通过OnLoad事件)附加你自己的委托事件:

function onGridLoad(){
    $(this).data().tGrid.$tbody.on('click','td',function(e){
        alert('COLUMN INDEX: '+$(this).index())
    })
}

答案 1 :(得分:0)

我的回答是基于这个问题,归功于Table row and column number in jQuery

尝试以下方法:

使用Javascript:

<script>
    function OnDataBound() {
        // #Grid needs to match the name of the grid in View's markup.
        $('#Grid table td').click(function () { 
            var col = $(this).parent().children().index($(this));
            var row = $(this).parent().parent().children().index($(this).parent());
            alert('Row: ' + row + ', Column: ' + col);
        });


        //As a side note, you can get at the contents of the row selected with 
        //something along these lines: 
        //(this will not work unless you substitute the "EmployeeId" id with a valid one from your model.
        $('#Grid table tr').dblclick(function () {
            alert($(this).find("span[id=EmployeeId]")[0].innerText);  //EmployeeId is just a column name used for example purposes.
        });
    }



</script>

您的网格标记:

@(Html.Telerik().Grid(Model)
    .Name("Grid")
    .Columns(columns =>
    {
        //columns & bound
    })
    .ClientEvents(e=> e.OnDataBound("OnDataBound"))  // This changed to a OnDataBound event.