2016-11-11 60 views
1

我想更改动态列表框,但我不知道该怎么做。通过复选框更改列表框的内容

当复选框被选中时 我想更改列表框的内容。

// getPageFileData -> Data acquisition with Ajax.. 
 
var retData = getPageFileData(productSeq, 3); 
 

 
var linkArray = [{text:"Select Page", value:""}]; 
 
for (var i = 0; i < retData.PageList.length; i++) { 
 
    linkArray.push({ text: retData.PageList[i].page_title, value: retData.PageList[i].page_id }); 
 
} 
 

 
// set linkArray 
 
linkCustomLinkCtrl = { 
 
    disabled: data.customType && data.customType == "2" ? false : true, 
 
    name: 'customLink', 
 
    type: 'listbox', 
 
    label: 'CustomLink', 
 
    values: linkArray 
 
}; 
 

 

 
linkCustomLinkOtherCtrl = { 
 
    disabled: data.customType && data.customType == "2" ? false : true, 
 
    name: 'customLinkCheck', 
 
    type: 'checkbox', 
 
    checked: false, 
 
    text: 'OtherProduct', 
 
    onclick: function (e) { 
 
    if (e.control.value()) { 
 
     var retData = getPageFileData("", 3); 
 
     var linkArray = [{ text: "Select Page", value: "", type: "menuitem" }]; 
 
     for (var i = 0; i < retData.PageList.length; i++) { 
 
     linkArray.push({ text: retData.PageList[i].page_title, value: retData.PageList[i].page_id, type: "menuitem" }); 
 
     } 
 
     var replaceSelect = new Array(); 
 
     for (var i = 0; i < linkArray.length; i++) { 
 
     replaceSelect.push(linkArray[i]); 
 
     } 
 
     // ------------------------------------- 
 
     // Is not it like this? 
 
     win.find("#customLink")[0]._values = replaceSelect; 
 
     // ------------------------------------- 
 

 
     console.dir(win.find("#customLink")); 
 
    } 
 
    } 
 
}

是不是重写摆在首位_values的方式吗? 对不起,我可怜的英语..

回答

0

我不知道在哪里设置正确。 我按照下图设置它,并完成了。

var linkList = win.find("#customLink")[0]; 
if (linkList.menu) { 
    linkList.value(null); 
    linkList.menu = null; 
    linkList.settings.menu = replaceSelect; 
} 
linkList._values = replaceSelect; 
linkList.settings.values = replaceSelect; 
linkList.state.data.menu = replaceSelect; 

这是正确吗? 暂时地,问题解决了。