【问题标题】:JQuery Datatable Rows Bulk Edit and Update using ASP.Net MVC 5使用 ASP.Net MVC 5 批量编辑和更新 JQuery 数据表行
【发布时间】:2020-11-24 09:52:57
【问题描述】:

我有一个包含 1000 多行的表,我使用 JQuery Datatable 进行分页和搜索。 一切正常,但是当用户想要更新任何列值时,每一行都需要一一更新。 1000 行需要很长时间。

我的问题: 有没有像批量编辑这样的可能性。例如,如果我选择要更新的行,就像我将选择 100 行一样,那么我将更新唯一的一行值,当我点击自动更新时,所有 100 行都必须更新。

【问题讨论】:

    标签: c# jquery asp.net-mvc datatables


    【解决方案1】:

    一般来说,你可以做类似这样的事情:

    1. 对数据表中的复选框使用选择插件以供用户选择 (muti option)。您不能添加selectAllselectNone 按钮,例如this

    2. 使用此示例代码创建一个 js 函数,您可以在其中获取所有选定的行 ID:

      var idsSelected = myTable.rows({ selected: true }).ids().toArray();
      

      (这需要构造函数like this中的ajax和rowId)。

    3. 在模态框内创建一个表单,例如,使用新数据和字段,例如 fieldX 和 fieldY。

    4. 当用户单击发送按钮时,进行 ajax 调用并将行 ID 和表单数据发送到控制器。

      例如:

       $.ajax({
           url: miUrl,
           method: miMEthod,
           traditional: true,                                 //  We need this for send array of integers
           data: {
               Ids: myTable.rows({ selected: true }).ids().toArray(),
               ParamX: $("#paramX").val(),
               ParamY: $("#paramY").val()
           },
           success: function (response) {    
                $("#response").html("COMPLETE !!!");
           },
           async: true
       });
      

      在.net中,如果你想send an array of integers to a controller,请确保你在ajax中有traditional: true,否则会出现问题

      控制器将类似于以下内容:

       [HttpPost]
       public ActionResult MyMethod(int[] Ids, string ParamX, string ParamY)
       { ... }
      
    5. 使用第 4 点中的数据更新数据库。

    【讨论】:

    • 嗨 Dani,这似乎是一个非常好的方法让我检查一下。感谢您的快速回答
    猜你喜欢
    • 2017-09-06
    • 2014-11-05
    • 1970-01-01
    • 2018-05-01
    • 2015-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多