首页 > 代码库 > Ext.Net动态加载多表头
Ext.Net动态加载多表头
效果展示如下:
aspx页面代码:
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<!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 id="Head1" runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<title>数据展示(版本3)</title>
</head>
<body>
<form id="form1" runat="server">
<ext:ResourceManager ID="ResourceManager1" runat="server" />
<ext:GridPanel ID="gpList" runat="server" Title="" IconCls="icon-grid" AnimCollapse="false" Collapsible="true" SortableColumns="true" AutoHeight="true" Width="3000">
<Store>
<ext:Store ID="StoreAll" runat="server" OnRefreshData="http://www.mamicode.com/MyData_Refresh">
<Model>
<ext:Model ID="Model1" runat="server">
<Fields>
</Fields>
</ext:Model>
</Model>
</ext:Store>
</Store>
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" runat="server" PruneRemoved="false" Mode="Multi" />
</SelectionModel>
</ext:GridPanel>
</form>
</body>
</html>
aspx.cs文件代码:
if (!IsPostBack)
{
//清除旧数据与记录集
this.StoreAll.Reader.Clear();
this.gpList.SelectionModel.Clear();
this.gpList.ColumnModel.Columns.Clear();
this.StoreAll.Model.Clear();
DataTable dtProject = new PerforBLL().GetData();//从数据库中读取的数据
//数据源
DataTable results = new DataTable();
results.Columns.Add("Name");
//数据集Store
Model extModel = new Model();
extModel.Fields.Add(new ModelField("Name", ModelFieldType.String));
//显示的列数据
List<ColumnBase> extColumnBaseList = new List<ColumnBase>();
extColumnBaseList.Add(new RowNumbererColumn() { ID = "RowNumbererColumn1", Width = 25 });
extColumnBaseList.Add(new Column() { ID = "cName", Text = "名称", Width = 300, DataIndex = "Name" });
Column wZJ= new Column() { ID = "cWHZ", Text = "汇总" };
extModel.Fields.Add(new ModelField("W-T", ModelFieldType.Float));
extModel.Fields.Add(new ModelField("W-P", ModelFieldType.Float));
if (!results.Columns.Contains("W-T")) results.Columns.Add("W-T");
if (!results.Columns.Contains("W-P")) results.Columns.Add("W-P");
wZJ.Columns.Add(new Column()
{
Text = "时间",
Width = 50,
DataIndex = "W-T",
Sortable = true
});
wZJ.Columns.Add(new Column()
{
Text = "成本",
Width = 50,
DataIndex = "W-P",
Sortable = true
});
extColumnBaseList.Add(wZJ);
//动态给数据
foreach (DataRow drProject in dtProject.Rows)
{
DataRow dr = results.NewRow();
dr["Name"] = drProject["Name"];
dr["W-T"]= 0;
dr["W-P"] = 0;
results.Rows.Add(dr);
}
this.StoreAll.Model.Add(extModel);
this.gpList.ColumnModel.Columns.AddRange(extColumnBaseList);
this.StoreAll.DataSource = results;
this.StoreAll.DataBind();
this.gpList.Render();
}
Ext.Net动态加载多表头