2011-12-21 70 views
1

我正在嘗試使用單擊處理程序。我的作用是(它們都在同一個班):Ext.NET單擊處理程序字符串

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

,我試圖用叫它:

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();" 

} 

首先失敗無法找到命名空間,第二次失敗,因爲「對象沒有按不支持這個屬性或方法。「

我用什麼字符串來渲染它?如果不是通過Listeners.Click.Handler的方式,我該怎麼辦呢?

該函數位於自定義控件中,該自定義控件擴展了Ext.Net.Window,並且使用的項目位於呈現該控件的名爲Display()的函數中。

每vladsch的迴應,我已經把它改爲:

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

現在處理字符串是: 「'MyMethods未定義」

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

這樣做的時候,我得到

+0

切換'Handler'到'Fn'是否有幫助? – dougajmcdonald 2012-01-10 10:15:30

回答

0

Ext.NET forum post by Daniil

使用X.GetCmp我能檢索數據。這可能不是最好的方式(可能是沒有回傳的方式),但它至少可以獲得我需要的結果。

3

DirectMethod必須是公共 您也可以定義自己的命名空間(而不是Ext.net.DirectMethods) [DirectMethod(命名空間= 「MyDirectMethods」)