以下是页面绑定的代码<ItemTemplate>
<FONT face="宋体">&nbsp;
<asp:Image id="Image1" runat="server" ImageUrl="images/SizePlus.gif"></asp:Image>&nbsp;
<asp:LinkButton id="LinkButton1" runat="server" CommandName="Select">
<%# (DataBinder.Eval(Container.DataItem, "addtypename")) %>
</asp:LinkButton>
<asp:Label id="Label2" runat="server" Width="32px">
<%# (DataBinder.Eval(Container.DataItem, "addtypeid")) %>
</asp:Label></FONT>
</ItemTemplate>
我在DataList1_ItemCommand()事件中
Label   tb   =   (Label)e.Item.FindControl("Label2"); 
string tname=tb.Text
取出的值为空
各位看一下

解决方案 »

  1.   

    为空说明FindControl已经找到了,应该是其他地方的问题
      

  2.   

    这是数据库绑定的代码,
    private void bindList()
    {
    SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);
    conn.Open();
    //SqlCommand cmd = new SqlCommand("select addtype from addtype where userid='"+Session["userid"]+"'",conn);

    SqlDataAdapter da = new SqlDataAdapter("select * from addtype where userid='"+Session["userid"]+"'",conn);
    DataSet ds = new DataSet();
    da.Fill(ds,"tmpTable");
    this.DataList1.DataSource=ds.Tables["tmpTable"].DefaultView;
    this.DataList1.DataBind();
    }
      

  3.   

    就你发的这些代码不能说明你的目的啊,不是点击button才显示吗?是不是没初始化?或者要触法你的button事件才行?botton方法呢?
      

  4.   

    简单方法<asp:datalist id="zplist" runat="server" RepeatColumns="4" RepeatDirection="Horizontal" Width="90%" >
    <ItemTemplate>&nbsp;&nbsp;
    <div style="MARGIN-LEFT: 15px">
    <table border=0 bgcolor=WhiteSmoke>
    <tr>
    <td colspan=2 align=center valign=bottom height=150 bgcolor=White>
    <a target=_blank href="../lib/preview.aspx?Gid=<%=Gid%>&zid=<%# DataBinder.Eval(Container.DataItem,"id")%>">
    <img id='image<%# DataBinder.Eval(Container.DataItem,"id")%>' onerror="ChangeImg('image<%# DataBinder.Eval(Container.DataItem,"id")%>')" border=0 src='<%# DataBinder.Eval(Container.DataItem,"mapth")%>'>
    </a>
    </td>
    </tr>
    <tr>
    <td valign="top">编号:</td>
    <td valign="top"><%# DataBinder.Eval(Container.DataItem,"id")%></td>
    </tr>
    </table>
    <asp:Label id="tishi" Visible="False" ForeColor="#ff9900" runat="server"></asp:Label>
    </div>
    </ItemTemplate>
    </asp:datalist></td>Dim i As Integer
            Dim nStep As Integer = 5
            Dim nStart, nEnd As Integer
            Dim db As New DataBase
            Dim dt As DataTable
            With db
                .ClearCommandParameters()
                .AddComandParameters("@rid", ridd.Text.Trim(), SqlDbType.Int, 4)
                dt = .GetDataTable("usp_quanlir_tupian", CommandType.StoredProcedure)
            End With
            dt.Columns.Add("mapth")
            Dim pd As PagedDataSource = New PagedDataSource        For sum As Integer = 0 To dt.Rows.Count - 1
                dt.Rows(sum)("v_s") = dt.Rows(sum)("v_s").ToString().TrimEnd("/")
                Dim str As String = dt.Rows(sum)("v_s").ToString() + "/" + dt.Rows(sum)("qikan").ToString() + "/" + dt.Rows(sum)("qihao").ToString() + "/" + dt.Rows(sum)("id").ToString() + ".t.jpg"
                dt.Rows(sum)("mapth") = str
            Next
            '----------------------------------------------------------------------------------------------        pd.DataSource = dt.DefaultView        pd.AllowPaging = True        pd.PageSize = 12
            Dim CurPage As Integer
            If Request.QueryString("Page") = Nothing Then
                CurPage = 1
            Else
                CurPage = Convert.ToInt32(Request.QueryString("Page"))
            End If
            pd.CurrentPageIndex = CurPage - 1        If Not pd.IsFirstPage Then
                'shang.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage - 1) + "&rid=" + ridd.Text.Trim()
                shangy = "<a href='" + Request.CurrentExecutionFilePath + "?hgt=1&Page=" + Convert.ToString(CurPage - 1) + "&rid=" + ridd.Text.Trim() + "&person=" & Server.UrlEncode(Request.QueryString("person")) & "'>上一页</a>"
                sPS = "<a href='" + Request.CurrentExecutionFilePath + "?hgt=1&Page=1&rid=" + ridd.Text.Trim() + "&person=" & Server.UrlEncode(Request.QueryString("person")) & "'>首页</a>"
            End If
            If Not pd.IsLastPage Then
                'xia.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1) + "&rid=" + ridd.Text.Trim()
                xiay = "<a href='" + Request.CurrentExecutionFilePath + "?hgt=1&Page=" + Convert.ToString(CurPage + 1) + "&rid=" + ridd.Text.Trim() + "&person=" & Server.UrlEncode(Request.QueryString("person")) & "'>下一页</a>"
                sPE = "<a href='" + Request.CurrentExecutionFilePath + "?hgt=1&Page=" + Convert.ToString(pd.PageCount) + "&rid=" + ridd.Text.Trim() + "&person=" & Server.UrlEncode(Request.QueryString("person")) & "'>末页</a>"
            End If
            sPage = ""
            nStart = Math.Max(1, CurPage - nStep)
            nEnd = Math.Min(CurPage + nStep, pd.PageCount)
            For i = nStart To nEnd
                If i = CurPage Then
                    sPage &= "&nbsp;" & i & "&nbsp;"
                Else
                    sPage &= "&nbsp;<a href='" & Request.CurrentExecutionFilePath & "?hgt=1&page=" & i.ToString & "&rid=" & ridd.Text.Trim & "&person=" & Server.UrlEncode(Request.QueryString("person")) & "'>[" & i & "]</a>&nbsp;"
                End If
            Next
            '-----------------------------------------------------------------------------------
            dq = "当前是第" + CStr(CInt(pd.CurrentPageIndex) + 1) + "页"
            pcount = "共" + CStr(pd.PageCount) + "页"
            result = "相关图片" + CStr(pd.DataSourceCount) + "个"
            zplist.DataSource = pd
            zplist.DataBind()
      

  5.   

    dinoLgrace(淡泊以明志,宁静而致远) ( ) 信誉:100    Blog  2007-03-09 09:36:09  得分: 0  
     
     
       就你发的这些代码不能说明你的目的啊,不是点击button才显示吗?是不是没初始化?或者要触法你的button事件才行?botton方法呢?
      
     -----------------------------------------
    button是在dataList的ItemTemplate中的。button方法该怎么写啊;
      

  6.   

    问题解决了
    页面绑定代码的问题
    <asp:LinkButton id="LinkButton1" runat="server" CommandName="Select">
    <%# (DataBinder.Eval(Container.DataItem, "addtypename")) %>
    </asp:LinkButton>
    应改为
    <asp:LinkButton id="LinkButton1" runat="server" CommandName="Select" Text='<%# (DataBinder.Eval(Container.DataItem, "addtypename")) %>'>
      

  7.   

    <asp:LinkButton id="LinkButton1" runat="server" CommandName="Select">
    <%# (DataBinder.Eval(Container.DataItem, "addtypename")) %>
    </asp:LinkButton>
    这样不报错?
      

  8.   

    Label       tb       =       (Label)e.Item.FindControl( "Label2 ");   
    改成
    Label       tb       =       (Label)e.Item[0].FindControl( "Label2 ");