zoukankan      html  css  js  c++  java
  • ASP.NET MVC使用EasyUI的datagrid多选提交保存教程

    需要实现EasyUI的datagrid组件加入选择checkbox列,并提交后台批量添加的功能,页面代码如下:

    [js]

    <script language="javascript" type="text/javascript">

        $(function() {

            //searchbox

            $('#selectgoods-keywords').searchbox({

                searcher: function(val, name) {

                    searchInfo(val);

                }

            });

            //datagrid

            $('#selectgoods-grid').datagrid({

                url: '/Goods/List',

                pageNumber: 1,

                pageSize: 20,

                pageList: [20, 40, 60, 80, 100]

            });

            //form

        });

       

        function searchInfo(val){

            //            var keytype=$('#keyType').combobox('getValue');

                var keytype = 'Goods_Name';

                var keywords = val;

                $('#selectgoods-grid').datagrid('reload', { keytype: keytype, keywords: keywords });

        }

        function saveSelectGoods() {

            var ids = [];

            var rows = $('#selectgoods-grid').datagrid('getSelections');

            for (var i = 0; i < rows.length; i++) {

                ids.push(rows[i].Identifier);

            }

            var selectsupplier = '<%=ViewData["supplier"] %>';

            $.post('/SupplierGoods/SaveSelect', { supplier: selectsupplier, checks: ids.join(',') }, function(data) {

                if (data) {

                    $('#goodslist-grid').datagrid('reload');

                    $('#goodsInfo-window').window('close');

                } else {

                    alert('保存失败!');

                }

            }, 'json');

       

        }

           

    </script>

        <div style="100%; height:100%">

                                                 <table id="selectgoods-grid" class="easyui-datagrid" fit="true" toolbar="#tlb_selectgoods_search" pagination="true"

                                rownumbers="true" fitColumns="true"  idField="Identifier">

                                       <thead>

                    <tr>

                    <th field="ck" checkbox="true"></th>                                             

                <th field="Identifier" hidden="true" width="0" editor="text">Id</th>

                <th field="Goods_Name" width="100" editor="{type:'validatebox',options:{required:true}}">商品名称</th>

                <th field="Chemistry" width="100" editor="{type:'validatebox',options:{required:true}}">化学指标</th>

                <th field="Physical" width="100" editor="{type:'validatebox',options:{required:true}}">物理指标</th>

                <th field="Partner_Name" width="50" editor="{type:'validatebox',options:{required:true}}">合作状态</th>

                  </tr>                      

                                           </thead>

                                 </table>

                 

             <div id="tlb_selectgoods_search">

    商品名称:<input name="keywords" id="selectgoods-keywords" class="easyui-searchbox" /><a href="#" class="easyui-linkbutton" iconCls="icon-save" plain="true" onclick="javascript:saveSelectGoods()">保存</a>

             </div>   

        </div>

    [/js]

    ASP.NET MVC的Controller代码如下:

    [csharp]

            /// <summary>

            /// 多选商品添加

            /// </summary>

            /// <param name="supplier">供货商ID</param>

            /// <returns></returns>

            public ActionResult SelectGoods(string supplier)

            {

                ViewData["supplier"] = supplier;

                return View();           

            }

            /// <summary>

            /// 保存批量添加的产品信息

            /// </summary>

            /// <param name="checks">选中的商品ID</param>

            /// <param name="supplier">供货商名称</param>

            /// <returns></returns>

            public JsonResult SaveSelect(string checks, string supplier)

            {

                JsonResult result = new JsonResult();

                result.Data = false;

                try

                {

                    if (String.IsNullOrEmpty(supplier))

                        return result;

                    SupplierGoods goods = new SupplierGoods();

                    goods.Identifier = 0;

                    //拼装xml

                    String ids=Communion.StringHelper.BuildXmlID(checks);

                    goods.Goods_ID = -1;//标示批量插入

                    goods.Note = ids;

                    goods.Month_Output = Convert.ToDouble(String.IsNullOrEmpty(this.ReadFromRequest("Month_Output")) ? "0" : this.ReadFromRequest("Month_Output"));

                    goods.Supplier_ID = Convert.ToInt32(supplier);

                    goods.Create_Date = DateTime.Now;

                    goods.Customers = this.ReadFromRequest("Customers");

                    goods.Equipment = this.ReadFromRequest("Equipment");

                    goods.Detail_Params = this.ReadFromRequest("Detail_Params");

                    goods.IsDefault = Convert.ToInt32(String.IsNullOrEmpty(this.ReadFromRequest("IsDefault")) ? "0" : this.ReadFromRequest("IsDefault"));

                    Business business = new BusinessLogic();

                    int id = business.Save<SupplierGoods>(goods);

                    if (goods.Identifier == 0)

                    {

                        goods.Identifier = id;

                    }

                    result.Data = true;

                    return result;

                }

                catch (Exception e)

                {

                    return result;

                }           

            }

    [/csharp]

    存储过程利用xml变量对传入的xml类型的ID集合进行批量添加保存到数据库中,存储过程代码如下:

    [sql]

    ALTER PROCEDURE [dbo].[View_SupplierGoodsCreate]

             @Identifier int,

             @Supplier_ID int,

             @Goods_ID int,

             @isDefault int,

             @Create_Date datetime,

             @Month_Output float(8),

             @Goods_Name nvarchar(400)=NULL,

             @Physical nvarchar(400)=NULL,

             @Chemistry nvarchar(400)=NULL,

             @Customers nvarchar(400)=NULL,

             @Equipment nvarchar(400)=NULL,

             @Note nvarchar(MAX)=NULL,

             @Detail_Params nvarchar(400)=NULL

    AS

    IF @Goods_ID=-1

    BEGIN

                       --批量插入商品

                       DECLARE @xml xml

                       SET @xml=@Note

                       INSERT INTO Supplier_Goods(Supplier_ID,Goods_ID,Create_Date,Month_Output,Customers,Equipment,Note,isdefault,Detail_Params)

                       SELECT @Supplier_ID,identifier,@Create_Date,0,null,null,null,0,null

                       FROM Base_Goods         

                       WHERE

                                 Identifier in (Select

                                T.ID.value('.', 'int') As ID

                       From

                                @xml.nodes('/XML/ID') as T(ID)) and Identifier not in (select goods_id from Supplier_Goods where Supplier_ID=@Supplier_ID)

                       SET @Identifier=@Goods_ID

    END

    [/sql]

    原文地址:www.mikel.cn

  • 相关阅读:
    Linux内核网络协议栈优化总纲
    Java实现 蓝桥杯VIP 算法训练 连续正整数的和
    Java实现 蓝桥杯VIP 算法训练 连续正整数的和
    Java实现 蓝桥杯VIP 算法训练 寂寞的数
    Java实现 蓝桥杯VIP 算法训练 寂寞的数
    Java实现 蓝桥杯VIP 算法训练 学做菜
    Java实现 蓝桥杯VIP 算法训练 学做菜
    Java实现 蓝桥杯VIP 算法训练 判断字符位置
    Java实现 蓝桥杯VIP 算法训练 判断字符位置
    Java实现 蓝桥杯VIP 算法训练 链表数据求和操作
  • 原文地址:https://www.cnblogs.com/mikel/p/2276799.html
Copyright © 2011-2022 走看看