1.在*.aspx页面头加入
<%@ Register TagPrefix="DBWC" Namespace="DBauer.Web.UI.WebControls" Assembly="DBauer.Web.UI.WebControls.HierarGrid" %>
2.从工具中新建一个DBauer.Web.UI.WebControls.HierarGrid,名字为:HG1
注意以下属性:
(1)TemplateCachingBase:Tablename
(2)TemplateDataMode:Table
3.在*.cs中加入:
// 创建DataSet ds,并填入Tables[0](主表)、Tables[1](子表)
// 创建两表的关联
DataColumn dc1;
DataColumn dc2;
//Relation Author => Title
dc1 = ds.Tables[1].Columns["title_id"];
dc2 = ds.Tables[0].Columns["title_id"];
DataRelation dr = new DataRelation("Author_Title", dc1, dc2, false);
ds.Relations.Add(dr);
//绑定数据源为ds(DataSet)
HG1.DataSource = ds;
//选择其中的一个表
HG1.DataMember = ds.Tables[0].TableName;
HG1.DataBind();
//展开第一行
HG1.RowExpanded[0] = true;
4.增加TemplateSelection事件,以选择子表的显示模板(注意一定要将路径写正确!):
private void HG1_TemplateSelection(object sender, HierarGridTemplateSelectionEventArgs e)
{
e.TemplateFilename = "Templates\\1.ascx";
}
5.在子表模板1.ascx中用dataGrid绑定所需字段
<%@ Control Language="c#" AutoEventWireup="false" Codebehind="OrderDrawOutDetail.ascx.cs" Inherits="Erp.Templates.OrderDrawOutDetail" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
<asp:DataGrid id="DataGrid1" runat="server" WIDTH="100%" BORDERCOLOR="#999999" BORDERSTYLE="None" BORDERWIDTH="1px" BACKCOLOR="White" CELLPADDING="1" AutoGenerateColumns="False"&gt;
<AlternatingItemStyle BackColor="White"&gt;</AlternatingItemStyle&gt;
<ItemStyle ForeColor="Black" BackColor="White"&gt;</ItemStyle&gt;
<HeaderStyle Font-Bold="True" ForeColor="Black" BackColor="White"&gt;</HeaderStyle&gt;
<Columns&gt;
<asp:BoundColumn DataField="SpeciModel" SortExpression="SpeciModel" HeaderText="商品规格"&gt;</asp:BoundColumn&gt;
<asp:BoundColumn DataField="UnitPrice" SortExpression="UnitPrice" HeaderText="单价"&gt;</asp:BoundColumn&gt;
<asp:BoundColumn DataField="SaleMoney" SortExpression="SaleMoney" HeaderText="金额"&gt;</asp:BoundColumn&gt;
</Columns&gt;
</asp:DataGrid&gt;
6.在1.cs的初始化方法InitializeComponent()中加入(注意是this.DataBinding):
this.DataBinding += new System.EventHandler(this.DataGrid1_DataBinding);
7.在绑定函数中取出主表的DataSet,并用ds.Tables[1]来绑定
private void DataGrid1_DataBinding(object sender, System.EventArgs e)
{
DataGridItem dgi = (DataGridItem) this.BindingContainer;
DataSet ds = (DataSet) dgi.DataItem;
DataGrid1.DataSource = ds;
DataGrid1.DataMember = ds.Tables[1].TableName;
DataGrid1.DataBind();
}
&lt;%@ Register TagPrefix="DBWC" Namespace="DBauer.Web.UI.WebControls" Assembly="DBauer.Web.UI.WebControls.HierarGrid" %&gt;
2.从工具中新建一个DBauer.Web.UI.WebControls.HierarGrid,名字为:HG1
注意以下属性:
(1)TemplateCachingBase:Tablename
(2)TemplateDataMode:Table
3.在*.cs中加入:
// 创建DataSet ds,并填入Tables[0](主表)、Tables[1](子表)
// 创建两表的关联
DataColumn dc1;
DataColumn dc2;
//Relation Author =&gt; Title
dc1 = ds.Tables[1].Columns["title_id"];
dc2 = ds.Tables[0].Columns["title_id"];
DataRelation dr = new DataRelation("Author_Title", dc1, dc2, false);
ds.Relations.Add(dr);
//绑定数据源为ds(DataSet)
HG1.DataSource = ds;
//选择其中的一个表
HG1.DataMember = ds.Tables[0].TableName;
HG1.DataBind();
//展开第一行
HG1.RowExpanded[0] = true;
4.增加TemplateSelection事件,以选择子表的显示模板(注意一定要将路径写正确!):
private void HG1_TemplateSelection(object sender, HierarGridTemplateSelectionEventArgs e)
{
e.TemplateFilename = "Templates\\1.ascx";
}
5.在子表模板1.ascx中用dataGrid绑定所需字段
&lt;%@ Control Language="c#" AutoEventWireup="false" Codebehind="OrderDrawOutDetail.ascx.cs" Inherits="Erp.Templates.OrderDrawOutDetail" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%&gt;
<asp:DataGrid id="DataGrid1" runat="server" WIDTH="100%" BORDERCOLOR="#999999" BORDERSTYLE="None" BORDERWIDTH="1px" BACKCOLOR="White" CELLPADDING="1" AutoGenerateColumns="False"&gt;
<AlternatingItemStyle BackColor="White"&gt;</AlternatingItemStyle&gt;
<ItemStyle ForeColor="Black" BackColor="White"&gt;</ItemStyle&gt;
<HeaderStyle Font-Bold="True" ForeColor="Black" BackColor="White"&gt;</HeaderStyle&gt;
<Columns&gt;
<asp:BoundColumn DataField="SpeciModel" SortExpression="SpeciModel" HeaderText="商品规格"&gt;</asp:BoundColumn&gt;
<asp:BoundColumn DataField="UnitPrice" SortExpression="UnitPrice" HeaderText="单价"&gt;</asp:BoundColumn&gt;
<asp:BoundColumn DataField="SaleMoney" SortExpression="SaleMoney" HeaderText="金额"&gt;</asp:BoundColumn&gt;
</Columns&gt;
</asp:DataGrid&gt;
6.在1.cs的初始化方法InitializeComponent()中加入(注意是this.DataBinding):
this.DataBinding += new System.EventHandler(this.DataGrid1_DataBinding);
7.在绑定函数中取出主表的DataSet,并用ds.Tables[1]来绑定
private void DataGrid1_DataBinding(object sender, System.EventArgs e)
{
DataGridItem dgi = (DataGridItem) this.BindingContainer;
DataSet ds = (DataSet) dgi.DataItem;
DataGrid1.DataSource = ds;
DataGrid1.DataMember = ds.Tables[1].TableName;
DataGrid1.DataBind();
}

浙公网安备 33010602011771号