在最近的项目中,首次使用到了 网页的一个布局框架——EasyUI,感觉这个框架特别牛,兼容性很不错,页面效果也挺不错,可是在使用标题上三个控件过程中遇到几个很奇特的问题,让我头疼不已,所以在此给广大IT 爱好者分享一下,希望能帮助到你们。
问题一:numberbox 数字验证框使用时,在两个单选按钮互相选择时执行一个 输入框(也就是这个numberbox)对象 禁用和启用得操作,当选择单选按钮1时,启用这个输入框的验证并且启用该输入框,当选择单选按钮2时,不启用这个输入框的验证,并且禁用该输入框, 图中 红色框(上) 很明显是对id为value_2 这个输入框执行选择单选按钮2时的操作,为什么要分开两次写呢?这就是问题的关键,如果我集中在一起写,那么该控件可以被禁用,但是那个验证的效果依然还在,(也就是说该控件呈现红色警告状态),试了一下把required:false 写在disabled之前,问题依然还在,由此得出一个结论就是,EasyUI在处理禁用和启用时,逻辑有些特殊,解决办法就是图中所示,分开处理
问题二:validatebox 表单验证的禁用,在页面逻辑处理时,难免会遇到 对输入框的禁用和启用得操作,而大多数也不会只使用numberbox 但是validatebox 又没有禁用这个属性,怎么办呢?目前我只找到一个办法就是用Jquery原始的办法使用$("#id").attr("disabled","disabled");来处理,若同志们有其他办法,希望大家给我留言,互相学习。
问题三:combobox 自定义组合框,数据绑定时的问题,前台页面若我们要设置:
<select class="easyui-combobox" id="fuzhi" data-options="required:true,editable:false,panelHeight:'auto'," >
时,在绑定数据的时候一定要小心一个问题,先解释一下图中各部分的意思:params是参数化的传递的部分,类似于url?Key1=value1&Key2=value2...,顺便说一下,该方式传递有两点好处,好处一:参数结构清晰明了、好处二:该方式在IE下传递到后台处理程序(ashx)时 不会出现乱码的现象,getdata方法 是封装好的一个ajax请求;看EasyUi例子中会提到下拉框绑定数据时是使用该图 if语句以下部分的方式,但是为何我要使用这种方式呢?这就是问题的关键,如果直接使用例子中的方式,前台用了class="easyui-combobox",后台又使用例子中的方法,会造成两次请求,解决办法就是 方法一:把前台的class删掉,心细的读者会发现 图片中为何在绑定时使用的是data:dataCL而不是url:.......呢?这就是方法二。原理可以想清楚,即:该控件不在请求后台服务器,而是直接绑定的来自postdata请求而返回的结果,这样,无论页面上是否指定class,后台都不会出现多次请求的情况,强烈推荐方法二:因为方法二在数据请求返回后,为下拉框绑定默认值提供了方便:也就是图中 value:dataCL[0].系统名称 那部分。
至此,谢谢大家这么耐心的唠叨,第一次写博客,也许语言描述的不是很清楚,望大家海涵。