我有起床气
2019-04-18 16:29
采纳率: 100%
浏览 472
已采纳

用$.each处理从后台取到的json数据后该如何绑定到combobox

图片说明
最终实现第一个combobox选择后第二个combobox的数据源会实时变化

                $('#ListEquStop').datagrid('selectRow', index)
                    .datagrid('beginEdit', index);
                var ed = $('#ListEquStop').datagrid('getEditor', { index: index, field: field });
                if (ed) {
                    ($(ed.target).data('textbox') ? $(ed.target).textbox('textbox') : $(ed.target)).focus();

                    var ed1 = $('#ListEquStop').datagrid('getEditor', { index: index, field: 'EquStopTy' });
                    var ed2 = $('#ListEquStop').datagrid('getEditor', { index: index, field: 'EquStopId' });
                    //var editor1 = ed[0];
                    //var editor2 = ed[1];
                    //var editor3 = ed[2];
                    $(ed1.target).combobox({
                        onChange: function (newValue, oldValue) {
                            $.ajax({
                                type: 'post',
                                url: "/DMS/ProductionData/GetListByEquTy",
                                data: { newValue: newValue },
                                async: false,
                                success: function (data) { 
                                    $.each(data, function (i, item) {
                                        var id = item.Id;
                                        var desc = item.EquStop_Desc
                                        //alert(id);
                                        //alert(desc);

##                                                                              _**此处数据已取出,需进行绑定**_

                                    });
                                }

                            });

                        }

                    });

                }

下面是界面部分

                {
                    field: 'EquStopTy', title: '设备停止类型', width: 80, formatter: function (value, row) {
                        return row.EquStop_Type;
                    }, editor: {
                        type: 'combobox',
                        options: {
                            url: '/DMS/EquStop/GetComboxDataByEquStopId',
                            valueField: 'Id',
                            textField: 'Name',
                            method: 'post',
                            //required: true,
                            //missingMessage: '设备停止项目必选!',
                            editable: false
                        }
                    }
                },
                {
                    field: 'EquStopId', title: '设备停止项目', width: 80, formatter: function (value, row) {
                        return row.EquStop_Desc;
                    }, editor: {
                        type: 'combobox',
                        options: {
                            url: '/DMS/EquStop/GetComboxDataByEquStop',
                            valueField: 'Id',
                            textField: 'Name',
                            method: 'post',
                            editable:false
                        }
                    }
                }

就是说我的desc如何绑定到第二个combobox上

        public ActionResult GetListByEquTy(string newValue)
        {
            List<DMS_EquStopModel> list = new List<DMS_EquStopModel>();
            MyCommonHelp mycommonHelp = new MyCommonHelp();
            StringBuilder sql = new StringBuilder();
            sql.AppendFormat(@"select Id,EquStop_Desc as Name from DMS_EquStop
            where EquStop_Type = '{0}'", newValue);

            DataTable dt = DBHelp.GetDataTable(sql.ToString());

            list = mycommonHelp.ConvertToList<DMS_EquStopModel>(dt);
            return Json(list, JsonRequestBehavior.AllowGet);

        }
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 1进击的小白 2019-04-18 16:47
    已采纳

    绑定的话具体的数据不用遍历出来了,$(ed2.target).combobox("reload", data);这样试试,我在网上找的方法
    你的textField是Name,返回的data中也要有这个属性,不然可能没数据

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • Lumeir 2019-04-18 16:40

    不用遍历数据,用setValues就解决了。
    $('#cc').combobox('setValues', ['001','002']);

    评论
    解决 无用
    打赏 举报
  • 迷路的公民 2019-04-18 17:13
    $(ed2.target).combobox("loadData",data);
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题