<asp:DataList ID="dlFree" runat="server" RepeatColumns="1 " 
    onselectedindexchanged="dlFree_SelectedIndexChanged">
    <ItemTemplate>
        <table border="1px">
            <tr>
                <td>
                    <a href="javascript:window.location.href='showimage.aspx?id='+<%#DataBinder.Eval(Container.DataItem, "Mid ")%>">
                        <img style="border: 6px solid #ffffff; width: 200px; height: 200px;" alt="<%#DataBinder.Eval(Container.DataItem, "Title1 ")%>"
                            src='<%# DataBinder.Eval(Container.DataItem,"Photopath") %>' /></a>
                </td>
                <td>
                    <table style="width: 250px; font-size:12px;">
                       <tr>
                        <td>
                        <asp:LinkButton ID="LinkButton1" runat="server" >收录</asp:LinkButton>
                        </td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>
    </ItemTemplate>
</asp:DataList>不知道什么原因,在Datalist下面的LinkButton控件到后台就不能识别了.....
有解决方法吗?

解决方案 »

  1.   

    因为你这个linkbutton控件是在datalist里面的,必须要通过datalist事件来获取
    protected   void   DataList1_ItemDataBound(object   sender,   DataListItemEventArgs   e) 
            { 
                    LinkButton   link   =   (LinkButton)e.Item.FindControl( "link1 "); 
                    //这里就获取到了link
            } 
      

  2.   

    也可以这样protected   void   DataList1_ItemDataBound(object   sender,   DataListItemEventArgs   e) 
            { 
                    LinkButton   link   =   e.Item.FindControl( "link1 ") as LinkButton; 
            } 
      

  3.   

    加个判断可能好点    protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
            {
                if(e.Item.ItemType==ListItemType.Item)
                {
                     LinkButton link = e.Item.FindControl( "link1 ") as LinkButton; 
                }
            }
       
      }  
      

  4.   

    <asp:LinkButton ID="LinkButton1" CommandName="sl" CommandArgument='传入阐述' runat="server" >收录</asp:LinkButton>protected void DataList1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
         if (e.CommandName == "sl")
         {
             //执行点击事件
             Response.Write(e.CommandArgument);//输出传入的参数
         }
    }
      

  5.   

    那LinkButton1的onclick事件应该怎样写??
      

  6.   

     <asp:LinkButton ID="LinkButton1" runat="server" CommandArgument='<%#Eval("ID") %>' onclick="LinkButton1_Click">LinkButton</asp:LinkButton>
        protected void LinkButton1_Click(object sender, EventArgs e)
        {
            LinkButton lb = sender as LinkButton;
            Response.Write(lb.CommandArgument);
        }