TimeLord

有志者,事竟成,卧薪尝胆,百二秦关终属楚; 苦心人,天不负,破斧沉舟, 三千越甲可吞吴!

IT博客 首页 新随笔 联系 聚合 管理
  1 Posts :: 38 Stories :: 0 Comments :: 0 Trackbacks
1、我们先在页面中布置好两个DataList。并分别起名,dlsProductMenu,dlsProductInfo。如下:
<TABLE id="Table3" cellSpacing="0" cellPadding="0" width="90%" align="center" border="0">
  
<TBODY>
    
<TR>
      
<TD vAlign="top">
<!--主菜单开始-->
        
<ASP:datalist  id="dlsProductMenu" runat="server" RepeatDirection="Horizontal" RepeatColumns="2" Width="100%">
          
<ItemTemplate>
            
<TABLE class="table02"id="Table13" cellSpacing="0" cellPadding="0" width="100%" align="center" border="0">
              
<TR bgColor="#f5f5f5">
                
<TD width="50%" height="30">
                
<%# DataBinder.Eval(Container.DataItem,"Name"%>
                
</TD>
              
</TR>
            
</TABLE>
<!--子菜单开始-->
            
<ASP:datalist id="dlsProductInfo" Width="100%" runat="server" RepeatColumns="1">
              
<ItemTemplate>
                
<TABLE class="table02" id="Table14" cellSpacing="0" cellPadding="0" width="100%" align="center" border="0">
                  
<TR bgColor="#f5f5f5">
                    
<TD width="50%" height="30">
                      
<DIV class="style10" align="left">标题:       <href=../../'ProductInfoDetail.ASPx?subID=<%# DataBinder.Eval(Container.DataItem,"subID") %>'><%# DataBinder.Eval(Container.DataItem,"Title"%>
                        
</a>
                      
</DIV>
                    
</TD>
                  
</TR>
                
</TABLE>
             
</ItemTemplate>
          
</ASP:datalist>
<!--子菜单结束-->
       
</ItemTemplate>
    
</ASP:datalist>
<!--主菜单结束--></TD>
  
</TR>
</TBODY>
</TABLE>

2、进行数据绑定。
(1)为主DataList绑定主数据
DataSet ds = SqlDataProvider.GetMainInfo();//获取将要绑定的数据。
this.dlsProductMenu.DataSource = ds;
this.dlsProductMenu.DataBind();
(2)为子DataList绑定从数据。这也是该文的重点。
DataList嵌套的重点是要在外层DataList的ItemDataBound事件中完成对嵌套DataList的绑定。在主DataList的 ItemDataBound事件中用e.Item.FindControl方法来找到嵌套层DataList的id,完后为该id绑定数据。比如:
private void dlsProductMenu_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
  
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType == ListItemType.AlternatingItem) 
  
{
    DataList dataList 
= (DataList)       e.Item.FindControl("dlsProductInfo");
    DataRowView rowv 
= (DataRowView)e.Item.DataItem; 
    
int mainID = Convert.ToInt32(rowv["Id"]);

    
if(mainID > 0)
  
{
    DataSet ds 
= SqlDataProvider.GetSubContent(mainID);//获取从数据。
    if(ds != null)
   
{
     
try
       
{
         dataList.DataSource 
= ds;
         dataList.DataBind();
       }

     
catch(Exception ex)
      
{
         
throw new Exception(ex.Message);
      }

    }

  }

 }

}

posted on 2007-10-06 21:57 TimeLord 阅读(210) 评论(0)  编辑 收藏 引用 所属分类: ASP.NET