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

  • 相关阅读:
    prometheus学习系列三:node_exporter安装部署
    prometheus学习系列一: Prometheus简介
    prometheus学习系列二: Prometheus安装
    crontab定时任务不执行,单独运行sh生效
    glusterfs+heketi为k8s提供共享存储
    kubernetes的安装方法
    阿里云负载均衡权重管理脚本
    ldap配置系列二:jenkins集成ldap
    ldap配置系列一:ldap的安装
    ldap配置系列三:grafana集成ldap
  • 原文地址:https://www.cnblogs.com/mikel/p/2276799.html
Copyright © 2011-2022 走看看