jQuery EasyUI-DataGrid有参数查询

Datagird显示数据的两种方法,分别是直接前台固定的数据和将数据库中显示到前台,这次我们将第二种方法进行扩展,即有参数的查询。

 

 

实现


        我们要查询数据库中县市区录入信息并将数据显示到前台,不过条件是按照指标来查询,因为不同的指标有不同的县市区数据信息。背景交代完毕,直接上代码。

 

前台代码表格属性字段设置上一篇文章相同

 

 

[html]  view plain copy
  1.  <%-- 页面加载时运行js方法 --%>  
  2. <bodyonloadbodyonload="reloadgrid()">  
  3.    
  4.     <%-- 表格的加载 --%>  
  5.    
  6.          <%-- 要传的参数变量--%>  
  7.     <div id="NodeChild"style="padding: 2px; font-size: 13px">市直单位定量指标1div>  
  8.    
  9.     <div style="margin: 10px0;">div>  
  10.     <div id="tt"class="easyui-tabs" style="width: 1100px; height: 530px;margin-top: 15px">  
  11.         <div title="已录入单位"style="padding: 10px" >  
  12.             <table id="HaveInput"title="原始数据录入情况" class="easyui-datagrid" style="width:1050px; height: 480px; padding-left: 200px;"data-options="rownumbers:true,url:'ScoresDetailsCity.ashx/ProcessRequest',pageSize:5,pageList:[5,10,15,20],method:'get',toolbar:'#tb',"  
  13.                 toolbar="#bar"pagination="true" rownumbers="true"fitcolumns="true" striped="true"singleselect="true">  
  14.    
  15.                 <thead>  
  16.                     <tr>  
  17.                         <thdata-optionsthdata-options="field:'DepartmentName',width:100">单位名称th>  
  18.                         <thdata-optionsthdata-options="field:'Data', width:75">原始数据th>  
  19.                         <thdata-optionsthdata-options="field:'Remarks', width:175,align:'right'">备注th>  
  20.                         <%--                        <thdata-optionsthdata-options="field:'CountScores', width:75,align:'right'">得分th>--%>  
  21.                         <thdata-optionsthdata-options="field:'YearTime', width:85,align:'right'">年份th>  
  22.                     tr>  
  23.                 thead>  
  24.             table>  
  25.             <div id="bar">  
  26.                 <ahrefahref="javascript:void(0)" class="easyui-linkbutton"iconcls="icon-edit" plain="true"onclick="editUser()">修改数据a>  
  27.             div>  
  28.    
  29.         div>  
  30. body>  
  31.    

 

下面是js语句,通过这个函数往一般处理程序传递参数。

 

[javascript]  view plain copy
  1. //增加查询参数,在页面加载时运行  
  2.         function reloadgrid() {  
  3.             var test =document.getElementById("NodeChild").innerHTML;  
  4.             //查询参数直接添加在queryParams中     
  5.             $('#HaveInput').datagrid({  
  6.                 url:"ScoresDetailsCity.ashx?test=" + test  
  7.             })  
  8.    
  9.             var queryParams =$('#HaveInput').datagrid('options').queryParams;  
  10.             getQueryParams(queryParams);  
  11.            $('#HaveInput').datagrid('options').queryParams = queryParams;  
  12.    
  13.            $("#HaveInput").datagrid('reload');  
  14.    
  15.         }  

 

 

到这里我们就已经将前台代码书写完毕了,下面就该是一般处级程序的的书写了。一般处理程序的书写与上一篇文章有点区别,因为这里还有接收前台传过来的参数的功能。

 

 

[csharp]  view plain copy
  1. public void ProcessRequest(HttpContextcontext)  
  2.        {  
  3.            string command =context.Request.QueryString["test"];//前台传的标示值  
  4.            if (command == "add")  
  5.            {//调用添加方法  
  6.                Add(context);  
  7.            }                                                                                                                                                                              
  8.            else if (command =="modify")  
  9.            {//调用修改方法  
  10.                Modify(context);  
  11.            }  
  12.            else  
  13.            {//调用查询方法  
  14.                Query(context);  
  15.            }  
  16.        }  
  17.   
  18.   
  19.        public void Query(HttpContext context)  
  20.        {  
  21.            context.Response.ContentType ="text/plain";  
  22.           //===============================================================  
  23.            //获取查询条件:  
  24.            string category  , key;  
  25.            category  = key = "";  
  26.            //获取前台传来的值  
  27.            if (null !=context.Request.QueryString["Category"])  
  28.            {//获取前台传来的值  
  29.                category =context.Request.QueryString["Category"].ToString().Trim();  
  30.            }  
  31.            if (null !=context.Request.QueryString["test"])  
  32.            {  
  33.                key =context.Request.QueryString["test"].ToString().Trim();  
  34.            }  
  35.   
  36.             
  37.   
  38.          //组合查询语句:条件+排序  
  39.            StringBuilder strWhere = newStringBuilder();  
  40.            if (key != "")  
  41.            {  
  42.                strWhere.AppendFormat("ScoreStyleName like '%{0}%' and ", key);  
  43.            }  
  44.            if (category != "")  
  45.            {  
  46.                strWhere.AppendFormat("AdminID= '{0}' and ", category);  
  47.            }  
  48.            
  49.         //调用B层方法将参数传下去来获取数据库信息  
  50.            DataSet ds =cityQuantifyScoresBLL.GetCityInfo(key);  
  51.            DataTable dt = ds.Tables[0];  
  52.            int count = dt.Rows.Count;  
  53.            string strJson =ToJson.Dataset2Json(ds, count);//DataSet数据转化为Json数据  
  54.           context.Response.Write(strJson);//返回给前台页面  
  55.            context.Response.End();  
  56.   
  57.        }  


 

关于Dataset转化为json的代码我们就不再写了,大家可以参考上一篇文章。

 

我们最后看下效果

jQuery EasyUI-DataGrid有参数查询_第1张图片

 

 

总结

        

    关于datagrid有参数的查询用的还是比较多的,学习是个循序渐进的过程,我们先从最简单的不需要的参数的学起到这次的有参数的查询并显示,我们会在下一篇文章中继续介绍datagrid的知识,是关于一个datagrid可以动态加载表头的知识。

你可能感兴趣的:(jquery-easyui)