ASPxComboBox控件联动效果bug改进

原文:ASPxComboBox控件联动效果bug改进

  在应用第三方控件DevExpress控件的时候,大家应该对ASPxComboBox控件应该不是很陌生吧,尤其在做多级联动效果的时候,有着它独特的地方,通过前台控制可以实现异步刷新。但是在实际做项目中,我发现它存在一定的问题。

      比如,我们做四级联动效果,四级分别为案件类型、案件性质、性质分类、性质细类,选择案件类型时,触发案件性质数据加载;选择案件性质时,性质分类数据加载,依次类推……;当我们将四级数据都加载到控件中的时候,如果我们重新选择案件类型(第一级)时,此时你会发现,二级内容重新加载了,但是三级四级内容没有清空,也没有变化,应该说这是不符合条件的,针对这个问题,我设计了下面解决方案

      源代码:

   

<table border="1" cellpadding="0" cellspacing="0" style="width:100%">
   <tr>
      <td>
          <dx:ASPxComboBox runat="server" ID="CbxAJLX" ClientInstanceName="cbxAJLX" DropDownStyle="DropDownList" TextField="AJLX" ValueField="AJLX" Width="80px" OnCallback="CbxAJLX_Callback">
              <ClientSideEvents SelectedIndexChanged="function(s, e) { OnAJLXChanged(s); }" />
          </dx:ASPxComboBox>
      </td>
      <td>
          <dx:ASPxComboBox runat="server" ID="CbxAJXZ" ClientInstanceName="cbxAJXZ" DropDownStyle="DropDownList" TextField="AJXZ" ValueField="AJXZ" Width="80px" OnCallback="CbxAJXZ_Callback">
              <ClientSideEvents SelectedIndexChanged="function(s, e) { OnAJXZChanged(s); }" />
          </dx:ASPxComboBox>
      </td>
      <td>
          <dx:ASPxComboBox runat="server" ID="CbxXZFL" ClientInstanceName="cbxXZFL" DropDownStyle="DropDownList" TextField="XZFL" ValueField="XZFL" Width="80px" OnCallback="CbxXZFL_Callback">
              <ClientSideEvents SelectedIndexChanged="function(s, e) { OnXZFLChanged(s); }" />
          </dx:ASPxComboBox>
      </td>
      <td>
          <dx:ASPxComboBox runat="server" ID="CbxXZXL" ClientInstanceName="cbxXZXL" DropDownStyle="DropDownList" TextField="XZXL" ValueField="XZXL" Width="80px" OnCallback="CbxXZXL_Callback">
          </dx:ASPxComboBox>
      </td>
    </tr>
</table>

  我先解释一下该代码吧,OnCallback事件时用于自身更新数据的,主要时通过上一级事件SelectedIndexChanged触发,其主要内容为cbxAJXZ.PerformCallback(cbxAJLX.GetValue().toString())。

  针对不能清空问题,在下级数据更新之前,我设计了一个方法,用于清空下级后面的所有联动控件中的数据,代码如下

function OnAJLXChanged(cbxAJLX) {
     myAjlx("clear");
     cbxAJXZ.PerformCallback(cbxAJLX.GetValue().toString());
}
function myAjlx(cmd) {
      if (cmd == "clear") {
            cbxAJXZ.SetValue(null);
            cbxXZFL.SetValue(null);
            cbxXZXL.SetValue(null);
      }
}

  通过调用上面这段代码可以实现多级数据联动不足的地方,下面是整个脚本

function OnAJLXChanged(cbxAJLX) {
            myAjlx("clear");
            cbxAJXZ.PerformCallback(cbxAJLX.GetValue().toString());
        }
        function OnAJXZChanged(cbxAJXZ) {
            myAjxz("clear");
            cbxXZFL.PerformCallback(cbxAJXZ.GetValue().toString());
        }
        function OnXZFLChanged(cbxXZFL) {
            myXzfl("clear");
            cbxXZXL.PerformCallback(cbxXZFL.GetValue().toString());
        }
        function myYwlx(cmd) {
            if (cmd == "clear") {
                cbxAJLX.SetValue(null);
                cbxAJXZ.SetValue(null);
                cbxXZFL.SetValue(null);
                cbxXZXL.SetValue(null);
            }
        }
        function myAjlx(cmd) {
            if (cmd == "clear") {
                cbxAJXZ.SetValue(null);
                cbxXZFL.SetValue(null);
                cbxXZXL.SetValue(null);
            }
        }
        function myAjxz(cmd) {
            if (cmd == "clear") {
                cbxXZFL.SetValue(null);
                cbxXZXL.SetValue(null);
            }
        }
        function myXzfl(cmd) {
            if (cmd == "clear") {
                cbxXZXL.SetValue(null);
            }
        }

  注意:最后一级不用调用脚本进行清空

  本文主要解决了,多级联动过程中,联动数据不能及时清空的问题;本文只代表本人个人观点,希望广大博友提出好的建议和意见,谢谢~

