0
<asp:LinkButton class="uibutton normal submit" ID="LinkButtonMAR" 
OnClick="MarkClientNoteRead(<%# Eval("NoteID") %>)" runat="server">
Mark as Read</asp:LinkButton>

这一切都在一个转发器中,它将返回一个笔记列表。我想获取 NoteID 并将其放入OnClick="MarkClientNoteRead()"方法调用中。

这可能吗?

4

2 回答 2

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事件。

于 2012-05-11T20:07:43.477 回答
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。另外,我需要来自同一行的其他数据。

于 2012-05-11T20:19:22.813 回答