其实我有一个场景,如:
我通过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();
%GT;
解决方法:
您可以在脚本中使用AJAX.
像这样的东西
$.ajax({
url: 'Your method in controller which will delete the records',
type: 'POST',
data: ' data which you want to send to controler ',
});