`
javatoyou
  • 浏览: 1017737 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

DataList嵌套DataList的实现

 
阅读更多
数据服务控件的嵌套最主要的是是内层控件数据的加载和事件的触发。 DataList嵌套的重点是要在外层DataList的ItemDataBound事件中用e.Item.FindControl方法来找到嵌套层 DataList的id,编写嵌套层DataList的绑定数据源事件。下面以两层DataList为例介绍下实现的过程。效果如下图:

http://ensure125.cnblogs.com/images/cnblogs_com/ensure125/da.GIF
---------前台html代码-------

  1. <asp:datalistid="dlFileType"RepeatColumns="2"runat="server">
  2. <ItemTemplate>
  3. <tableborder="0"cellspacing="0"cellpadding="0">
  4. <tr>
  5. <tdwidth="22%"height="88"align="center"valign="top">
  6. <imgsrc='<%#DataBinder.Eval(Container.DataItem,"cnvcPicURL")%>'width="80"height="80">
  7. </td>
  8. <tdvalign="top">
  9. <tablewidth="96%"border="0"cellpadding="0"cellspacing="0">
  10. <trwidth="100%">
  11. <tdcolspan="2"><imgsrc='<%#PageBase.strStyleRoot+"/picture/pic_fwzn_08.gif"%>'height="20"><%#DataBinder.Eval(Container.DataItem,"cnvcTitle")%>
  12. <asp:Labelid="labFileType"runat="server"Visible=FalseText='<%#DataBinder.Eval(Container.DataItem,"cniFileTypeID")%>'>
  13. </asp:Label></td>
  14. </tr>
  15. <tr>
  16. <tdwidth="300">
  17. <asp:DataListid="dlFileList"runat="server"RepeatColumns="1"Width="100%">
  18. <ItemTemplate>
  19. <TABLEcellSpacing="1"cellPadding="1"width="100%"border="0">
  20. <tr>
  21. <tdwidth="7%"height="20"align="center">
  22. <imgsrc='<%#PageBase.strStyleRoot+"/picture/pic_fwzn_dot.gif"%>'width="3"height="3"></td>
  23. <tdwidth="93%">
  24. <fontcolor="#393939">
  25. <%#GetTitle((string)Convert.ToString(DataBinder.Eval(Container.DataItem,"cnvcTitle")),(string)Convert.ToString(DataBinder.Eval(Container.DataItem,"cnvcFileType")),(string)Convert.ToString(DataBinder.Eval(Container.DataItem,"cniBaseFileID")),(DateTime)DataBinder.Eval(Container.DataItem,"cndtPublishTime"))%>
  26. </font>
  27. </td>
  28. </tr>
  29. </TABLE>
  30. </ItemTemplate>
  31. </asp:DataList>
  32. </td>
  33. </tr>
  34. <tr>
  35. <tdcolspan="2"bgcolor="E6E6E6"height="1"><imgsrc='<%#PageBase.strStyleRoot+"/picture/1X1.gif"%>'width="1"></td>
  36. </tr>
  37. <tralign="center">
  38. <tdheight="22"colspan="2"><ahref="#"title="可查看到更多相关内容"><imgsrc='<%#PageBase.strStyleRoot+"/picture/more.gif"%>'width="34"height="11"border="0"></a></td>
  39. </tr>
  40. </table>
  41. </td>
  42. </tr>
  43. </table>
  44. </ItemTemplate>
  45. </asp:datalist>

--------后台cs代码------
内层控件数据绑定与事件声明在外层的ItemDataBind中实现
  1. privatevoiddlFileType_ItemDataBound(objectsender,System.Web.UI.WebControls.DataListItemEventArgse)
  2. {
  3. if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
  4. {
  5. DataListdl=null;
  6. LabellabTypeID=null;

  7. dl=(DataList)e.Item.FindControl("dlFileList")
  8. labTypeID=(Label)e.Item.FindControl("lbFileType");
  9. stringtypeID=labTypeID.Text.ToString();
  10.    intiTypeID=Convert.ToInt32(typeID);
  11.     stringcommandText="select*fromtbfile";
  12.     commandText=commandText+"WhereTypeID="+iTypeID;
  13.     //------------
  14.     stringconnString=ConfigurationSettings.AppSettings["dsn"];
  15. SqlConnectionconn=newSqlConnection();
  16.     conn.ConnectionString=connString;
  17.     conn.Open();
  18.     SqlDataAdaptermyCommand=newSqlDataAdapter(commandText,conn);
  19.     DataSetds=newDataSet();
  20.     myCommand.Fill(ds,"tbFile");
  21.     conn.Close();
  22.     //------------
  23. dl.DataSource=ds.Tables["tbFile"];;
  24. dl.DataBind();
  25. }
  26. }

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics