CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

datalist中的ItemDataBound无法取值?

楼主neting(.net学习中)2005-04-03 15:49:07 在 .NET技术 / ASP.NET 提问

前台嵌套两个datalist,如下:  
  <asp:datalist   id="Datalist1"   Runat="server"   Width="720px">  
  <ItemTemplate>  
  <asp:Label   ID="classid"   visible=False   Runat="server"   text='<%#DataBinder.Eval(Container,"DataItem.id")%>'>  
  '建立一个不可见label用来取得父datalist的BoardClassid  
  </asp:Label>  
  <table   width="99%"   border="0">  
  <tr>  
  <td   colspan="6"   class="title">  
  <%#DataBinder.Eval(Container,"DataItem.context")%>  
  </td>  
  </tr>  
  <asp:DataList   ID="Datalist2"   Runat="server">  
  <ItemTemplate>  
  <tr>  
  <td   width="2%"   height="20"></td>  
  <td   width="53%"   height="20"><%#DataBinder.Eval(Container,"DataItem.title")%></td>  
  </tr>  
  </ItemTemplate>  
  </asp:DataList>  
  </table>  
  </ItemTemplate>  
  </asp:datalist>  
  我要在后台,当第一个datalist的databound时,第二个datalist取label的值,绑定数据.  
   
  后台代码如下:  
  private   void   Page_Load(object   sender,   System.EventArgs   e)  
  {  
  //   在此处放置用户代码以初始化页面  
  if(!IsPostBack)      
  {      
  con.open();  
  string   access   =   "SELECT   id   ,Context   FROM   tbTree   where   id>40";  
  SqlDataAdapter   d_sqlDataAdapter   =   new   SqlDataAdapter(access,con.myConnection);  
  DataSet   d_dsEmployees   =   new   DataSet();  
  d_sqlDataAdapter.Fill(d_dsEmployees,"areaname");  
                           
                          Datalist1.DataSource   =   d_dsEmployees;  
                          Datalist1.DataBind();  
  }      
  }  
   
  private   void   Datalist1_ItemDataBound(   object   sender,     System.Web.UI.WebControls.DataListItemEventArgs   e)  
  {  
  int   ClassID=Convert.ToInt32((Label)e.Item   .FindControl("classid"));  
   
  //利用FindControl用label获得BoardID的值,并附到变量ClassID                  
  string   access   =   "SELECT   *   FROM   news   where   typeid=   "   +   ClassID;  
  SqlDataAdapter   d_sqlDataAdapter   =   new   SqlDataAdapter(access,con.myConnection);  
  DataSet   ADS   =   new   DataSet();  
  d_sqlDataAdapter.Fill(ADS,"areaname");  
   
  DataList   ClassID2=(DataList)e.Item.FindControl("datalist2");  
  //利用FindControl将第二个datalist板定  
  ClassID2.DataSource   =   ADS;  
  ClassID2.DataBind();  
  }  
   
  不起作用.哪位帮忙看看 问题点数:80、回复次数:4Top

1 楼neting(.net学习中)回复于 2005-04-03 19:05:27 得分 0

顶Top

2 楼hackate(兰花开香入梦境,独思佳人亦飘然!!)回复于 2005-04-03 19:25:57 得分 80

