0

非常愚蠢的问题 - 请帮助 - 把我的头发扯掉。

组合框作为 edatagrid 中的编辑器 - 工作正常 本地数组是组合框的数据源 - 工作正常 远程 php 是 edatagrid 的源 - 工作正常 easyUI:1.3.4 jQuery:2.0.0 CentOS:5.9

问题

数据网格中的组合框在选择后拒绝显示 textField。坚持显示valueField。尝试了来自互联网各地的多种解决方案。

代码 - 抱歉 - 已在 vi 中编辑 - 格式化可能真的很不稳定 - 下面组合框的格式化程序功能是我尝试过的最新版本 - 坚持显示 valueField

        <script type="text/javascript">
            $(function(){
                    var aRights =  [{rightid: 'V', rightname: 'View Only'},
                                    {rightid: 'E', rightname: 'Edit FPC'},
                                    {rightid: 'A',  rightname: 'Admin'},
                                    {rightid: 'N', rightname: 'None'}
                    ] ;
                    $('#cbCompany').combobox({
                            url: 'fpc_company_list.php',
                            valueField: 'companyid',
                            textField: 'companyname',
                            onSelect: function(rec) {
                                    var url = 'fpc_user_list.php?companyid=' + rec.companyid;
                                    $('#cbUser').combobox('reload', url);
                                    //$('#cbUser').combobox('clear');
                            }
                    });
                    $('#cbUser').combobox({
                            valueField: 'userid',
                            textField: 'userfullname',
                            onSelect: function (rec) {
                                 var url = 'fpc_get_user_channel_map.php?userid=' + rec.userid ;
                                 $('#tChannels').edatagrid({url: url}) ;
                            }
                    });
                    $('#tChannels').edatagrid({
                                    url: 'fpc_get_user_channel_map.php',
                                    columns: [[
                                                    {field: 'channelid', title: 'Channel ID', visible: false},
                                                    {field: 'channelname', title: 'Channel'},
                                                    {field: 'rights', title: 'Rights', width: 150, editor: {type: 'combobox',
                                                                                                    options: {
                                                                                                                    valueField: 'rightid',
                                                                                                                    textField: 'rightname',
                                                                                                                    panelHeight: 'auto',
                                                                                                                    data: aRights,
                                                                                                                    formatter: function(value) {
                                                                                                                            console.log(value) ;
                                                                                                                            for (var i = 0; i < aRights.length; i++) {
                                                                                                                                    if (aRights[i].rightid == value.rightid) return aRights[i].rightname ;
                                                                                                                            }
                                                                                                                            return value.rightid;
                                                                                                               }
                                                                                                        }

                                                                                                    }

                                                    }
                                            ]]
                    });
                    $('#bSubmit').bind('click', function() {
                                            var selRow = $('#tChannels').datagrid('getData');
                                            var jsonStr = JSON.stringify(selRow) ;
                                            alert(jsonStr) ;
                                            $.ajax({
                                                    url : 'fpc_map_user_channel_update.php',
                                                    type: 'POST',
                                                    dataType: 'text',
                                                    data: jsonStr,
                                                    done: function(res) {
                                                            alert(res) ;
                                                    }
                                            });
                                    } //function
                    ); //button bind
            });
    </script>
4

0 回答 0