liangsequn

Web编程爱好者

导航

实现数据控件的嵌套

 主要用到了 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()%>
                                                        
&nbsp;&nbsp; </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();
        }

posted on 2006-08-16 19:26  昙花一现  阅读(84)  评论(0)    收藏  举报