从工具栏按钮获取所选行Kendo Grid的PK

时间:2015-07-27 15:01:21

标签: kendo-ui telerik kendo-grid kendo-asp.net-mvc

我有一个带有自定义工具栏按钮的可选Kendo网格。 单击按钮时如何获取所选行PK? 我尝试了很多提示,但没有人工作,因为我有一个服务器数据源。

    <%: Html.Kendo().Grid<Web.Models.Model>() 
    .Name("Grid")
    .BindTo((IEnumerable<Web.Models.Model>)ViewBag.List)
    .Columns(columns =>
    {
        columns.Bound(p => p.PK).Title("PK");
        columns.Bound(p => p.STATUS).Title("Status");
        columns.Bound(p => p.NOTES).Title("Notes");                      
    })

    .ToolBar(toolbar =>
    {
        toolbar.Custom();
        toolbar.Template("<a class='k-button k-button-icontext' onClick='EditItem();' ></span>Edit Item</a>");
    })    
    .DataSource(dataSource => dataSource
        .Server()
        .Model(Model => Model.Id(p => p.PK))
        )   
    .Selectable(selectable => selectable
        .Mode(GridSelectionMode.Multiple))  

%>



function EditItem(e) {

???

};

3 个答案:

答案 0 :(得分:1)

请尝试使用以下代码段。

<script>
    function EditItem() { 
        var grid = $("#Grid").data("kendoGrid");
        var rows = grid.select();
        rows.each(function (index, row) {
            var selectedItem = grid.dataItem(row);
            alert(selectedItem.PK);
        });
    }
</script>

如果有任何疑虑,请告诉我。

答案 1 :(得分:0)

嗨,你可以使用普通的jquery作为另一种选择

var rowID = $("#Grid .k-state-selected").find("td:eq(0)")[0].innerText
alert(rowID)

答案 2 :(得分:0)

这个有效!

                function EditItem(e) {

                    var selectedRows = $("#Grid").find(".k-state-selected");
                    for (var i = 0; i < selectedRows.length; i++) {
                        var selectedRow = selectedRows[i];
                        var PK = selectedRows[i].cells[0].innerText;
                    }

                };