2017-03-20 37 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并重新绑定组合。