刷新一个领导者

时间:2015-07-29 13:44:18

标签: javascript php handsontable

我想刷新一个动态网格。我有一些列,下拉列表中填充了我的数据库的数据。但是在我的页面中,我有一个第一个网格,它在这个数据库中插入数据,然后我将它们放在我的第二个网格中。但由于我的第二个网格没有刷新,我无法获得刚插入第一个网格的最后一个值。

那么我怎样才能刷新一个掌上电脑的内容呢?

编辑:

我做了一个jsfiddle来说明我的问题: http://jsfiddle.net/9onuhpn7/10/ 在我的jsFiddle上,它可以工作,当我将它们推入数组时,我可以获取值。但是,通过我的真实应用程序和数据库,它无法正常工作。

所以代替数组,我在我的代码中有这个(它可以工作,但它没有刷新):

columns:[
<?php 

    $conn_string = "host=localhost port=5432 dbname=test_postgre user=postgres password='1234'";
    $dbconn = pg_connect($conn_string);

    $sql = "SELECT ".$colonne." FROM public.".$tablevar."";
    $res = pg_query($sql) or die("Pb avec la requete: $sql");

    $data = pg_fetch_all($res);

    $indexedOnly = array();

    foreach ($data as $row) {
                $indexedOnly[] = array_values($row);
    }
    echo '{type:\'dropdown\',';
    echo 'source:'.json_encode($indexedOnly).'},';



?>]

4 个答案:

答案 0 :(得分:8)

只需致电hot.render();hot引用Handsontable对象。

对我来说很棒。

答案 1 :(得分:1)

我现在明白了。您想要动态更新下拉列表的来源。使用以下代码应该很容易:

hot2.updateSettings({
    columns: [{
        type: 'dropdown',
        source: arrayTest
    }]
})

确保在arrayTest具有新值后添加此值,您应该设置为go。这是您的fiddle,并在正确的位置添加了该行。

答案 2 :(得分:0)

尝试将observeChanges选项设置为true。这应检测数据源中的更改并再次呈现网格。

https://github.com/handsontable/handsontable/wiki/Options#constructor-options

答案 3 :(得分:0)

接受的答案对我不起作用,但是以下代码可以正常工作。

let hot = new Handsontable(this.hotTableComponentTest.nativeElement, {
      data: [["","",""]]   ,
      ...
    });

if (value && value.length>0 && this.hot) {
      this.hot.getInstance().loadData(value);
      this.hot.getInstance().render();
    }