MVC Kendo UI Grid =自定义按钮无法返回选定的行ID

时间:2013-05-22 09:12:29

标签: model-view-controller user-interface grid kendo-ui

我想获取所选行“ID”,但它只是失败了......我完全不知道这里发生了什么。 MVC HTML代码:

@(Html.Kendo().Grid(Model)
    .Name("grid")
    .HtmlAttributes(new { style = "margin-top: 5px" })
    .Columns(c =>
    {
        c.Bound(model => model.mgID);
        c.Command(com => { com.Custom("Edit").Click("Edit");});
    })
    .Pageable()
    .Sortable()
    .Selectable()
    .DataSource(d => d
        .Ajax()
        .PageSize(20)
        .Model(model => model.Id(i => i.mgID))
        .Read(r => r.Action("Manage_Read", "Manage"))
        .Destroy(o => o.Action("Manage_Destroy", "Manage"))
    )
)

Javascript代码:

    function Edit() {

        var grid = $("#grid").data("kendoGrid");
        var row = grid.select();
        var selectedRowIndex = row.index();   //Return "-1"
        var dataItem = grid.dataItem(row);    //Return "Undefined"

    }

请告诉我,我错过了什么?

1 个答案:

答案 0 :(得分:1)

如果只需要获取包含单击的“编辑”按钮的行的dataItem,则可以使用:

function Edit(e) {
    var dataItem = this.dataItem($(e.target).closest("tr"));
}

注:

    click事件this的上下文中,
  • grid
  • 在同一个上下文中e.target是您的按钮,因此我们会查找closest表格行。