jqWidgets之jqxComboBox级联

来源:互联网 发布:mac word 希腊字母 编辑:程序博客网 时间:2024/06/05 19:03

一级为省份二级为主机,当选择省份时二级无法指定默认选项

现象:输出二级选项的选择索引为-1,在初始化时指定了selectIndex为0

原因:二级菜单在一步请求时数据还没加载完所以指定的选项失效,再获取selectItem时则为-1

解决方法:在Adapter中指定加载完成后再选择默认选择项(红色部分)

// 初始化省份查询条件

function initProvince() {
    var url = './system/application/getProvince.web';
    var sourcePro = {
        type : "post",
        datatype : "json",
        datafields : [ {
            name : 'id'
        }, {
            name : 'name'
        } ],
        url : url
    };
    var dataAdapter = new $.jqx.dataAdapter(sourcePro);
    $("#province").jqxComboBox({
        source : dataAdapter,
        width : 120,
        height : 25,
        selectedIndex : 0,
        displayMember : "name",
        valueMember : "id",
    });

    $("#province").on('change',    function(event) {
        var args = event.args;
        if (args != undefined) {
            var item = event.args.item;
            if (item != null) {

                var url = './system/application/getHosts.web?regionID='
                        + item.value + '&unitid=0';
                // prepare the data
                var sourceIP = {
                    type : "get",
                    datatype : "json",
                    datafields : [ {
                        name : 'host'
                    }, {
                        name : 'hostid'
                    } ],
                    url : url,
                };

                var dataAdapter = new $.jqx.dataAdapter(
                        sourceIP, {
                            loadComplete : function(records) {
                                $("#hostIP").jqxComboBox(
                                        'selectIndex', 0);
                            }
                        });

                $("#hostIP").jqxComboBox({
                    source : dataAdapter
                });
            }
        }

    });
}

// 初始化主机IP查询条件
function initHostIP(pro, region) {
    var url = './system/application/getHosts.web?regionID=' + pro
            + '&unitid=' + region;
    // prepare the data
    var sourceIP = {
        type : "get",
        datatype : "json",
        datafields : [ {
            name : 'host'
        }, {
            name : 'hostid'
        } ],
        url : url,
    };
    var dataAdapter = new $.jqx.dataAdapter(sourceIP);

    $("#hostIP").jqxComboBox({
        source : dataAdapter,
        width : 120,
        height : 25,
        selectedIndex : 0,
        displayMember : "host",
        valueMember : "hostid",
    });

    console.log($("#hostIP").jqxComboBox('getSelectedIndex'));
}

0 1
原创粉丝点击