LigerUI 表单和表格中的combobox如何初始化值

摘要:

      在修改基础信息的时候,通常会遇到需要修改值为选择值的时候,这时候,数据库存的一般是value,而不是显示的text值,但页面显示的时候如果显示成数字型的值,通常会给人不够直观的感觉。因此,要求页面在加载的时候,根据value,初始化combobox的选择值。

疑难点:

     表单配置值:  

{ display: Dictionary.mrl.mrl_class_gid, newline: true, name: "pid", type: "select", comboboxName: "pid_com", options: { textField: 'name', valueField: 'sysno', data: data, onSelected: f_select } }

    虽然ligerComboBox({})中有value的方法和属性,但因为无法通过选择器定位到该combobox,所以无法实现初始化值。

尝试1:直接在options中添加value属性。

{ display: Dictionary.mrl.mrl_class_gid, newline: true, name: "pid", type: "select", comboboxName: "pid", options: { textField: 'name', valueField: 'sysno', data: data, value: "5831531369ef4ec5bfafda73a0ed23c7" } }

  结果:失败,并为加载成功

尝试2:在formload以后,单独调用ligerCombobox()方法。

api.loadForm($("#form1"), {
                        data: fdata
                    });

                    setTimeout(function () {                        
                        $("#pid_com").ligerComboBox({
                            data: data,onSelected: f_select,value:fdata.pid
                        });
                    }, 100);

     结果:失败。应该是$选择器的问题。

 利用selector将combobox内容打出:

{
    "context": {
        "location": {
            "hash": "",
            "search": "?type=modify&sysno=9f8cecaee89a49fdb02f7465f90ea418",
            "pathname": "/WebFiles/Material/Mrl_Class_Item.html",
            "port": "26003",
            "hostname": "localhost",
            "host": "localhost:26003",
            "protocol": "http:",
            "origin": "http://localhost:26003",
            "href": "http://localhost:26003/WebFiles/Material/Mrl_Class_Item.html?type=modify&sysno=9f8cecaee89a49fdb02f7465f90ea418",
            "ancestorOrigins": {
                "0": "http://localhost:26003",
                "1": "http://localhost:26003"
            }
        },
        "jQuery19009037283264977614": 1
    },
    "selector": "#pid_com"

}

可以看到,选择器是没有问题的,$("#pid_com"),那通过.val()赋值,不知道会不会成功呢

{"0":{},"length":1,"context":{"location":{"hash":"","search":"?type=modify&sysno=9f8cecaee89a49fdb02f7465f90ea418","pathname":"/WebFiles/Material/Mrl_Class_Item.html","port":"26003","hostname":"localhost","host":"localhost:26003","protocol":"http:","origin":"http://localhost:26003","href":"http://localhost:26003/WebFiles/Material/Mrl_Class_Item.html?type=modify&sysno=9f8cecaee89a49fdb02f7465f90ea418","ancestorOrigins":{"0":"http://localhost:26003","1":"http://localhost:26003"}},"jQuery1900602295770961512":1},"selector":"#pid"}
确定

 最终答案:

应该是选择器用错,应该用name的方式来获取控件。 $("[name=pid_com]").val(fdata.pname);

posted @ 2016-12-14 11:55  善恒  阅读(2348)  评论(0编辑  收藏  举报