您的位置:首页 > 其它

jqgrid 动态列生成

2012-10-23 13:19 246 查看
前台代码

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DynamicCol.aspx.cs" Inherits="Content_DynamicCol" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link href="/Content/smoothness/jquery-ui-1.8.17.custom.css" rel="stylesheet" type="text/css" />
<link href="/Content/Site.css" rel="stylesheet" type="text/css" />
<script src="/js/jquery.min.js" type="text/javascript"></script>
<link href="/js/ui.jqgrid.css" rel="stylesheet" type="text/css" />
<script src="/js/i18n/grid.locale-cn.js" type="text/javascript"></script>
<script src="/js/jquery.jqGrid.min.js" type="text/javascript"></script>
<script src="/js/jquery-ui-1.8.16.custom.min.js" type="text/javascript"></script>
<script type="text/javascript" src="/scripts/jquery.jBox-2.3.min.js"></script>
<script type="text/javascript" src="/scripts/jquery.jBox-zh-CN.js"></script>
<script language="javascript" type="text/javascript">
$(function() {
//首先是获取动态的列
GetDynamicCols();
$("#BtnEdit").bind("click", function() {
var rowid = $("#gridTable").jqGrid('getGridParam', 'selrow');
if (rowid != null) {
var rowData = $("#gridTable").getRowData(rowid);
alert(rowData.Device_ID);
}
else {
alert("请选择数据行");
}
}
);
}
);
function GetDynamicCols() {
$.ajax({
type: "POST",
async: false,
contentType: "application/json;utf-8",
url: "Data1.ashx?action=getcols1&orgcode=KEJI11300&ico=true&og=true",
success: function(data) {
creategrid(data);
},
beforeSend: function() {
//$.jBox.tip("正在查询数据...", 'loading');
}

});
}
function creategrid(data) {
$("#gridTable").jqGrid({
datatype: 'local',
width: 1200,
height: 465,
rowNum: 25,
rowList: [25, 30, 50],
shrinkToFit: true, //自动调整列宽
altRows: true, //隔行变色
altclass: 'altclass', //隔行变色样式
colNames: data.ColNs,
colModel: data.ColMs,
viewrecords: true,
caption: "内容列表",
hidegrid: false,
ondblClickRow: function(ID) { //行点击事件
var rowData = $("#gridTable").jqGrid("getRowData", ID);
var id = rowData.OgCode;
alert(id);
},
loadtext: "正在加载数据......"
});

gridTable.addJSONData(data);
}
function currencyFmatter(cellvalue, options, rowObject) {
if (cellvalue = "文件类型")
return "<img src='http://it.rifa.com.cn/images/new1.gif' />"
else
return "文件夹图片URL" + cellvalue
}
</script>
</head>
<body>
<form id="form1" runat="server">
<table id="gridTable"></table>
<input id="BtnEdit" type="button" value="修改" />
</form>
</body>
</html>
后台 Data1.ashx 文件内容

<%@ WebHandler Language="C#" Class="data1" %>
using System;
using System.Web;
using System.Data;
using System.Collections.Generic;
using System.Collections;
using System.Configuration;
public class data1 : IHttpHandler {
RIFATM.DB.SqlHelper sqlh = new RIFATM.DB.SqlHelper();
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "application/json";
DataTable dt = new DataTable();
DataTable dt2 = new DataTable();
DataTable resultdata = new DataTable();
string linkaddres = "";
string sql = "";
string sql2 = "";
if (context.Request.Params["action"] == "getcols1")
{
sql = "select * from Sys_home_set where orgcode='" + context.Request.Params["orgcode"].ToString() + "' and id='7' order by descid asc";
sql2 = "select sql from Sys_home where orgcode='" + context.Request.Params["orgcode"].ToString() + "' and id='7'";
}
dt = sqlh.GetTable(sql);
dt2 = sqlh.GetTable(sql2);
resultdata = sqlh.GetTable(dt2.Rows[0]["sql"].ToString());
//以下是核心部分
IList<object> rowObjects = new List<object>();
ArrayList ColNs = new ArrayList();
IList<object> ColMs = new List<object>();
ColNs.Add("");
var colm = new
{
name = "img",
index = "img",
width = 32,
sortable = false
};
ColMs.Add(colm);
ColNs.Add("");
var colmog = new
{
name = "OgCode",
index = "OgCode",
hidden = true
};
ColMs.Add(colmog);
Type homecols = ClassHelper.BuildType("homecols");
List<ClassHelper.CustPropertyInfo> cpo = new List<ClassHelper.CustPropertyInfo>();
ClassHelper.CustPropertyInfo cpi;

foreach (DataRow dr in dt.Rows)
{
ColNs.Add(dr["ColumnText"].ToString());
var colms = new
{
name = dr["ShowColumn"].ToString(),
index = dr["ShowColumn"].ToString(),
width = 100
};
if (dr["linkaddress"].ToString().Length != 0)
{
linkaddres = dr["linkaddress"].ToString();
}
cpi=new ClassHelper.CustPropertyInfo("System.String",dr["ShowColumn"].ToString());
cpo.Add(cpi);
ColMs.Add(colms);
}
///图标和业务组编码
if (context.Request.Params["ico"] == "true")
{
cpi = new ClassHelper.CustPropertyInfo("System.String", "img");
cpo.Add(cpi);
}
if (context.Request.Params["og"] == "true")
{
cpi = new ClassHelper.CustPropertyInfo("System.String", "OgCode");
cpo.Add(cpi);
homecols = ClassHelper.AddProperty(homecols, cpo);
}
///

homecols=ClassHelper.AddProperty(homecols,cpo);
IList<object> oo = new List<object> { ClassHelper.CreateInstance(homecols) };
foreach (DataRow dr in resultdata.Rows)
{
object o = ClassHelper.CreateInstance(homecols);
foreach (ClassHelper.CustPropertyInfo _cpo in cpo)
{
string colname = _cpo.FieldName;
if (string.Compare(colname,"img") == 0)
{
ClassHelper.SetPropertyValue(o, "img", "<img src='http://it.rifa.com.cn/images/new1.gif' />");
}
if (string.Compare(colname, "OgCode") == 0)
{
ClassHelper.SetPropertyValue(o, "OgCode", "RFHG16000");
}
if ((string.Compare(colname, "img") != 0) && (string.Compare(colname, "OgCode") != 0))
{
ClassHelper.SetPropertyValue(o, colname, dr[_cpo.FieldName.Trim()].ToString());
}
}
oo.Add(o);
}
oo.RemoveAt(0); //不知道为什么生成的第一行数据是NULL,删除空行数据
var resultObj = new
{
ColNs = ColNs, // 总页数
ColMs = ColMs,
rows = oo
};
context.Response.Write(Newtonsoft.Json.JsonConvert.SerializeObject(resultObj));
}

public bool IsReusable {
get {
return false;
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: