2011-12-21 4 views
1

クリックハンドラーを使用しようとしています。Ext.NETクリックハンドラー文字列

[DirectMethod] 
protected bool Save() 
{ 
     //do work 
} 

と私はそれを呼び出そうとしました:My機能は、(これらは同じクラスの両方である)ほどである

using (Ext.Net.Button yes = new Ext.Net.Button()) 
{ 
    // random set up for button 

    // failed because it couldn't find namespace 
    yes.Listeners.Click.Handler = "Namespace.Class.Save();"; 

    // attempt 2: removed the first one and assumed that the [DirectMethod] sets 
    // it to be Ext.net.DirectMethods.Save(); 
    yes.Listeners.Click.Handler = "Ext.net.DirectMethods.Save();" 

} 

まず第二の目的doesnの」ために失敗し、名前空間を見つけることができませんでしたこのプロパティまたはメソッドをサポートしていません。

これを表示するために使用する文字列は何ですか? Listeners.Click.Handler方法でなければ、どうすればそれを行うことができますか?

この関数は、Ext.Net.Windowに拡張されたカスタムコントロールにあり、使用アイテムは、コントロールをレンダリングするDisplay()という関数内にあります。

vladschの応答ごとに、私はそれを変更しました:

[DirectMethod(Namespace="MyMethods")] 
public bool Save() 
{ 
     //do work 
} 

とハンドラの文字列は以下のようになります。

yes.Listeners.Click.Handler = "MyMethods.Save();" 

そうするとき、私は " 'MyMethods' は定義されていません。" を取得します

+0

'Handler'から 'Fn'に切り替えるのはまったく役に立ちますか? – dougajmcdonald

答えて

0

Ext.NET forum post by Daniil

[(名前空間= "MyDirectMethods")DirectMethod] を独自の名前空間(代わりにExt.net.DirectMethods)を定義することができ、公開でなければなりませんデータを取り出す。おそらく最善の方法ではないかもしれませんが(おそらくポストバックのない方法かもしれませんが)、少なくとも必要な結果を網羅しました。

3

DirectMethodは また、あなたは私ができたX.GetCmpを使用して