日期:2014-05-18  浏览次数:20391 次

不知道什么原因,在Datalist下面的LinkButton控件到后台就不能识别了?
<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控件到后台就不能识别了.....
有解决方法吗?

------解决方案--------------------
因为你这个linkbutton控件是在datalist里面的,必须要通过datalist事件来获取

C# code

protected   void   DataList1_ItemDataBound(object   sender,   DataListItemEventArgs   e) 
        { 
                LinkButton   link   =   (LinkButton)e.Item.FindControl( "link1 "); 
                //这里就获取到了link
        }

------解决方案--------------------
也可以这样

protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e) 

LinkButton link = e.Item.FindControl( "link1 ") as LinkButton; 


------解决方案--------------------
探讨

也可以这样

protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
LinkButton link = e.Item.FindControl( "link1 ") as LinkButton;
……

------解决方案--------------------
加个判断可能好点

protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
if(e.Item.ItemType==ListItemType.Item)
{
LinkButton link = e.Item.FindControl( "link1 ") as LinkButton; 
}
}
 
}

------解决方案--------------------
<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);//输出传入的参数
}
}
------解决方案--------------------
HTML code
 <asp:LinkButton ID="LinkButton1" runat="server" CommandArgument='<%#Eval("ID") %>' onclick="LinkButton1_Click">LinkButton</asp:LinkButton>