#webgrid
#веб-сетка
Вопрос:
Я новичок в ASP.Net MVC3 и пытаясь реализовать таблицу с использованием WebGrid, я столкнулся с проблемой.
В строке этой таблицы у меня есть «Id» и «Name» (взяты из базы данных) и еще две ссылки: «Редактировать» и «Удалить». Эти ссылки выполняются с помощью 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>
Как я мог бы получить источник щелчка и выполнить сетку.Есть ли выбор соответственно параметров «Удалить» или «Обновить»?
Я не могу поверить, что там я не могу выбрать один из этих вариантов, выбрать строку и, в то же время, просто узнать источник щелчка.
Как я мог бы провести сравнение? Что-то вроде этого if(«[delete]» == grid. ????) ?
Ответ №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 для рендеринга части со значениями ваших строк, если хотите