您的位置:首页 > 其它

ext.net DirectEvents事件

2015-08-20 10:24 309 查看
以下是说的有CS页的代码

大家都知道EXT.NET的控件有一个DirectEvents事件。下面我们就来说一下这个事件的具体用法。

最简单的用法就是在你的控件加上这样的代码 OnDirectClick="btnOK_DirectClick"。实际上是简化了DirectEvents事件的,完整的写法如下:

<DirectEvents>

<Click OnEvent="btnOK_DirectClick"></Click>

</DirectEvents>

有时候为了简便就可以像之前那样写。但是如果需要复杂的处理,比如回调函数,传入参数,弹出遮盖层等等就需要完整的写出来。后台代码:protected void btnLogin_Click(object sender, DirectEventArgs e){//填充你自己的代码}

有的时候处理的时间比较久,我们就需要弹出一个遮盖层来提高用户的体验度。

<DirectEvents>

<Click OnEvent="btnOK_DirectClick"></Click>

<EventMask ShowMask="true" Msg="正在处理..."></EventMask>

</DirectEvents>

当然我们有可能还需要传入参数

<DirectEvents>

<Click OnEvent="btnOK_DirectClick"></Click>
<EventMask ShowMask="true" Msg="正在处理..."></EventMask>
<ExtraParams>

<ext:Parameter Name="name"Value="#{tfName}.getValue()" Mode="Raw"
/>

<ext:Parameter Name="pass"Value="1"
Mode="Value" />

</ExtraParams>

</DirectEvents>
上图,黄色是参数的名称(以便后台获取),紫红色的是动态获取某个控件的值;蓝色的固定的参数值。
后台获取:string
name= e.ExtraParams["name"];

当我们执行了一些的操作后,有时候还需要一些JS操作,这样我们可以加一个回调函数:

<DirectEvents>

<Click OnEvent="btnOK_DirectClick"
Success="fnSuccess"></Click>
<EventMask ShowMask="true" Msg="正在处理..."></EventMask>
<ExtraParams>

<ext:Parameter Name="name" Value="#{tfName}.getValue()" Mode="Raw" />

<ext:Parameter Name="pass" Value="1" Mode="Value" />

</ExtraParams>

</DirectEvents>
JS函数:

function fnSuccess(response, result) {

//填充你自己的代码

}

有的TX又回问,btnOK_DirectClick fnSuccess 这2个事件如何交互信息呢?别着急,看如下代码:
btnOK_DirectClick---------------e.Success = true;e.ExtraParamsResponse.Add(new
Ext.Net.Parameter("data", "abc"));data为返回的参数名称,abc为返回参数的值。

fnSuccess----------------------result.extraParamsResponse.data;这样既可获取。

好了,经过以上我们大致知道 DirectEvents事件怎么回事,该怎么用了。多给大家分享一个,

<DirectEvents>

<Click OnEvent="btnOK_DirectClick" Success="fnSuccess"></Click>
<EventMask ShowMask="true" Msg="正在处理..."></EventMask>
<Confirmation ConfirmRequest="true" Title="提示" Message="确定要提交服务器吗?">

</Confirmation>
<ExtraParams>

<ext:Parameter Name="name" Value="#{tfName}.getValue()" Mode="Raw" />

<ext:Parameter Name="pass" Value="1" Mode="Value" />

</ExtraParams>

</DirectEvents>
这个就类似于弹出的对话框,是否确认。只需要这么简单的一句话,但是给用户的体验可是非常不错的哟。

好了,以上是有CS的代码,有的没有CS的肿么办呢?也不要着急哦,
<DirectEvents>

<Change OnEvent="UpLoadFiles" IsUpload="true" Before=" Ext.net.Mask.show({ msg: '处理中...' });"

Success="uploadSuccess(result)" Failure="uploadFailure(result)" />

</DirectEvents>

看到了吗?这就是纯JS的方法,里面具体方法比如参数的使用等等 和上面大同小异啦,这里就多做介绍了。
有的时候如果需要处理的时间等待很长的时候,只需要加一个Timeout="300000" 即可。刚刚我们也看到弹出遮盖层,是在处理之前,如果处理之前有其他事情要做的话还可以这样写哟<EventMask ShowMask="true" Msg="处理中..." />
但是这个大家要记得自己写代码隐藏掉哦。

补充方法请参考:http://www.qeefee.com/article/extnet-learn-06-directevents-patch
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: