jQuery EasyUI是一个轻量级的Web前端开发框架,提供了很多的现成组件帮助程序员减轻前端代码开发量,之前有个项目中就用到了其中的DataGrid。
jQuery EasyUI框架的官方主页,可以下载完整开发包,里面有示例代码可以参考。
运行效果图:
由于我使用的是ASP.NET webform技术,下面我就贴出主要的代码以供参考。
在页面中首先要引用相关的css以及js文件,这样才能使用该组件。
css部分:
<link href=\"../Js/jQueryEasyUI/theme/default/easyui.css\" rel=\"stylesheet\" type=\"text/css\" /> <link href=\"../Js/jQueryEasyUI/theme/icon.css\" rel=\"stylesheet\" type=\"text/css\" /> <link rel=\"stylesheet\" type=\"text/css\" href=\"../Css/datagrid.css\" />
js部分:
<script src=\"../Js/jQueryEasyUI/jquery-1.7.1.min.js\" type=\"text/javascript\"></script> <script src=\"../Js/jQueryEasyUI/jquery.easyui.min.js\" type=\"text/javascript\"></script> <script src=\"../Js/jQueryEasyUI/jquery.pagination.js\" type=\"text/javascript\"></script>
由于jQuery EasyUI基于jQuery,所以必需要先引入jQuery文件。而pagination.js是EasyUI的分页插件,后面会看到分页的效果。
<script type=\"text/javascript\"> $(function () { var qParams = { mode: \'Query\', hfjia: $(\"#<%=hfjia.ClientID %>\").val(), sfz: $(\"#sfz\").val() }; //取得查询参数 var oldRowIndex; var opt = $(\"#grid\"); opt.datagrid({ width: \'780\', height: \'440\', nowrap: false, striped: true, fitColumns: true, singleSelect: true, queryParams: qParams, //参数 url: \'../Service/ServiceHanlder.ashx\', //idField: \'id\', //主索引 //frozenColumns: [[{ field: \'ck\', checkbox: true}]], pageSize: 20, pageList: [20, 25, 30], pagination: true, //是否启用分页 rownumbers: true, //是否显示列数 onClickRow: function (rowIndex) { if (oldRowIndex == rowIndex) { opt.datagrid(\'clearSelections\', oldRowIndex); } var selectRow = opt.datagrid(\'getSelected\'); oldRowIndex = opt.datagrid(\'getRowIndex\', selectRow); }, columns: [[ { title: \"浏览档案\", width: 20, align: \"center\", formatter: function (value, rowData, rowIndex) { return \"<font onclick=searchDA(\'\" + rowData.PersonIdNum + \"\'); color=\'blue\' > 查看档案 </font>\"; } }, { field: \'DAGInPosition\', title: \"档案位置\", width: 40, align: \"center\" }, { field: \'PersonIdNum\', title: \"身份证号\", width: 80, align: \"center\" }, { field: \'PersonName\', title: \"姓名\", width: 40, align: \"center\" }, { field: \'PersonSex\', title: \"性别\", width: 30, align: \"center\" }, { field: \'DAId\', title: \"档案编号\", width: 60, align: \"center\" } // { field: \'DAGInOrg\', title: \"业务经办机构\", width: 60, align: \"center\" } ]] }).datagrid(\"getPager\").pagination({ beforePageText: \'第\', //页数文本框前显示的汉字 afterPageText: \'页/{pages}页\', displayMsg: \'共{total}条记录\', onBeforeRefresh: function () { return true; } }); }); </script>
请注意这段长长的js代码,这是该页面的核心代码。里面的参数设置请注意,主要就是通过js动态的构造datagird。
该页面的Body部分:
<body> <form id=\"form1\" runat=\"server\"> <asp:HiddenField ID=\"hfjia\" runat=\"server\" /> <div> <div class=\"form-wrapper cf\" style=\"margin-top: 10px;\"> <div align=\"center\" style=\"width: 780px;\"> <input id=\"sfz\" runat=\"server\" type=\"text\" placeholder=\"请扫描档案袋上面的条形码...\" /> <button id=\"ssss\"> 档案查询</button> </div> </div> <div style=\"float: left; width: 780px; margin-top: -40px; margin-left: 10px;\"> <table id=\"grid\"> </table> </div> <div style=\"float: left; margin-top: 10px; margin-left: 10px;\"> <input type=\"button\" value=\"返回主菜单\" id=\"button1s\" onclick=\"javascript: window.location.href = \'../Main.aspx\'\" /> </div> </div> </form> </body>
其中id为grid的table部分,与上面的js部分中grid对应。
该页面的后台代码部分:
protected void Page_Load(object sender, EventArgs e) { string dagid = Request.QueryString[\"dagid\"]; hfjia.Value = dagid; }
很简单就是给前台存放的一个隐藏域赋值,以在页面刷新时保持状态(记录档案架的位置)。
后台的数据源地址为ServiceHanlder.ashx,看看这里面的详细代码。
namespace DAMIS.Pad2.Service { /// <summary> /// ServiceHanlder 的摘要说明 /// </summary> public class ServiceHanlder : IHttpHandler { public void ProcessRequest(HttpContext context) { if (!string.IsNullOrEmpty(context.Request[\"mode\"])) { if (context.Request[\"mode\"].Equals(\"Query\")) { if (!string.IsNullOrEmpty(context.Request[\"sfz\"])) { string sfz = context.Request[\"sfz\"]; UserInfo userInfo = GetUserInfoById(sfz); if (userInfo != null) { ReturnData rd = new ReturnData(); rd.total = 1; rd.rows = new List<UserInfo>() { userInfo }; DataContractJsonSerializer json = new DataContractJsonSerializer(rd.GetType()); json.WriteObject(context.Response.OutputStream, rd); } else { context.Response.Write(\"<script>alert(\'查无此人\');</script>\"); } } else { string hfjia = Regex.Match(context.Request[\"hfjia\"].Split(\';\')[0], @\"\\d+\").Value; string page = context.Request[\"page\"]; string rows = context.Request[\"rows\"]; QueryData(hfjia, page, rows, context); } } if (context.Request[\"mode\"].Equals(\"QueryInner\")) { string dajid = context.Request[\"dajid\"].Trim(\'\\\'\'); string dagid = context.Request[\"dagid\"]; string hfjia = string.Join(\"-\", dajid, dagid); string page = context.Request[\"page\"]; string rows = context.Request[\"rows\"]; QueryData(hfjia, page, rows, context); } } } #region 查询档案(分页) /// <summary> /// 查询档案(分页) /// </summary> /// <param name=\"hfjia\">架号</param> /// <param name=\"page\">页数</param> /// <param name=\"rows\">行数</param> /// <param name=\"context\"></param> public void QueryData(string hfjia, string page, string rows, HttpContext context) { List<UserInfo> list = new List<UserInfo>(); string msg = string.Empty; DataTable dt = DAGCommonBLL.DAGPositionGetInformation(hfjia, out msg); foreach (DataRow dr in dt.Rows) { list.Add(new UserInfo() { PersonIdNum = dr[\"PersonIdNum\"].ToString(), PersonName = dr[\"PersonName\"].ToString(), PersonSex = dr[\"PersonSex\"].ToString(), DAId = dr[\"DAId\"].ToString(), DABusKindName = dr[\"DABusKindName\"].ToString(), DAKindName = dr[\"DAKindName\"].ToString(), DALevelCodeName = dr[\"DALevelCodeName\"].ToString(), DAGInPosition = dr[\"DAGInPosition\"].ToString(), DAGInUserId = dr[\"DAGInUserId\"].ToString(), DAGInOrg = dr[\"DAGInOrg\"].ToString(), IsValid = dr[\"IsValid\"].ToString(), }); } list = list.OrderBy(x => x.DAGInPosition).ToList(); ReturnData rd = new ReturnData(); rd.total = dt.Rows.Count; rd.rows = list.Where(x => x.IsValid == \"0\").Skip(Convert.ToInt32(rows) * (Convert.ToInt32(page) - 1)).Take(Convert.ToInt32(rows)).ToList(); DataContractJsonSerializer json = new DataContractJsonSerializer(rd.GetType()); json.WriteObject(context.Response.OutputStream, rd); } #endregion #region 通过身份证号获取用户基本信息 /// <summary> /// 通过身份证号获取用户基本信息 /// </summary> /// <param name=\"id\">身份证号</param> /// <returns></returns> public static UserInfo GetUserInfoById(string id) { string hfjia = CommonBLL.GetUserPositionById(id); string msg = string.Empty; if (!string.IsNullOrEmpty(hfjia)) { hfjia = hfjia.Split(\'-\')[0] + \"-\" + hfjia.Split(\'-\')[1]; DataTable dt = DAGCommonBLL.DAGPositionGetInformation(hfjia, out msg); if (dt != null && dt.Rows.Count > 0) { DataRow dr = dt.Select(\"personidnum = \'\" + id + \"\'\").FirstOrDefault(); UserInfo userInfo = new UserInfo() { PersonIdNum = dr[\"PersonIdNum\"].ToString(), PersonName = dr[\"PersonName\"].ToString(), PersonSex = dr[\"PersonSex\"].ToString(), DAId = dr[\"DAId\"].ToString(), DABusKindName = dr[\"DABusKindName\"].ToString(), DAKindName = dr[\"DAKindName\"].ToString(), DALevelCodeName = dr[\"DALevelCodeName\"].ToString(), DAGInPosition = dr[\"DAGInPosition\"].ToString(), DAGInUserId = dr[\"DAGInUserId\"].ToString(), DAGInOrg = dr[\"DAGInOrg\"].ToString(), IsValid = dr[\"IsValid\"].ToString(), }; return userInfo; } } return null; } #endregion public bool IsReusable { get { return false; } } } }
这里面也没什么好说的,就是为前端页面提供数据。代码完全可以进一步精简、处理,这里就不修正了。
里面用到的一个实体类:
/// <summary> /// 分页返回数据 /// </summary> public class ReturnData { /// <summary> /// 数据总数 /// </summary> public int total { get; set; } /// <summary> /// 具体数据 /// </summary> public List<UserInfo> rows { get; set; } }
以上就是jQuery EasyUI之DataGrid使用实例简单介绍,希望对大家的学习有所帮助。
本文地址:https://www.stayed.cn/item/14584
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我