二 TreeGrid的绑定

来源:互联网 发布:利用java防御sql注入 编辑:程序博客网 时间:2024/04/30 22:20

 TreeGrid的绑定

(1)看一下效果截图:


(图 1)

实现界面的代码:

<table id="w清单明细" title="清单明细"class="easyui-treegrid" style="width:1300px;height:200px" data-options="iconCls: 'icon-ok',rownumbers: true,//显示行数animate: true,collapsible: true,                 fitColumns:true,//自动设置宽度                 lines:true, idField: 'id', //节点idtreeField: 'text',//节点文本                onClickRow:XuanZhong,//单击事件                             ">        <thead>         <tr>          <th data-options="field:'InventoryDetailID' ,width:60,hidden:true" >清单明细ID</th>          // field:'InventoryDetailID,要和控制器传来的值对应          //清单明细ID:写给人们看的          <th data-options="field:'ProjectOrderID' ,width:60,hidden:true" >工程量订单ID</th>          <th data-options="field:'text' ,width:100" >编号</th>          <th data-options="field:'Name' ,width:100" > 名称</th>          <th data-options="field:'Unit' ,width:80" >单位</th>          <th data-options="field:'Price' ,width:80" > 单价</th>          <th data-options="field:'Amount' ,width:60" >数量</th>          <th data-options="field:'AllPrice' ,width:60" >合价</th>                    <th data-options="field:'Remark' ,width:80" >备注</th>          <th data-options="field:'Classification' ,width:120" > 类别</th>          <th data-options="field:'InventoryDetailFur_id' ,width:60,hidden:true" >工程量订单ID</th>          <th data-options="field:'PriceNumber' ,width:80" >单价编号</th>           </tr>        </thead>       </table>

 把从控制器传来的额数据绑定到treegrid中:

 function onClickTree(){           var BindingQuota = $('#Project').combobox('getValue');                   $.getJSON("/GongChengLiangQingDan/SelectedInventoryDetail?ProjectOrderID="+BindingQuota,          function(data){                //把从控制器查出的数据绑定到w清单明细'中             $('#w清单明细').treegrid('loadData',data);                                       });

控制器所涉及的方法:

 #region 查询清单明细        public ActionResult SelectedInventoryDetail(string ProjectOrderID)        {            DataTable dt = myInventoryDetail.SelectedInventoryDetail(Convert.ToInt32(ProjectOrderID));            //调用逻辑层的方法            StringBuilder stringbuilder = new StringBuilder();            //实例化stringbuilder            stringbuilder.Append(GetDataString(dt, "0"));            //调用GetDataString方法(dt, "0"是两个参数)            if (stringbuilder.Length > 0)            {                //如果最后所传来的数剧>0,则就移除最后两个长度                stringbuilder = stringbuilder.Remove(stringbuilder.Length - 2, 2);                return Content(stringbuilder.ToString());                //然后再返回给界面层            }            else            {                //return Content("no:no");                string strin = "{}";                //声明{}                return Content(strin.ToString());                //把转化的字符串用{}括起来,返回给界面层            }        }        public string GetDataString(DataTable dt, string id)        {            StringBuilder stringbuilder = new StringBuilder();            //实例化stringbuilder            DataView dv = new DataView(dt);            //把dt的数据赋值给dv            dv.RowFilter = "InventoryDetailFur_id=" + id;            DataTable dtChild = dv.ToTable();            if (dtChild.Rows.Count > 0)            {                stringbuilder.Append("[");                for (int i = 0; i < dtChild.Rows.Count; i++)                {                    string leiid = dtChild.Rows[i]["InventoryDetailID"].ToString();                    string chidstring = GetDataString(dt, dtChild.Rows[i]["InventoryDetailID"].ToString());                    if (!string.IsNullOrEmpty(chidstring))                    {                           stringbuilder.Append("{ \"id\":\"" + dtChild.Rows[i]["InventoryDetailID"].ToString().Trim() + "\",\"text\":\"" + dtChild.Rows[i]["Number"].ToString().Trim() + "\",\"Name\":\"" + dtChild.Rows[i]["Name"].ToString().Trim() + "\",\"Unit\":\"" + dtChild.Rows[i]["Unit"].ToString().Trim() +                          "\",\"Price\":\"" + dtChild.Rows[i]["Price"].ToString().Trim() + "\",\"Amount\":\"" + dtChild.Rows[i]["Amount"].ToString().Trim() + "\",\"AllPrice\":\"" + dtChild.Rows[i]["AllPrice"].ToString().Trim() + "\",\"Remark\":\"" + dtChild.Rows[i]["Remark"].ToString().Trim() + "\",\"Classification\":\"" + dtChild.Rows[i]["Classification"].ToString().Trim() + "\",\"InventoryDetailFur_id\":\"" + dtChild.Rows[i]["InventoryDetailFur_id"].ToString().Trim() +                        "\",\"PriceNumber\":\"" + dtChild.Rows[i]["PriceNumber"].ToString().Trim() + "\",\"state\":\"closed\",\"children\":");                        stringbuilder.Append(chidstring);                    }                    else                    {                        stringbuilder.Append("{\"id\":\"" + dtChild.Rows[i]["InventoryDetailID"].ToString().Trim() + "\",\"text\":\"" + dtChild.Rows[i]["Number"].ToString().Trim() + "\",\"Name\":\"" + dtChild.Rows[i]["Name"].ToString().Trim() + "\",\"Unit\":\"" + dtChild.Rows[i]["Unit"].ToString().Trim() +                        "\",\"Price\":\"" + dtChild.Rows[i]["Price"].ToString().Trim() + "\",\"Amount\":\"" + dtChild.Rows[i]["Amount"].ToString().Trim() + "\",\"AllPrice\":\"" + dtChild.Rows[i]["AllPrice"].ToString().Trim() + "\",\"Remark\":\"" + dtChild.Rows[i]["Remark"].ToString().Trim() + "\",\"Classification\":\"" + dtChild.Rows[i]["Classification"].ToString().Trim() + "\",\"InventoryDetailFur_id\":\"" + dtChild.Rows[i]["InventoryDetailFur_id"].ToString().Trim() +                            "\",\"PriceNumber\":\"" + dtChild.Rows[i]["PriceNumber"].ToString().Trim() + "\" },");                    }                }                stringbuilder.Replace(',', ' ', stringbuilder.Length - 1, 1);                stringbuilder.Append("]},");            }            return stringbuilder.ToString();        }        #endregion

从逻辑层调用的方法:

#region 查询清单明细        public DataTable SelectedInventoryDetail(int ProjectOrderID)        {            SqlParameter[] mySQL = {                                   new SqlParameter("@Type",SqlDbType.Char),                                     new SqlParameter("@ProjectOrderID",SqlDbType.Int)                                                                };            mySQL[0].Value = "SelectedInventoryDetail";           //和存储过程名对应            mySQL[1].Value = ProjectOrderID;            DataTable dt = myDALMethod.DAL_SelectDB_Par("BillOfQuantities", mySQL);            return dt;            //把数据返回给控制器        }        #endregion

数据层的SQL查询语句:

if @Type='SelectedInventoryDetail'beginSELECT     InventoryDetailID, ProjectOrderID,LTRIM(rtrim( Number))as Number,LTRIM (rtrim(PriceNumber)) as PriceNumber, ltrim(rtrim(Name)) as Name, ltrim(rtrim(Unit)) as Unit,LTRIM(rtrim(Price)) as Price,             Ltrim(rtrim(Amount)) as Amount,LTRIM(RTRIM(AllPrice)) as AllPrice, ltrim(rtrim(Remark)) as Remark,LTRIM(rtrim(Classification)) as Classification, InventoryDetailFur_idFROM         SYS_InventoryDetailList                  where  SYS_InventoryDetailList.ProjectOrderID=@ProjectOrderIDend

2)展开treegrid的方法:


(图 2)

//  展开下拉树            function expand() {                        var BindingQuota = $('#Project').combobox('getValue');                //这个是根据工程ID来展开的(如果你做的不需要任何条件,就不需要这个)               $('#w清单明细').treegrid({url: '/GongChengLiangQingDan/SelectedInventoryDetail?ProjectOrderID='+BindingQuota });              setTimeout(function () { aa(); }, 500);              //调用展开方法                                       }               function aa() {                   $('#w清单明细').treegrid('expandAll');                    //展开全部的treeg                }


(3)合拢treegrid:

(图 3)

//合拢下拉树               function collapse(){                $('#w清单明细').treegrid('collapseAll');               }

 

 只供学习参考,禁止商业用途,否则后果自负!


0 0
原创粉丝点击