jquery -ajax-datagrid DataGrid序列化
来源:互联网 发布:网络大电影设备 编辑:程序博客网 时间:2024/05/29 12:20
项目中用到的datagrid的例子,记录下来方便以后查看。
页面
<head runat="server"><script type="text/javascript">function ShowSearchResult(jfid, devid,insid, start, end, alarmValue) { var width = document.body.clientWidth; $('#divTest').datagrid({ url: 'AjaxJFHandler.ashx?stype=AalarmSearch&insid=' + insid, queryParams: { 'start': start, 'end': end, alarmValue: alarmValue, "jfid": jfid,"devid":devid }, //当请求远程数据时,发送的额外参数。 loadMsg: '数据加载中请稍后……', fitColumns: true, //自适应列宽,不出现横向滚动条 striped: true, //奇偶行不同背景 //method: //请求远程数据的method类型,默认post // nowrap: true, //True 就会把数据显示在一行里,默认true //pagination://True 就会在 datagrid 的底部显示分页栏。 默认false singleSelect: true, //只能选中一行,默认false fitColumns: true, // pagination: true, //显示分页栏 columns: [[ { field: 'devname', title: "设备", align: 'center' }, { field: 'insname', title: '变量', align: 'center' }, { field: 'adatetime', title: '时间', align: 'center' }, { field: 'avalue', title: '值', align: 'center' }, { field: 'atype', title: '类型', align: 'center' } ]], onLoadSuccess: function (data) { var panel = $(this).datagrid('getPanel'); var td = panel.find('div.datagrid-header-inner tr td'); td.each(function (i, item) { switch (item.attributes.field.value) { case "adatetime": item.width = width / 4; break; case "avalue": item.width = width / 8; break; case "atype": item.width = width / 8; break; default: break; } }); } }); }</script></head><body></body>
注:1. 参数传递方式有2种:即放在URL的后面,或者通过queryParams 属性。 前者在后台获取参数值时,可以通过《context.Request.QueryString["参数名"]》或者《context.Request.Params["参数名"]》两种方法取得,后者(通过queryParams传参),只能通过第2种方式取得。
2. onLoadSuccess方法,在返回结果时但数据还未在页面上显示时执行,用于对返回的结果进行操作。此处,设置表头单元格的宽度。
AjaxJFHandler.ashx 页
public class AjaxJFHandler : IHttpHandler { public string Stype; class ChartData { public string id; public string data; } public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/xml";// "text/plain"; Stype = context.Request.QueryString["stype"]; string jfid = context.Request.QueryString["jfid"]; string code = context.Request.QueryString["code"];//站点代码 string devid = context.Request.Params["devid"]; string insid = context.Request.Params["insid"];//context.Request.QueryString["insid"]; string start = context.Request.Params["start"]; string end = context.Request.Params["end"]; string jfName = HttpUtility.UrlDecode(context.Request["jfName"]); DataTable dt = new DataTable(); switch (Stype) { case "AalarmSearch"://报警查询 string alarmType=context.Request.Params["alarmValue"]; dt = GetAlarmDataHisList(jfid,devid,insid, start, end, alarmType); context.Response.Write(SerializeDataGrid(dt)); break; default: break; } } public bool IsReusable { get { return false; } } private DataTable GetAlarmDataHisList(string jfid,string devid,string insid,string start,string end,string atype) { JFData ddd = new JFData(); DataTable dt = ddd.GetAlarmDataHisList(jfid,devid,insid, start, end,atype); // string ss = Serialize(dt, false); // return ss; return dt; } /// <summary>序列化方法 /// 不需要分页 /// </summary> /// <param name="dt"></param> /// <param name="flag">false</param> /// <returns></returns> private string Serialize(DataTable dt, bool flag) { JavaScriptSerializer serializer = new JavaScriptSerializer(); List<Dictionary<string, object>> list = new List<Dictionary<string, object>>(); foreach (DataRow dr in dt.Rows) { Dictionary<string, object> result = new Dictionary<string, object>(); foreach (DataColumn dc in dt.Columns) { result.Add(dc.ColumnName, dr[dc].ToString()); } list.Add(result); } string jsonStr= serializer.Serialize(list); return jsonStr; } private string SerializeDataGrid(DataTable dt)//用JS的dataGrid拼table { JavaScriptSerializer serializer = new JavaScriptSerializer(); List<Dictionary<string, object>> list = new List<Dictionary<string, object>>(); Dictionary<string, object> ww = new Dictionary<string, object>(); ww.Add("total", dt.Rows.Count); foreach (DataRow dr in dt.Rows) { Dictionary<string, object> result = new Dictionary<string, object>(); foreach (DataColumn dc in dt.Columns) { result.Add(dc.ColumnName, dr[dc].ToString()); } list.Add(result); } ww.Add("rows", list); string jsonStr = serializer.Serialize(ww); return jsonStr; } }
注:1. SerializeDataGrid 方法 用于对datagrid类型的查询结果进行序列化。
2. Serialize 方法 用于对一般的table查询结果进行序列化。
0 0
- jquery -ajax-datagrid DataGrid序列化
- jQuery datagrid
- JQuery DataGrid
- Jquery datagrid
- easyui datagrid load 参数表单序列化
- easyui datagrid load 参数表单序列化
- DataGrid
- datagrid
- DataGrid
- datagrid
- datagrid
- Datagrid
- dataGrid
- datagrid
- DATAGRID
- datagrid
- DataGrid
- DataGrid
- buffer cache深度分析:概念以及内存结构
- Shiro源码分析-初始化-Realm
- Eclipse快捷键大全
- java.util.ConcurrentModificationException
- Android Media Format 支持的格式
- jquery -ajax-datagrid DataGrid序列化
- SetupDiEnumDeviceInterfaces function
- android UI进阶之弹窗的使用 --- 实现通讯录的弹窗效果
- Shiro框架Web环境下过滤器结构分析
- 软件工程第一次作业
- 使用lame将wav转成mp3
- Evaluate Reverse Polish Notation,String to Integer (atoi),Single Number,Reverse Integer
- 策略模式和设计原则
- JQuery Mobile