leo_boy不行吗/之前不是可以吗?我给你看看我的  
   
  以下是.aspx代码  
   
  <%@   Page   Language="vb"   AutoEventWireup="false"   Codebehind="index.aspx.vb"   Inherits="WebApplication8.index"%>  
  <!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.0   Transitional//EN">  
  <HTML>  
  <HEAD>  
  <title>index</title>  
  <style   type="text/css">TD   {  
  FONT-SIZE:   9pt;   LINE-HEIGHT:   150%  
  }  
  BODY   {  
  SCROLLBAR-FACE-COLOR:   #eeeeee;   FONT-SIZE:   12px;   SCROLLBAR-HIGHLIGHT-COLOR:   #ffffff;   SCROLLBAR-SHADOW-COLOR:   #dee3e7;   SCROLLBAR-3DLIGHT-COLOR:   #d1d7dc;   SCROLLBAR-ARROW-COLOR:   #006699;   SCROLLBAR-TRACK-COLOR:   #ededed;   FONT-FAMILY:   Verdana,   Arial,   Helvetica,   sans-serif,   宋体;   SCROLLBAR-DARKSHADOW-COLOR:   #98aab1  
  }  
  A:link   {  
  FONT-SIZE:   9pt;   COLOR:   #363636;   LINE-HEIGHT:   18px;   TEXT-DECORATION:   none  
  }  
  A:visited   {  
  FONT-SIZE:   9pt;   COLOR:   #363636;   LINE-HEIGHT:   18px;   TEXT-DECORATION:   none  
  }  
  A:hover   {  
  COLOR:   #cc0000;   LINE-HEIGHT:   18px;   TEXT-DECORATION:   underline  
  }  
  INPUT   {  
  BORDER-TOP-WIDTH:   1px;   BORDER-LEFT-WIDTH:   1px;   FONT-SIZE:   9pt;   BORDER-LEFT-COLOR:   #d2d2d2;   BORDER-BOTTOM-WIDTH:   1px;   BORDER-BOTTOM-COLOR:   #d2d2d2;   BORDER-TOP-COLOR:   #d2d2d2;   LINE-HEIGHT:   120%;   FONT-FAMILY:   "tahoma",   "arial",   "helvetica",   "sans-serif",   "宋体";   BACKGROUND-COLOR:   #f9f9f9;   BORDER-RIGHT-WIDTH:   1px;   BORDER-RIGHT-COLOR:   #d2d2d2  
  }  
  SELECT   {  
  BORDER-TOP-WIDTH:   1px;   BORDER-LEFT-WIDTH:   1px;   FONT-SIZE:   9pt;   BORDER-LEFT-COLOR:   #d2d2d2;   BORDER-BOTTOM-WIDTH:   1px;   BORDER-BOTTOM-COLOR:   #d2d2d2;   BORDER-TOP-COLOR:   #d2d2d2;   LINE-HEIGHT:   120%;   FONT-FAMILY:   "tahoma",   "arial",   "helvetica",   "sans-serif",   "宋体";   BACKGROUND-COLOR:   #f9f9f9;   BORDER-RIGHT-WIDTH:   1px;   BORDER-RIGHT-COLOR:   #d2d2d2  
  }  
  TEXTAREA   {  
  BORDER-TOP-WIDTH:   1px;   BORDER-LEFT-WIDTH:   1px;   FONT-SIZE:   9pt;   BORDER-LEFT-COLOR:   #d2d2d2;   BORDER-BOTTOM-WIDTH:   1px;   BORDER-BOTTOM-COLOR:   #d2d2d2;   BORDER-TOP-COLOR:   #d2d2d2;   LINE-HEIGHT:   120%;   FONT-FAMILY:   "tahoma",   "arial",   "helvetica",   "sans-serif",   "宋体";   BACKGROUND-COLOR:   #f9f9f9;   BORDER-RIGHT-WIDTH:   1px;   BORDER-RIGHT-COLOR:   #d2d2d2  
  }  
  </style>  
  <meta   content="Microsoft   Visual   Studio   .NET   7.1"   name="GENERATOR">  
  <meta   content="Visual   Basic   .NET   7.1"   name="CODE_LANGUAGE">  
  <meta   content="JavaScript"   name="vs_defaultClientScript">  
  <meta   content="http://schemas.microsoft.com/intellisense/ie5"   name="vs_targetSchema">  
  </HEAD>  
  <body   MS_POSITIONING="GridLayout">  
  <form   id="Form1"   method="post"   runat="server">  
  <table   id="table1"   borderColor="#66ccff"   width="50%"   align="center"   border="1">  
  <tr   align="center">  
  <td   align="center"><asp:datalist   id="dlt1"   Runat="server"   Width="100%">  
  <ItemTemplate>  
  <tr   align="left">  
  <td   align="left"   bgcolor="#66ccff">  
  <asp:Label   ID="lblclassid"   Runat="server"   text='<%#   container.dataitem("classid")%>'>  
  </asp:Label>&nbsp;&nbsp;   <a   href='index.aspx?classid=<%#   container.dataitem("classid")%>'>  
  <%#   container.dataitem("classname")%>  
  </a>  
  </td>  
  </tr>  
  <tr>  
  <td>  
  <asp:datalist   ID="dlt2"   Runat="server">  
  <ItemTemplate>  
  <tr>  
  <td   align="left">  
  <a   href='bankuai.aspx?classid=<%#   container.dataitem("classid")%>&nclassid=<%#   container.dataitem("nclassid")%>'>  
  <%#   container.dataitem("nclassname")%>  
  </a>  
  </td>  
  </tr>  
  </ItemTemplate>  
  </asp:datalist></td>  
  </tr>  
  </ItemTemplate>  
  </asp:datalist></td>  
  </tr>  
  </table>  
  </form>  
  </body>  
  </HTML>  
  Top

