<asp:LinkButton class="uibutton normal submit" ID="LinkButtonMAR"
OnClick="MarkClientNoteRead(<%# Eval("NoteID") %>)" runat="server">
Mark as Read</asp:LinkButton>
这都在转发器中,它将返回一个音符列表。我想抓住NoteID并将其抛入OnClick="MarkClientNoteRead()"
方法调用。
这可能吗?
答案 0 :(得分:2)
您可以使用CommandArgument
:
<asp:LinkButton class="uibutton normal submit"
ID="LinkButtonMAR"
CommandName="MarkRead"
CommandArgument='<%# Eval("NoteID") %>'
Text="Mark as Read"
OnCommand="MarkClientNoteRead" runat="server" />
protected void MarkClientNoteRead(Object sender, CommandEventArgs e)
{
int NoteID = int.Parse(e.CommandArgument.ToString());
}
请注意,您需要处理Command
事件而不是Click
事件。
答案 1 :(得分:0)
另一种更复杂的方式是:
<asp:LinkButton class="uibutton normal submit" ID="LinkButtonMAR"
OnClick="LinkButtonMAR_Click" runat="server">Mark as Read
</asp:LinkButton>
<asp:HiddenField ID="NoteID" runat="server" Value='<%# Eval("NoteID")%>' />
代码背后:
protected void LinkButtonMAR_Click(object sender, EventArgs e)
{
LinkButton thisLinkBUtton = (LinkButton)sender;
// substitute appropriate object for the GridViewRow below
GridViewRow thisGridViewRow = (GridViewRow)thisLinkBUtton.Parent.Parent;
HiddenField hdnNoteID = (HiddenField)thisGridViewRow.FindControl("NoteID");
// run your update code...
}
我用过这个,但是我不得不使用Parent.Parent。另外,我需要来自同一行的其他数据。