2017-03-20 38 views
1

我有一個名爲data的變量數組,對於IGcombobox數據源,我想在單擊我的#select時更改數組,我該怎麼做?使用此代碼它不會更改變量。我也可以使用PHP,但我不想那樣做!如何更改數組變量

<div id="checkboxSelectCombo" name="kanal" style="position:absolute;" ></div> 

<select id="seade" name="seade">   
    <?php for($i = 1; $i <= $devi; $i++) { 
    echo '<option value="' . $i . '">' .$device_name[$i]. '</option>'; 
    } ?> 
</select> 
$(function() { 
    var data = [ 
    { ID: "1", Name: "Vooluandur 1" }, 
    { ID: "2", Name: "Meeter 1" } 
    ]; 

    $("#seade").on('click', function(event) { 
    console.log($("#seade").val()); 
    if ($("#seade").val() == 2) { 
     var data = [ 
     { ID: "3", Name: "Vooluandur 2" }, 
     { ID: "4", Name: "Meeter 2" } 
     ]; 
    } 
    }); 

    $("#checkboxSelectCombo").igCombo({ 
    width: "100px", 
    dataSource: data, 
    textKey: "Name", 
    valueKey: "ID", 
    multiSelection: { 
     enabled: true, 
     showCheckboxes: true 
    } 
    }); 
}); 
+1

假設您想要更改外部作用域中的'data',請從'#seade'點擊處理程序中刪除'var',但請注意,這不會影響您給'igCombo'的數據源。據推測,您需要銷燬/重新初始化該庫,或使用「刷新」方法 - 假設它提供了一個 –

+0

如何使用「刷新」方法? – Somepub

+0

這一切都取決於你使用的庫是否有一個。閱讀他們的文檔 –

回答

2

你可以試試這個:(沒雖然運行)

$("#seade").on('change', function(event) { 
    if (this.value == 2) { 
     data = [ 
      { ID: "3", Name: "Vooluandur 2" }, 
      { ID: "4", Name: "Meeter 2" } 
     ]; 
    } 
}); 
0

我找到了一個解決方案,因爲變化的數據變量不影響igCombo數據源,我可以改變datasouce可變這樣

var data2 = [{ 
    ID: "3", 
    Name: "Vooluandur 2" 
    }, 
    { 
    ID: "4", 
    Name: "Meeter 2" 
    } 
]; 

$("#seade").on('change', function(event) { 
    if (this.value == 2) { 
     $("#checkboxSelectCombo").igCombo({ 
      dataSource: data2, 
      textKey: "Name", 
      valueKey: "ID", 
     }); 
    } 
}); 

文檔源:http://www.igniteui.com/help/igcombo-data-binding

0

發現了一些刷新數據源希望它會工作

,你更新你的「數據」的變量,就把這行

$(「#checkboxSelectCombo」)。igCombo(「選項」,「 dataSource「,data);

這應該更改dataSource並重新綁定組合。