/**
* @author fox
*/
Ext.onReady(function() {
Ext.BLANK_IMAGE_URL = 'extjs/resources/images/default/s.gif';
Ext.QuickTips.init();
//var sm = new Ext.grid.CheckboxSelectionModel();
var cm = new Ext.grid.ColumnModel([
new Ext.grid.RowNumberer(),
//sm,
{ header: '用户编号', dataIndex: 'user_code', sortable: true },
{ header: '电表编号', dataIndex: 'meter_num' },
{ header: '购电量', dataIndex: 'pur_power' },
{ header: '购电时间', dataIndex: 'pur_date' }
]);
var ds = new Ext.data.GroupingStore({
proxy: new Ext.data.HttpProxy({ url: 'GetJson.aspx',method: 'post' }),
reader: new Ext.data.JsonReader({
root: 'data',
totalProperty: 'totalRecordCount'
}, [
{ name: 'user_code', mapping: 'user_code', type: 'string' },
{ name: 'meter_num', mapping: 'meter_num', type: 'string' },
{ name: 'pur_power', mapping: 'pur_power', type: 'int' },
{ name: 'pur_date', mapping: 'pur_date', type: 'string' }
])
});
var record_start = 0;
var grid = new Ext.grid.GridPanel({
el: 'grid3',
ds: ds,
// sm: sm,
cm: cm,
width: 700,
height: 280,
loadMask:{msg:'系统正在查询,请稍候......'},
bbar: new Ext.PagingToolbar({
pageSize: 10,
store: ds,
displayInfo: true,
displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',
emptyMsg: "没有记录",
doLoad : function(start)
{
record_start = start;
var o = {}, pn = this.paramNames;
o[pn.start] = start;
o[pn.limit] = this.pageSize;
this.store.load({params:o});
}
})
});
//el:指定html元素用于显示grid
ds.load({ params: { start: 0, limit: 10} });
grid.render(); //渲染表格
});
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="GetJson.aspx.cs" Inherits="GetJson" %>
<%=strJsonSource %>
public partial class GetJson : System.Web.UI.Page
{
protected string strJsonSource = string.Empty;
protected void Page_Load(object sender, EventArgs e)
{
int start = int.Parse(Request.Form["start"].Trim()); //获取页面显示的起始数
int limit = int.Parse(Request.Form["limit"].Trim()); //获取每页记录数
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "server=(local);database=cpudata;user id =sa;password= 19790601";
try
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "select top 100 user_code,meter_num,pur_power,pur_date from pur_power_detail";
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
sda.Fill(ds);
int pageCount = ds.Tables[0].Rows.Count;
DataTable dt = ds.Tables[0];
strJsonSource = DataTableToJson(dt, "data", start, limit);
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
finally
{
conn.Close();
}
HttpContext.Current.Response.Write(strJsonSource);
HttpContext.Current.Response.End();
//strJsonSource = ReturnJson.JsonString();
//HttpContext.Current.Response.Write(strJsonSource);
//HttpContext.Current.Response.End();
}
public static string DataTableToJson(DataTable dt, string strTableName, int start, int limit)
{
StringBuilder jsonBuilder = new StringBuilder();
string head = "{ success:true,\"totalRecordCount\":\"" + dt.Rows.Count.ToString() + "\",\"";
//jsonBuilder.Append("{\"");
string tmpStr = "";
jsonBuilder.Append(strTableName);
jsonBuilder.Append("\":[");
if (dt.Rows.Count > 0)
{
int endCount = start + limit;
if (endCount > dt.Rows.Count)
endCount = dt.Rows.Count;
for (int i = start; i < endCount; i++)
{
jsonBuilder.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
jsonBuilder.Append("\"");
jsonBuilder.Append(dt.Columns[j].ColumnName);
jsonBuilder.Append("\":\"");
tmpStr = dt.Rows[i][j].ToString().Trim();
jsonBuilder.Append(tmpStr.Replace("\"", "\\\""));
jsonBuilder.Append("\",");
}
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
jsonBuilder.Append("},");
}
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
}
jsonBuilder.Append("]");
jsonBuilder.Append("}");
return head + jsonBuilder.ToString();
}
}