代码如下:
            <asp:DataList ID="dlAllComment" runat="server" DataSourceID="odsComments">
                <ItemTemplate>
                    <p class="lesscontent">
                        <%# Eval("contents") %>
                    </p>
                    <p class="lessdate" runat="server">
                        <%# Eval("PubDate", "{0:R}")%><span >昵称:<%# Eval("AuthorName")%></span>
                        <br /> 
                        <asp:HyperLink ID="hlDelComment" runat="server" 
       NavigateUrl='delCommentsReturnArcitle.aspx?aid=<%# Eval("article.Id")%>&commentId=<%# Eval("Id") %>'>删除</asp:HyperLink>

                    </p>        
                </ItemTemplate>
            </asp:DataList>
帮我看下红色的那段代码有没有问题,然后为什么在类里找不到hlDelComment这个控件呢?是放在<ItemTemplate>里的原因吗?大家帮我解决下,我没招了,谢谢了!

解决方案 »

  1.   

    没人知道吗?
    就是从datalist中取出控件来,然后改变它的Visible
    <asp:HyperLink ID="hlDelComment" runat="server" 
    NavigateUrl='delCommentsReturnArcitle.aspx?aid= <%# Eval("article.Id")%>&commentId= <%# Eval("Id") %>'>删除 </asp:HyperLink>
    这个能不能这么用啊?
    高手帮帮忙唉..... 
      

  2.   

    你可以这么写//先找出这个控件
    HyperLink hl=(this.dlAllComment.FindControl("hlDelComment")) as HyperLink; 
      this.hl.Visible=false;
      
      

  3.   

    HyperLink hplink = (HyperLink)DataList1.FindControl("hlDelComment");
      

  4.   

    HyperLink hl=(this.dlAllComment.ItemTemplate.FindControl("hlDelComment")) as HyperLink; 这样试试
      

  5.   

    HyperLink hl=(this.dlAllComment.ItemTemplate.FindControl("hlDelComment")) as HyperLink; 
    ItemTemplate没FindControl方法
      

  6.   

     <asp:HyperLink ID="hlDelComment" runat="server" 
          NavigateUrl='delCommentsReturnArcitle.aspx?aid= <%# Eval("article.Id")%>&commentId= <%# Eval("Id") %>'>删除 </asp:HyperLink> 
    不能绑aid= <%# Eval("article.Id")%>&commentId= <%# Eval("Id") %>'>
    只能aid= <%# Eval("article.Id")%>或commentId= <%# Eval("Id") %>'>中的一个
    我遇到的我做过的
      

  7.   


    for (int i = 0; i < this.DataList1.Items.Count; i++)
                {
                    
                    string ss = "";
                    CheckBox cb1 = (this.DataList1.Items[i].FindControl("CheckBox1")) as CheckBox;
    }
     这是我写的代码  你这样肯定可以实现你要做的功能 因为我的实现了
      

  8.   

    我把我自己写的搜索控件中的控件 C#贴给你,,比控件自己的强悍点  #region find child control
        public static Control FindControlRecursive(Control rootControl, string controlName)
    {
      foreach (Control control in rootControl.Controls)
            {
                if (control.ID == controlName)
                    return control;
                Control result = FindControlRecursive(control, controlName);            if (result != null)
                    return result;
            }
            return null;
        }
        #endregion应用的时候你就直接 这样
    HyperLink  hl = (HyperLink)FindControlRecursive(dlAllComment, "hlDelComment");然后HL 就是你的HYPERLINK控件了,,,本人 写的明了简单, 如有用请给分,,,还有这个我自己用的,万能找控件中的控件METHOD,,,所以你的如果不行就是你自己代码问题了...