C#EXT App.direct.fname不是一个函数

时间:2017-06-26 15:12:45

标签: c# ext.net

我尝试在后面的代码中创建一个确认框。正确调用确认功能时,当我单击对话框中的“是”按钮时,我收到错误:

  

未捕获的TypeError:App.direct.DoYes不是函数

public void Confirmation(object sender, DirectEventArgs e)
    {
        X.Msg.Confirm("Confirm", "Do you want to create test for this selection:", new MessageBoxButtonsConfig
        {
            Yes = new MessageBoxButtonConfig
            {
                Handler = "App.direct.DoYes()",
                Text = "Yes"
            },
            No = new MessageBoxButtonConfig
            {
                Handler = "wndRnd.Close()",
                Text = "No"
            }
        }).Show();
    }

[DirectMethod]
    public void DoYes()
    {
          //do something
    }

1 个答案:

答案 0 :(得分:0)

您是否在UserControl中?如果是这样,Ext.NET正在使用App.direct的命名约定。[UserControl] .DoYes()以避免与main或另一个UserControl中可能的DoYes()事件发生冲突。我总是在UserControl类名上使用DirectMethodProxy属性。这定义了App.direct中的[UserControl]名称。[UserControl] .DoYes()将是。

using Ext.Net;

[DirectMethodProxyID(IDMode = DirectMethodProxyIDMode.Alias, Alias = "UC")]
public partial class SampleUserCtlClass : System.Web.UI.UserControl
{
    [DirectMethod]
    public void DoYes()
    {
        X.Msg.Alert("Message", "Hello from UserControl").Show();
    }
}

所以合并你的问题和这个例子,如果在这个UserControl中创建了直接事件,可以使用以下方法调用它:

App.direct.UC.DoYes();