Easyui datagrid editor为combobox时指定数据源

       当在datagrid行内部应用添加编辑操作时,引入combobox是非常方便的操作,我在引入combobox时对数据源这快做个总结,在做demo的过程中遇到个问题,就是当你选择了下拉框的值后点击保存,此时显示的是value值,而不是text值,这时使用格式化函数解决此问题。





var Address = [{ "value": "1", "text": "CHINA" }, { "value": "2", "text": "USA" }, { "value": "3", "text": "Koren" }];

 

 

function unitformatter(value, rowData, rowIndex) {

    if (value == 0) {

        return;

    }

 

    for (var i = 0; i < Address.length; i++) {

        if (Address[i].value == value) {

            return Address[i].text;

        }

    }

}

function GetTable() {

    var editRow = undefined;

 

    $("#Student_Table").datagrid({

        height: 300,

        width: 450,

        title: '学生表',

        collapsible: true,

        singleSelect: true,

        url: '/Home/StuList',

        idField: 'ID',

        columns: [[

         { field: 'ID', title: 'ID', width: 100 },

            { field: 'Name', title: '姓名', width: 100, editor: { type: 'text', options: { required: true } } },

            { field: 'Age', title: '年龄', width: 100, align: 'center', editor: { type: 'text', options: { required: true } } },

            { field: 'Address', title: '地址', width: 100, formatter: unitformatter, align: 'center', editor: { type: 'combobox', options: { data: Address, valueField: "value", textField: "text" } } }

        ]],

        toolbar: [{

            text: '添加', iconCls: 'icon-add', handler: function () {

                if (editRow != undefined) {

                    $("#Student_Table").datagrid('endEdit', editRow);

                }

                if (editRow == undefined) {

                    $("#Student_Table").datagrid('insertRow', {

                        index: 0,

                        row: {}

                    });

 

                    $("#Student_Table").datagrid('beginEdit', 0);

                    editRow = 0;

                }

            }

        }, '-', {

            text: '保存', iconCls: 'icon-save', handler: function () {

                $("#Student_Table").datagrid('endEdit', editRow);

 

                //如果调用acceptChanges(),使用getChanges()则获取不到编辑和新增的数据。

 

                //使用JSON序列化datarow对象,发送到后台。

                var rows = $("#Student_Table").datagrid('getChanges');

 

                var rowstr = JSON.stringify(rows);

                $.post('/Home/Create', rowstr, function (data) {

 

                });

            }

        }, '-', {

            text: '撤销', iconCls: 'icon-redo', handler: function () {

                editRow = undefined;

                $("#Student_Table").datagrid('rejectChanges');

                $("#Student_Table").datagrid('unselectAll');

            }

        }, '-', {

            text: '删除', iconCls: 'icon-remove', handler: function () {

                var row = $("#Student_Table").datagrid('getSelections');

 

            }

        }, '-', {

            text: '修改', iconCls: 'icon-edit', handler: function () {

                var row = $("#Student_Table").datagrid('getSelected');

                if (row != null) {

                    if (editRow != undefined) {

                        $("#Student_Table").datagrid('endEdit', editRow);

                    }

 

                    if (editRow == undefined) {

                        var index = $("#Student_Table").datagrid('getRowIndex', row);

                        $("#Student_Table").datagrid('beginEdit', index);

                        editRow = index;

                        $("#Student_Table").datagrid('unselectAll');

                    }

                } else {

 

                }

            }

        }, '-', {

            text: '上移', iconCls: 'icon-up', handler: function () {

                MoveUp();

            }

        }, '-', {

            text: '下移', iconCls: 'icon-down', handler: function () {

                MoveDown();

            }

        }],

        onAfterEdit: function (rowIndex, rowData, changes) {

            editRow = undefined;

        },

        onDblClickRow: function (rowIndex, rowData) {

            if (editRow != undefined) {

                $("#Student_Table").datagrid('endEdit', editRow);

            }

 

            if (editRow == undefined) {

                $("#Student_Table").datagrid('beginEdit', rowIndex);

                editRow = rowIndex;

            }

        },

        onClickRow: function (rowIndex, rowData) {

            if (editRow != undefined) {

                $("#Student_Table").datagrid('endEdit', editRow);

 

            }

 

        }

 

    });

}

效果图



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值