0

私は ASP.Net MVC3 の初心者で、問題に直面した WebGrid を使用してテーブルを実装しようとしています。

このテーブルの行には、「ID」と「名前」(DB から取得)、および「編集」と「削除」の 2 つのリンクがあります。これらのリンクは、次のように、同じ Web グリッド内で item.GetSelectLink() を使用して実行されます。

<div id="grid">
    @{
        var grid = new WebGrid(source: Model, rowsPerPage: 30, canPage: true, canSort: true, fieldNamePrefix: "gridDivisoes_", selectionFieldName: "Id");
    }

    @grid.GetHtml(
    tableStyle: "table", headerStyle: "header", footerStyle: "footer", alternatingRowStyle: "alternate",
    columns: grid.Columns(
                grid.Column("Name", header: "Division", style: "text-align-left", canSort: true),
                grid.Column(header: "Update?", style: "text-align-center", format: (item) => item.GetSelectLink("[update]")),
                grid.Column(header: "Delete?", style: "text-align-center", format:(item) => item.GetSelectLink("[delete]"))
            ))   

        if(grid.HasSelection)
        {
            if("[delete]" == grid. ????) //click's origin: "[delete]"
            {
                <input type="hidden" value="@Html.AttributeEncode(Model.ElementAt(grid.SelectedIndex).Id)" id="Id" name="Id" />
                <input type="hidden" value="@Html.AttributeEncode(Model.ElementAt(grid.SelectedIndex).Name)" id="Name" name="Name" />

                <br />
                <br />
                <br />
                <p>Do you really want to delete the division "@Model.ElementAt(grid.SelectedIndex).Name" ?</p>
                <p><input type="submit" value="Delete" /></p>
            }

            if ("[update]" == grid. ????) //click's origin: "[update]"
            {
                <input type="hidden" value="@Html.AttributeEncode(Model.ElementAt(grid.SelectedIndex).Id)" id="Id" name="Id" />

                <div class="editor-label">
                    Name
                </div>
                <div class="editor-field">
                    @Html.TextBoxFor(Page => Page.ElementAt(grid.SelectedIndex).Name)
                    @Html.ValidationMessageFor(Page => Page.ElementAt(grid.SelectedIndex).Name)
                </div>        
                <br />
                <br />
                <p><input type="submit" value="Update"/></p>
            }
        }
</div>

クリックの起点を取得して grid.HasSelection を実行し、それに応じて「削除」または「更新」オプションを実行するにはどうすればよいですか? これらのオプションから 1 つを選択し、行を選択し、同時にクリック元を知ることができないとは信じられません。

どうすれば比較できますか?そのようなもの if("[delete]" == grid. ????) ?

4

1 に答える 1

1

アマンダ、私の理解が正しければ、行の編集と削除の両方ができるようになりたいと思っていますよね?

もしそうなら、これを試すことができます:

columns: grid.Columns(
                grid.Column("Name", header: "Division", style: "text-align-left", canSort: true),
                grid.Column(format: (item) => Html.ActionLink("Update?", "Update", new { updateId = item.ID })),
                        grid.Column(format: (item) => Html.ActionLink("Delete?", "Update", new { deleteId = item.ID }))
            ))   

必要に応じて、Ajax を使用して、行の値でパーシャルをレンダリングすることもできます。

于 2011-05-20T14:47:26.273 に答える