2016-11-11 91 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; 

這是正確嗎? 暫時地,問題解決了。