実際、私は次のようなシナリオを持っています:
Javascript を介して GridView でチェックされたレコードの値を取得しています。これらのレコードを削除するために、これらの値をコントローラーに送信する必要があります。
<script type="text/javascript">
$(function OnDelete() {
$('#btn_Delete').click(function ()
{
gvPaging.PerformCallback();
});
});
function OnBeginCallback(s, e) {
var selectedValues = s.GetSelectedKeysOnPage();
e.customArgs["ID"] = "";
for (var i = 0; i < selectedValues.length; i++) {
e.customArgs["ID"] += selectedValues[i] + ',';
}
}
</script>
私のGridViewは次のようになります:
<%
Html.DevExpress().GridView(
settings =>
{
settings.Name = "gvPaging";
settings.CallbackRouteValues = new { Controller = "GridView", Action = "PagingPartial" };
settings.Width = Unit.Percentage(100);
settings.KeyFieldName = "ID";
settings.CommandColumn.ShowSelectCheckbox = true;
settings.CommandColumn.SetHeaderTemplateContent(c =>
{
Html.DevExpress().CheckBox(settingsCheckBox =>
{
settingsCheckBox.Name = "cbSelectAll";
settingsCheckBox.Name = "Select All";
settingsCheckBox.Properties.ValueType = typeof(bool);
settingsCheckBox.Properties.ClientSideEvents.CheckedChanged = string.Format("function(s, e) {{ if(s.GetChecked()) {0}.SelectRows(); else {0}.UnselectRows(); }}", settings.Name);
settingsCheckBox.Checked = c.Grid.VisibleRowCount == c.Grid.Selection.Count;
}).Render();
});
settings.SettingsBehavior.AllowSelectByRowClick = true;
//settings.Columns.Add("ID");
settings.Columns.Add("Name");
settings.Columns.Add("EmailID");
settings.Columns.Add("MobileNumber");
settings.Columns.Add("Address");
settings.SettingsPager.Position = PagerPosition.Bottom;
settings.SettingsPager.FirstPageButton.Visible = true;
settings.SettingsPager.LastPageButton.Visible = true;
settings.SettingsPager.PageSizeItemSettings.Visible = true;
settings.SettingsPager.PageSizeItemSettings.Items = new string[] { "10", "20", "50" };
settings.SettingsEditing.AddNewRowRouteValues = new { Controller = "GridView", Action = "InlineEditingAddNewPartial" };
settings.SettingsEditing.UpdateRowRouteValues = new { Controller = "GridView", Action = "InlineEditingUpdatePartial" };
//settings.SettingsEditing.DeleteRowRouteValues = new { Controller = "GridView", Action = "InlineEditingDeletePartial" };
settings.SettingsEditing.Mode = GridViewEditingMode.EditFormAndDisplayRow;
//settings.SettingsBehavior.ConfirmDelete = true;
settings.Settings.ShowFilterRow = true;
settings.Settings.ShowFilterRowMenu = true;
settings.CommandColumn.Visible = true;
settings.CommandColumn.ClearFilterButton.Visible = true;
settings.CommandColumn.NewButton.Visible = true;
//settings.CommandColumn.DeleteButton.Visible = true;
settings.CommandColumn.EditButton.Visible = true;
settings.Settings.VerticalScrollBarMode = ScrollBarMode.Visible;
//settings.ClientSideEvents.SelectionChanged = "SelectionChanged";
settings.ClientSideEvents.BeginCallback = "OnBeginCallback";
})
.Bind(Model)
.Render();
%>