时间: 2024-08-30 23:36:29

ASPxComboBox控件联动效果bug改进的相关文章

WdatePicker日历控件联动效果

1 <td> 2 开始日期: 3 </td> 4 <td> 5 <input id="ksrq" type="text" class="Wdate" onclick="WdatePicker({dateFmt:'yyyy-MM-dd',maxDate:'#F{$dp.$D(\'jsrq\') || \'%y-%M-%d\'}',readOnly:true,isShowClear:false})&

bcg tab控件-基于BCG对话框工程,想在主对话框添加类似MFC的Tab控件的效果

问题描述 基于BCG对话框工程,想在主对话框添加类似MFC的Tab控件的效果 基于BCG对话框工程,想在主对话框添加类似MFC的Tab控件的效果,但是不知道BCG中哪个类能实现类似功能,最好给出具体实现...还有网上关于BCG的资料太少,很多东西都查不到,有谁有好的资源可以共享哈 解决方案 你下载的是试用版还是带源代码的完整版本,后者带有例子源代码,这就是最好的资料.

消息-duilib怎么去除lable控件双击出现bug

问题描述 duilib怎么去除lable控件双击出现bug 求大神们帮忙:当我双击lable控件时,出现了一个bug,该怎么解决啊,要关闭它的双击消息吗?

Windows Phone 的控件倾斜效果

原文:Windows Phone 的控件倾斜效果 Windows Phone 7的系统设置里,按钮都有一个点击倾斜的效果,但自己添加的控件就没有.但微软提供了这个效果的代码:TiltEffect  MSDN的介绍:http://msdn.microsoft.com/zh-cn/library/ff941108(v=vs.92).aspx 先下载此处的示例:http://go.microsoft.com/fwlink/?LinkId=200720 把里面的TiltEffect.cs添加到自己的项目

JavaScript实现城市选择控件的效果_JSP编程

在淘宝旅行上看到的城市选择效果,感觉还不错,就自己的理解重新实现一遍,先看效果(有人说IE9下面有BUG,LZ用的是落后的XP,居然装不上IE9,去公司在搞搞好了),然后再细说实现原理,支持鼠标上下键选择城市,支持直接输入城市名称,拼音首字母,全拼,支持IE6遮盖SELECT,压缩后12K. 实现的步骤: 一.先用一定的格式罗列出控件所需要的城市以及拼音等,我这里是按照如下格式罗列成一个数组, 如果需要增加城市,直接增加在数组里面即可: 城市我是一个一个手打的... ['北京|beijing|b

关于VS2005中使用AJAX控件无效果的问题。

问题描述 我最近碰到一个很奇怪的问题:我用的是VS2005,然后手动安装了AJAX控件和AjaxToolKit,我公司从供应商那里购买了一套系统,我现在想在这套系统中使用Ajax控件,我从网上找了资料,在webconfig里面将Ajax有关的内容全部都添加到文件里面了,然后做了一个简单的获取当前时间的测试不成功.然后我在网站的属性中检查了对System.Web.Extensions.Design和System.Web.Extensions的引用,确定确实引用了以后,又试了一下还是失败.然后我在新

ImageView控件开发效果总结(边框效果,滤镜效果)

前言      本文总结了ImageView 开发过程中,用到效果总结 1 ImageView添加圆角边框   下面是示例效果图 实现过程说明: Step  One  设置ImageView 带一定宽度的Padding,同时设置android:adjustViewBounds 为True   <ImageView android:background="@drawable/img_on" android:id="@+id/imageViewt" android

怎么用Photoshop制作简单的金属控件图标效果

最终效果   新建一个256 * 256像素文件,分辨率为300,如下图.     1.使用圆角矩形工具,设置半径值为60像素,按住Shift键绘制带有圆角的正方形,如下图.   .为底层添加渐变样式,得到的效果如下图.     3.按Ctrl + J 复制底层得到副本,按Ctrl + T 对底部副本进行调整大小,并更改渐变方向,效果如下图.     4.继续按Ctrl + J 复制底层副本,得到副本2.并按Ctrl + T 进行变换处理,并为其更改渐变样式,如下图. 5.继续使用圆角矩形工具绘

Android控件Gallery3D效果实例代码

贴上代码: 1.扩展Gallery: 复制代码 代码如下: public class GalleryFlow extends Gallery { private Camera mCamera = new Camera();//相机类 private int mMaxRotationAngle = 60;//最大转动角度 private int mMaxZoom = -300;////最大缩放值 private int mCoveflowCenter;//半径值 public GalleryFlo