Answer_Content
是linkbutton
。上面的代码是错误的它
Answer_content
不是一个标签它是一个LinkButton
你可以用一个不可见Label
的来存储ID,那就很简单了。处理LinkButton
的 ckick 事件并使用它的NamingContainer
和FindControl
。
aspx:
<asp:DataList ID="datalistcevaplar" runat="server" Width="740px" OnItemCommand="datalistcevaplar_ItemCommand" >
<ItemTemplate>
<div class="divcvpicerik">
<asp:Label ID="LblID" Visible="false" runat="server" Text='<%# Eval("Answer_Id") %>'>
</asp:Label>
<asp:LinkButton id="LnkAnswer"
Text='<%# Eval("Answer_Content") %>'
OnCick="LnkClicked"
runat="server" />
</div>
</ItemTemplate>
</asp:DataList>
代码隐藏:
protected void LnkClicked(Object sender, EventArgs e)
{
LinkButton btn = (LinkButton) sender;
DataListItem item = (DataListItem) btn.NamingContainer;
Label lblId = (Label) item.FindControl("LblID");
string ID = lblId.Text;
}
编辑或使用Garrison NeelyCommandArgument
中LinkButton
提到的 。
<asp:LinkButton id="LnkAnswer"
Text='<%# Eval("Answer_Content") %>'
CommandArgument='<%# Eval("Answer_Id") %>'
OnCick="LnkClicked"
runat="server" />
然后你可以通过这种方式得到它:
protected void LnkClicked(Object sender, EventArgs e)
{
LinkButton btn = (LinkButton) sender;
string ID = btn.CommandArgument;
}