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