私は 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. ????) ?