2011-12-21 67 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”)