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 に答える