私はRepeater
を持っていて、私のRepeater
の各項目にはCommandEventを発するボタンがあります。ボタンをクリックすると、オブジェクトとしてパラメータを渡す必要があります。リピータからパラメータを渡す
この問題を解決するお手伝いをしてもらえますか?
私はRepeater
を持っていて、私のRepeater
の各項目にはCommandEventを発するボタンがあります。ボタンをクリックすると、オブジェクトとしてパラメータを渡す必要があります。リピータからパラメータを渡す
この問題を解決するお手伝いをしてもらえますか?
どのようなオブジェクトですか?ボタンにはCommandArgumentプロパティがあります。文字列の値を保存することができます。
リピータのItemCommandを処理し、オブジェクトをCommandArgumentとして渡します。
Hereは例です。
<asp:LinkButton ID="btnDeleteComment" runat="server" Text="Delete" CommandName="DeleteComment" CommandArgument=<%#Eval("CommentID") %>></asp:LinkButton>
分離コード
protected void rptComments_ItemCommand(object source, RepeaterCommandEventArgs e) {
if(e.CommandName.ToLower().Equals("deletecomment")) {
clsComment comment = new clsComment("mediadb");
comment.CommentID = int.Parse(((LinkButton)e.CommandSource).CommandArgument);
comment.DeleteRecord();
rptComments.DataBind();
}
}
CommandArgument
クラスのキーパラメータ(IDなど)を使用する必要があります。インスタンスが必要な場合は、ItemCommand
イベントハンドラでインスタンスを作成します。
'RepeaterCommandEventArgs.CommandArgument'が' Object'であっても、 'Button.CommandArgument'プロパティは' System.String'です。したがって、(System.Stringに)渡すデータを変換して、暗黙の変換によるバグを避けるのが最も堅牢でしょう。 @tomcamaraあなたはSystem.Stringに変換することができるパラメータの種類を使用していますか? – pseudocoder
@ pseudocoder right、Button.CommandArgumentは文字列です:)私の答えは固定です。 –
したがって、私のパラメータはクラスです!多くの特性を持つ。 – mcamara
は、私のユーザークラスのオブジェクトです。 – mcamara