界面存在多个easyUI Combobox控件时,加载数据失败,或加载不正确

问题原因:当一个界面上有多个easyui ComboBox控件,且在界面加载时同时请求数据。由于数据是异步加载,会导致下拉数据源加载失败,或加载不正确(串数据)。

方案一:不用在一开始设定url(data加载路径),在点击控价下拉按钮时再加载数据源。

<td>处理类型:</td>
 <td><input id="handleType" name="handleType" panelHeight="auto" class="easyui-combobox"
        style="width: 110px;"
        data-options="editable : false,
        onShowPanel : function(){
           var s=$(this).combobox(‘getData‘);
           if(s.length==0){
              $(this).combobox(‘options‘).url=projectPath+‘TDataDictController/loadAccountErrHandleType.do‘;
              $(this).combobox(‘reload‘);
           }
        },
        valueField:‘itemVal‘,
        textField:‘colNameCn‘">
</td>

方案二:在Controller的方法中,指明形参中包含HttpServletResponse参数,并在当前环境的response中返回查询结果

@RequestMapping("loadDataDict.do")
    @ResponseBody
    public void loadAccountErrHandleType(TYwDataDictVo vo, HttpServletRequest request,HttpServletResponse response) {
        try {
            this.writeJson(tDataDictService.loadDataDict(vo,request),response);
        } catch (Exception e) {
            log.error("数据字典查询失败,{}", e);
        }
    }
/**
     * 将对象转换为json格式并输出
     * @param obj
     */
    public void writeJson(Object obj,HttpServletResponse response){
        Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
        response.setContentType("text/html; charset=utf-8");
        PrintWriter out = null;
        try{
            out = response.getWriter();
            out.println(JSON.toJSONStringWithDateFormat(obj, "yyyy-MM-dd"));
        }catch(IOException e){
            log.error("IO异常,{}",e);
        } finally{
            out.flush();
            out.close();
        }

    }
时间: 2024-12-21 20:53:06

界面存在多个easyUI Combobox控件时,加载数据失败,或加载不正确的相关文章

2014-07-30 DataGridView单元格ComboBox控件Index

项目是在DataGridView单元格中搞得ComboBox控件. 而且要根据ComboBox对应的不同选项,来确定界面上的另一个ComboBox控件是否可用. 这样问题就出来了: DataGridView中的ComboBox是没有事件的! 当更改了Combox中的值以后,必须用鼠标点一下别的地方(鼠标离开此单元格),才会走CellValueChanged事件...... 研究+百度了好久,都不行,终于在中午灵光一闪,搞定了! 思路就是把这个没有事件的单元格,变成有事件的控件: 1 //定义全局

使用EasyUI的combobox控件实现级联搜索条件

昨天接到一个需求,是做一个简单的查询页面,相对于目前公司系统有一个新的东西,需要实现多级机构的级联查询.公司系统的前端框架采用的是jquery-easyui-1.4.3, 在以前接触到的系统中,前端做的不是太多,有采用velocity+html的,实现这种级联倒是做过,只是没怎么记录.现在使用easyui,需要学习一下. 看了些关于easyui的东东,打算采用combobox的input来实现这个级联查询功能. 首先,combobox 实现 动态加载 选项的方法有: reload(url)  .

MFC之ComboBox控件

添加内容 ComboBox_AddString(hwndCtl,lpsz) hwndCtl为此组合框的句柄,lpsz为需要添加的字符串,组合框不能直接通过id添加内容,所以需要得到这个控件的句柄,还得使用GetDlgItem()函数. 举例: HWND hwndCombo1 = GetDlgItem(hwnd,IDC_C1); //建立一个组合框,ID可以设置为IDC_C1,然后通过GetDlgItem获取这个组合框的句柄 //如果无法正常显示,需要调整此组合框的最大显示范围,在向下箭头上出现上

EasyUI常用控件禁用方法

EasyUI常用控件禁用方法: 1.validatebox可以用的用法:前两种适用于单个的validatebox; 第三种应用于整个form里面的输入框; <1>.$("#id").attr("readonly", true); -----  $("#id").removeAttr("readonly"); <2>.$("#id").attr("readonly"

[转]easyui常用控件及样式API中文收藏

[转]easyui常用控件及样式收藏 2013-05-06 23:01 30612人阅读 评论(0) 收藏 举报 分类: java ee(5) 目录(?)[+] CSS类定义: div easyui-window                               window窗口样式 属性如下: 1)       modal:是否生成模态窗口.true[是] false[否] 2)       shadow:是否显示窗口阴影.true[显示] false[不显示] div easyui

winform中comboBox控件加默认选项的问题

winform程序设计中,label,TextBox,ComboBox等几个控件几乎是用得最多的,在设计中经常会遇到一些小问题,如:comboBox控件绑定了数据源之后,如何设置默认值? combobox绑定数据源之后是这样的北京             <----默认显示的就是这条上海深圳....想要让它显示成这样请选择城市     <--------要想默认显示这条北京上海深圳 .... 尝试做法: 1.修改了DropDownStyle属性也不起作用. 2.消去数据源直接用  combob

C#.Net ComboBox控件设置DropDownList之后背景颜色问题,以及发现的微软的一个BUG

先说背景颜色问题怎么处理. C#.Net WinForm中如果设置ComboBox的DropDownStyle为DropDownList,控件背景色会变成灰色,并且这个时候ComboBox控件的BackColor背景色属性则不会起作用,用户体验不好,可能以为是不能点击的,在不引用第三方控件库,和不重绘控件的情况下,我们可以修改下ComboBox的FlatStyle属性使用户体验提升. 并且FlatStyle属性修改后可以设置BackColor属性 微软的小BUG是 先设置DropDownStyl

C#在窗口中ComboBox控件中加载数据库数据

首先,窗体一加载,绑定省份和城市数据 //窗口加载事件 private void register_Load(object sender, EventArgs e) { bindPro();//绑定省份数据函数 } /// <summary> /// 绑定省份数据函数 /// </summary> public void bindPro() { //获取数据库数据 List<ProvinceData> list = new ProvinceDA().Select();

C# dataGridView控件中加入comboBox控件及注意事项

DataGridViewComboBoxColumn pCombo; private void Teaching_Add_Load(object sender, EventArgs e) { MyDBase DB = new MyDBase(DBUser.sserver,DBUser.DBName, DBUser.suser, DBUser.spasswd); DataSet DS= DB.GetRecordset("select * from view_teach_tmp"); da