2016-06-20 3 views
-1

C#クラスでは、void型のメソッドMethod1を使用しています。int aとint bの2つのパラメータをとります。方法2では は、しかし私は、動的に私は方法1と関連付けたいいくつかのリンクボタンを作成します。ボタンをクリックすると、C#で動的パラメータを持つメソッドにアタッチされる

のx [i]が、私はボタンをリンクインデックスで、エラーレンダリング
x[i].OnClickClient += new EventHandler(Method1(1,2)); 

:「期待メソッドの名前を」。 これに適した構文は何ですか?これに対してOnClickClientは機能しますか? 私のようなメソッドを持つことを伴う例を見てきました:

protected void Button1_Click(object sender, EventArgs e) 
{ 

} 

を私は、私は100個のボタンを持っている可能性があるため、各ボタンに別々のメソッドを作成する必要はありませんので、クリックすると、方法1を使用して動的に関連付けられている必要がありますグループ内のどのボタンでも、パラメータだけが異なります(動的に増分されます)。おかげさまで

+0

使用のサーバーをクリックし、サーバーのメソッドを呼び出すために、クライアントを使用することはできません。 _per se_ – Kramb

+0

Kramb、提案/オートコンプリートリストにOnServerClickはありません。 – Halle

答えて

0

正しい構文は次のようになります。あなたはまた、ラムダ式を使用でき

x[i].OnClickClient += new EventHandler(Button_Click); 

protected void Button_Click(object sender, EventArgs e) 
{ 
    Button button = (Button)sender; // Which button was clicked; 

    // Now you can do stuff with the button that was clicked 
} 
+0

ClickメソッドはMethod1(a、b)にどのようにリンクされていますか?構文はバカです。ありがとう! – Halle

+0

@Halle 'Button1Click()'メソッドの中から 'Method1(a、b)'を呼び出すことができます。 'a'と' b'の値はどこで得られますか?私はそれらがボタンにどのように関係しているのか分かりません。 – itsme86

+0

トリッキーな部分は、現在のボタンのインデックスです(ボタンはボタンの配列内にありますので、iをx [i]からButtonClickに渡す必要があります。これは、iに基づいてMethod1を呼び出します)。 – Halle

0

x[i].OnClickClient += (sender, e) => Method(1,2); 
+1

Unf、私は得る:ラムダ式がデリゲート型ではないので文字列型に変換できない。 operator + =は、string型とlambda式のオペランドには適用できません。送信者とeを宣言する必要がありますか?ありがとう! – Halle

関連する問題