实现数据控件的嵌套
主要用到了 DataKeyField 属性和父控件的dl_2_ItemDataBound事件,可以模拟无限级嵌套
html 源码
<asp:datalist id="dl_2" runat="server" RepeatDirection="Horizontal" RepeatColumns="1" DataKeyField="Game_Type_Id">
<ItemTemplate>
<table cellpadding="0" cellspacing="0">
<tr>
<td>
<a href='<%# "http://Game.djy.cc/type_show.aspx?type="+DataBinder.Eval(Container.DataItem,"Game_Type_Id")%>' target=_blank class="color1">
<%# DataBinder.Eval(Container.DataItem,"Game_Type_Name").ToString().Trim().Length>10?DataBinder.Eval(Container.DataItem,"Game_Type_Name").ToString().Trim().Substring(0,9)+"..":DataBinder.Eval(Container.DataItem,"Game_Type_Name").ToString().Trim()%>
</a>
</td>
<td>
<asp:DataList ID="dl_3" runat="server" RepeatDirection="Horizontal" RepeatColumns="2">
<ItemTemplate>
<a href='<%# "http://Game.djy.cc/Game_show.aspx?game_id="+DataBinder.Eval(Container.DataItem,"game_id")%>' target=_blank class="color1">
<%# DataBinder.Eval(Container.DataItem,"game_name").ToString().Trim().Length>10?DataBinder.Eval(Container.DataItem,"game_name").ToString().Trim().Substring(0,9)+"..":DataBinder.Eval(Container.DataItem,"game_name").ToString().Trim()%>
</a>
</ItemTemplate>
</asp:DataList>
</td>
</tr>
</table>
</ItemTemplate>
</asp:datalist>
html 源码
<asp:datalist id="dl_2" runat="server" RepeatDirection="Horizontal" RepeatColumns="1" DataKeyField="Game_Type_Id">
<ItemTemplate>
<table cellpadding="0" cellspacing="0">
<tr>
<td>
<a href='<%# "http://Game.djy.cc/type_show.aspx?type="+DataBinder.Eval(Container.DataItem,"Game_Type_Id")%>' target=_blank class="color1">
<%# DataBinder.Eval(Container.DataItem,"Game_Type_Name").ToString().Trim().Length>10?DataBinder.Eval(Container.DataItem,"Game_Type_Name").ToString().Trim().Substring(0,9)+"..":DataBinder.Eval(Container.DataItem,"Game_Type_Name").ToString().Trim()%>
</a>
</td>
<td>
<asp:DataList ID="dl_3" runat="server" RepeatDirection="Horizontal" RepeatColumns="2">
<ItemTemplate>
<a href='<%# "http://Game.djy.cc/Game_show.aspx?game_id="+DataBinder.Eval(Container.DataItem,"game_id")%>' target=_blank class="color1">
<%# DataBinder.Eval(Container.DataItem,"game_name").ToString().Trim().Length>10?DataBinder.Eval(Container.DataItem,"game_name").ToString().Trim().Substring(0,9)+"..":DataBinder.Eval(Container.DataItem,"game_name").ToString().Trim()%>
</a>
</ItemTemplate>
</asp:DataList>
</td>
</tr>
</table>
</ItemTemplate>
</asp:datalist>C#代码
private void dl_2_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
string k=dl_2.DataKeys[e.Item.ItemIndex].ToString().Trim();
DataList dl=(DataList) e.Item.FindControl("dl_3");
ADO ado=new ADO();
DataSet ds=ado.GetDataSet("select top 2 * from Game where game_type="+k+" and game_shen=1 order by game_hits desc",0,5,"table1");
dl.DataSource=ds;
dl.DataBind();
}
private void dl_2_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
string k=dl_2.DataKeys[e.Item.ItemIndex].ToString().Trim();
DataList dl=(DataList) e.Item.FindControl("dl_3");
ADO ado=new ADO();
DataSet ds=ado.GetDataSet("select top 2 * from Game where game_type="+k+" and game_shen=1 order by game_hits desc",0,5,"table1");
dl.DataSource=ds;
dl.DataBind();
}
浙公网安备 33010602011771号