DataGrid显示主次关系(C#)
//========HTML页面
<asp:datagrid id="dl_fenlei" Width="442px" HorizontalAlign="Left" Font-Size="Larger" BorderStyle="Solid"
AllowSorting="True" BorderColor="White" ShowHeader="False" CellPadding="0" AutoGenerateColumns="False" BorderWidth="0px"
runat="server">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<table border="0" cellpadding="0" cellspacing="0" width="442">
<!-- fwtable fwsrc="????¨1??" fwbase="index_r4_c4.jpg" fwstyle="Dreamweaver" fwdocid = "71301705" fwnested="0" -->
<tr>
<td><img src="skin/spacer.gif" width="442" height="1" border="0" alt=""></td>
<td><img src="skin/spacer.gif" width="1" height="1" border="0" alt=""></td>
</tr>
<tr>
<td height="31" valign="middle" background="skin/index_r4_c4_r1_c1.jpg"> >><%# DataBinder.Eval(Container.DataItem, "fenlei") %> <a href='morenews.aspx?fenlei=<%#DataBinder.Eval(Container.DataItem,"fenlei")%>'>更多新闻>></a> </td>
<td background="skin/spacer.gif"></td>
</tr>
<tr>
<td background="skin/index_r4_c4_r2_c1.jpg">
<asp:DataGrid id=DataGrid2 BorderWidth="0" runat="server" AutoGenerateColumns="False" DataSource='<%# DataBinder.Eval(Container.DataItem,"fenlei_Relation") %>' Width="100%" ShowHeader="False" DataKeyField="fenleiid" AllowCustomPaging="True" PageSize="5" AllowPaging="True">
<PagerStyle Visible="False" Mode="NumericPages"></PagerStyle>
<HeaderStyle Font-Bold="True" ForeColor="#CC0066" BackColor="#E4E4E4" Width="100%"></HeaderStyle>
<Columns>
<asp:BoundColumn Visible="False" DataField="fenleiid" ReadOnly="True"></asp:BoundColumn>
<asp:TemplateColumn>
<HeaderStyle Width="100%"></HeaderStyle>
<ItemTemplate> <a href='ListView.aspx?newsid=<%#DataBinder.Eval(Container.DataItem,"id")%>' target=_blank> <%# DataBinder.Eval(Container.DataItem, "title") %> </a><font color="#ff0000"> (已阅读<%#DataBinder.Eval(Container.DataItem,"counter")%>次)</font><font color="#c0c0c0"><%#DataBinder.Eval(Container.DataItem,"DateTime")%></font> </ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</td>
<td><img src="skin/spacer.gif" width="1" height="3" border="0" alt=""></td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>
//后台代码
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
SqlConnection cn=new SqlConnection(ConfigurationSettings.AppSettings["SqlCnString"]);
string cmdstr="select * from fenlei;select * from article order by datetime desc;select * from gonggao;select top 5 title,id,counter from article order by counter desc ";
cn.Open();
SqlDataAdapter da=new SqlDataAdapter(cmdstr,cn);
//创建并填充DataSet对象
DataSet ds=new DataSet();
da.Fill(ds);
//'设定表名字
ds.Tables[0].TableName="fenlei";
ds.Tables[1].TableName="article";
ds.Tables[2].TableName="gonggao";
ds.Tables[3].TableName="hot";
//在基于fenleiid字段的两个表之间建立父子关系
DataColumn Parent=ds.Tables["fenlei"].Columns["fenleiid"];
DataColumn Child=ds.Tables["article"].Columns["fenleiid"];
DataRelation fenlei_Relation=new DataRelation("fenlei_Relation", Parent, Child,false);
//为DataSet添加关系
ds.Relations.Add(fenlei_Relation);
//把DataSet绑定到fenlei,gonggao表
dl_fenlei.DataSource=ds.Tables["fenlei"].DefaultView;
dl_fenlei.DataBind();
gonggao.DataSource=ds.Tables["gonggao"].DefaultView;
gonggao.DataBind();
hot.DataSource=ds.Tables["hot"].DefaultView;
hot.DataBind();
cn.Close();
}