2

選択した行「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"

    }

教えてください、私は何を見逃していますか??

4

1 に答える 1

1

クリックされた「編集」ボタンを含む行の dataItem を取得するだけでよい場合は、次を使用できます。

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

ノート:

  • clickイベントのコンテキストでthisは、grid.
  • 同じコンテキストでボタンなので、表の行e.targetを探します。closest
于 2013-05-22T10:09:15.763 に答える