我想刷新一个动态网格。我有一些列,下拉列表中填充了我的数据库的数据。但是在我的页面中,我有一个第一个网格,它在这个数据库中插入数据,然后我将它们放在我的第二个网格中。但由于我的第二个网格没有刷新,我无法获得刚插入第一个网格的最后一个值。
那么我怎样才能刷新一个掌上电脑的内容呢?
编辑:
我做了一个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).'},';
?>]
答案 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();
}