3 楼hackate(兰花开香入梦境,独思佳人亦飘然!!)回复于 2005-04-03 19:26:24 得分 0

以下是.vb代码  
   
  Imports   System  
  Imports   WebApplication8.hackate_cls  
  Public   Class   index  
          Inherits   System.Web.UI.Page  
   
  #Region   "   Web   窗体设计器生成的代码   "  
   
          '该调用是   Web   窗体设计器所必需的。  
          <System.Diagnostics.DebuggerStepThrough()>   Private   Sub   InitializeComponent()  
   
          End   Sub  
          Protected   WithEvents   dlt1   As   System.Web.UI.WebControls.DataList  
   
          '注意:   以下占位符声明是   Web   窗体设计器所必需的。  
          '不要删除或移动它。  
          Private   designerPlaceholderDeclaration   As   System.Object  
   
          Private   Sub   Page_Init(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   MyBase.Init  
                  'CODEGEN:   此方法调用是   Web   窗体设计器所必需的  
                  '不要使用代码编辑器修改它。  
                  InitializeComponent()  
          End   Sub  
   
  #End   Region  
          Dim   conn   As   SqlClient.SqlConnection  
          Dim   cmd   As   SqlClient.SqlCommand  
          Dim   rs   As   SqlClient.SqlDataReader  
          Private   Sub   Page_Load(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   MyBase.Load  
                  '在此处放置初始化页的用户代码  
                  If   Not   IsPostBack   Then  
                          'conn   =   New   SqlClient.SqlConnection(ConfigurationSettings.AppSettings("shujuku"))  
                          'cmd   =   New   SqlClient.SqlCommand("select   *   from   hkbbs_class",   conn)  
                          'conn.Open()  
                          'rs   =   cmd.ExecuteReader  
                          If   Trim(Request.QueryString("classid"))   =   ""   Then  
                                  dlt1.DataSource   =   sqldaselect.dacountbig("select   *   from   hkbbs_class")  
                                  dlt1.DataBind()  
                          Else  
                                  dlt1.DataSource   =   sqldaselect.daselect("select   *   from   hkbbs_class   where   classid="   &   Trim(Request.QueryString("classid")))  
                                  dlt1.DataBind()  
                          End   If  
                          'rs.Close()  
                          'cmd.Dispose()  
                          'conn.Close()  
                  End   If  
          End   Sub  
   
          Private   Sub   dlt1_ItemDataBound(ByVal   sender   As   Object,   ByVal   e   As   System.Web.UI.WebControls.DataListItemEventArgs)   Handles   dlt1.ItemDataBound  
                  'Dim   tmpid   As   Label   =   CType(e.Item.FindControl("lblclassid").text,   Label)  
                  Dim   tmpid   As   String   =   CType(e.Item.FindControl("lblclassid"),   Label).Text  
                  'Response.Write("<script>alert('"   &   tmpid   &   "');</script>")  
                  'conn   =   New   SqlClient.SqlConnection(ConfigurationSettings.AppSettings("shujuku"))  
                  'cmd   =   New   SqlClient.SqlCommand("select   *   from   hkbbs_nclass   where   classid='"   &   tmpid   &   "'",   conn)  
                  'conn.Open()  
                  'rs   =   cmd.ExecuteReader  
                  Dim   tmpdlt   As   DataList   =   CType(e.Item.FindControl("dlt2"),   DataList)  
                  tmpdlt.DataSource   =   sqldaselect.dacountsmail("select   *   from   hkbbs_nclass   where   classid='"   &   tmpid   &   "'")  
                  tmpdlt.DataBind()  
                  'rs.Close()  
                  'cmd.Dispose()  
                  'conn.Close()  
          End   Sub  
   
          Private   Sub   dlt1_SelectedIndexChanged(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   dlt1.SelectedIndexChanged  
   
          End   Sub  
  End   Class  
  Top

4 楼neting(.net学习中)回复于 2005-04-04 00:01:54 得分 0

谢谢,我自己搞定了Top

相关问题

  • 关于DataList控件的取值~~~~
  • datalist的问题,关于取值.在线急等
  • DataList中RadioButton赋初值,取值的问题,请高手帮忙:(
  • 问一个关于datalist取值的问题
  • 取值?
  • 取值
  • DataList的ItemDataBound事件
  • 动态生成的CheckBoxList无法取值,到底那里有问题?
  • msflexgrid取值
  • dbgrid取值

关键词

得分解答快速导航

  • 帖主:neting
  • hackate

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo