BootStrap table 实现表格行拖拽,并将排序结果保存到数据库

  • 不上图了
  • 首先还是得添加三个文件,自己上网搜搜就行
  • <script src="~/Content/bootstrap-table/jquery.tablednd.js"></script>
    <script src="~/Content/bootstrap-table/bootstrap-table-reorder-rows.js"></script>
    <link href="~/Content/bootstrap-table/bootstrap-table-reorder-rows.css" rel="stylesheet"/>
  • 前台,加在Bootstrap Table 属性里面 
  •  //当选中行,拖拽时的哪行数据,并且可以获取这行数据的上一行数据和下一行数据
                onReorderRowsDrag: function(table, row) {
                    //取索引号
                    dragbeforeidx = $(row).attr("data-index");
                },
                //拖拽完成后的这条数据,并且可以获取这行数据的上一行数据和下一行数据
                onReorderRowsDrop: function (table, row) {
                    //取索引号
                    draglateridx = $(row).attr("data-index");
                },
                //当拖拽结束后,整个表格的数据
                onReorderRow: function (newData) {
                    //这里的newData是整个表格数据,数组形式
                    if (dragbeforeidx != draglateridx) {//这是我其他地方需要的,你们可不必要这个
                        //console.log(newData); 调试用代码
                        $.post("Sort",
                            { jsondata: JSON.stringify(newData) },//将整张表数据Post,当然,先序列化成Json
                            function(data) {
                                if (data == "success") {
                                    $table.bootstrapTable('refresh');
                                }
                            });
                    }
                }
    后台代码Controller
  •  
        public string Sort(string jsondata)
            {
                //将json序列化为List<T>
                JavaScriptSerializer serializer = new JavaScriptSerializer();
                List<WorkFlow> list = serializer.Deserialize<List<WorkFlow>>(jsondata);
                BLL.Base.WorkFlow bllworkflow = new BLL.Base.WorkFlow();
                var result = bllworkflow.Sort(list);
                return result;
            }

  • 排序的思路呢,就是当前台拖动完成后,将整个表格数据传入后台,先删除之前数据库中的数据,重新保存当前数据实现排序



    缺点:  如果你有分页显示,返回的Table数据只为第一页的。第二页就会出现排序问题

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
要在 Bootstrap Table 中的列中添加输入框,并将输入的值保存表格中,可以使用以下步骤: 1. 在表头中添加一个新的列,该列包含一个输入框,以便用户输入数据。 ```html <th data-field="new_input">New Input</th> ``` 2. 在每一中,使用 formatter 函数为该列中的单元格添加一个输入框。 ```javascript { field: 'new_input', title: 'New Input', formatter: function(value, row, index) { return '<input type="text" class="form-control input-sm new-input" value="">'; } } ``` 3. 在表格初始化时,为输入框添加事件监听器,以便在用户输入数据时将其保存表格中。 ```javascript $('#table').bootstrapTable({ columns: [ // ... { field: 'new_input', title: 'New Input', formatter: function(value, row, index) { return '<input type="text" class="form-control input-sm new-input" value="">'; } } ], onPostBody: function() { $('.new-input').on('input', function() { var row = $(this).closest('tr'); var index = $('#table').find('tbody tr').index(row); var value = $(this).val(); $('#table').bootstrapTable('updateCell', { index: index, field: 'new_input', value: value }); }); } }); ``` 4. 当用户输入数据并移动到下一时,将该数据保存表格中。 ```javascript $('.new-input').on('input', function() { var row = $(this).closest('tr'); var index = $('#table').find('tbody tr').index(row); var value = $(this).val(); $('#table').bootstrapTable('updateCell', { index: index, field: 'new_input', value: value }); }); ``` 这样,用户就可以在 Bootstrap Table 中的列中添加输入框,并将输入的值保存表格中了。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值