2

其实我有这样的场景:

我通过 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();

%>

4

3 回答 3

1

您可以在脚本中使用 AJAX。

像这样的东西

$.ajax({
         url: 'Your method in controller which will delete the records',
         type: 'POST',
         data: ' data which you want to send to controler ',
});
于 2012-12-14T12:54:38.713 回答
1

在您的控制器中使用此语句来检索值:Request.Params["ID"]

于 2013-01-17T10:06:08.727 回答
1

考虑以下示例,我正在使用 for 循环表数据触发带有列表值的脚本。

<a href='#' class="gridEdit"  onclick="javascript:return DeleteServiceOut('@Model.EmployeeInformationList[i].GEmployeeGenInfoID.ToString()');"></a>  

从 MVC 中的 Javascript 代码向控制器传递值的函数

<script>
 function DeleteServiceOut(GEmployeeId) {

        window.location = "/PMS/Payroll/ServiceOutAdd/ServiceOutDelete/" + GEmployeeId;
        return false;
    }

</script>

进入控制器

 public ActionResult ServiceOutDelete(string id, ServiceOutModels model)
        {
           // id will contailn the value of parameter
           // AS you want
            return View("ServiceOutViewDetails", model);
        }
于 2014-01-20T12:50:27.450 回答