我尝试在后面的代码中创建一个确认框。正确调用确认功能时,当我单击对话框中的“是”按钮时,我收到错误:
未捕获的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
}
答案 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();