ext.net DirectEvents事件

以下是说的有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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值