我在下面的类中有一个方法:
public class ActionHelper
{
[DirectMethod]
public string DeleteComment()
{
...
return "Delete";
}
}
我想从这样的网格命令中调用它:
<Command Handler="Ext.net.DirectMethod.request({url: '/Classes/ActionHelper/DeleteComment', cleanRequest: true}});" />
但它不起作用!我怎样才能做到这一点???我使用ext.net 2.2和.netframework 4.5
答案 0 :(得分:1)
看看这个例子 http://examples.ext.net/#/Events/DirectMethods/ID_Mode/
它可能会有所帮助
答案 1 :(得分:1)
在您的代码中放置一个[DirectMethod]
,然后调用该类并使用它
而是App.direct.<Method>();
答案 2 :(得分:1)
您不能在Page,User Control或任何自定义控件中定义方法,或者在Page类中定义静态方法。
这是一个定义来自Ext.net论坛中post的直接方法的引用:
DirectMethod(无静态,必须公开):服务器端处理程序是 当你调用特殊的javascript方法(基本上是代理 方法由Ext.Net toolkit生成。没有静态直接方法可以 在页面,用户控件或任何自定义控件中定义。请 注意,如果在用户控件(母版页)中定义了直接方法 占位符也是用户控件)或自定义控件然后ClientID 该控件的名称将被添加到代理方法1中 Ext.net.DirectMethods.ClientIDOfTheControl.DirectMethodName();您可以 使用类的DirectMethodProxyID属性来定义自己的别名或 完全删除ClientID前缀实际上,没有静态直接方法 直接事件。单一差异,即直接方法没有关系 任何小部件(及其事件),可以由开发人员提出 javascript(以javascript方式)
静态DirectMethod(必须是公共的):类似的ASP.NET PageMethods,只能在Page类中定义。用静态页面方法 页面生命cyle未执行,因此访问ASP.NET控件 不可能,但响应时间要好得多(取决于你的方法 仅逻辑)