Javascript 刷新掌上电脑
我想刷新一个可触摸的网格。我有一些列,下拉列表中填充了我的数据库数据。但是在我的页面中,我有一个第一个网格,它在这个数据库中插入数据,然后我在第二个网格中得到它们。但由于我的第二个网格没有刷新,所以我无法获取刚刚插入第一个网格的最后一个值 那么,我怎样才能刷新掌上电脑的内容呢 编辑: 我制作了一个JSFIDLE来说明我的问题: 在我的JSFIDLE上,它可以工作,当我将值推送到数组中时,我可以得到这些值。但对于我的实际应用程序和数据库,它不起作用 因此,我的代码中没有数组,而是包含以下内容(它可以工作,但不会刷新):Javascript 刷新掌上电脑,javascript,php,handsontable,Javascript,Php,Handsontable,我想刷新一个可触摸的网格。我有一些列,下拉列表中填充了我的数据库数据。但是在我的页面中,我有一个第一个网格,它在这个数据库中插入数据,然后我在第二个网格中得到它们。但由于我的第二个网格没有刷新,所以我无法获取刚刚插入第一个网格的最后一个值 那么,我怎样才能刷新掌上电脑的内容呢 编辑: 我制作了一个JSFIDLE来说明我的问题: 在我的JSFIDLE上,它可以工作,当我将值推送到数组中时,我可以得到这些值。但对于我的实际应用程序和数据库,它不起作用 因此,我的代码中没有数组,而是包含以下内容(它可
列:[
]
尝试将observeChanges选项设置为true。这将检测数据源中的更改并再次渲染网格
我现在明白了。您希望动态更新下拉列表的源。使用以下代码应该很容易做到这一点:
hot2.updateSettings({
columns: [{
type: 'dropdown',
source: arrayTest
}]
})
确保在arrayTest
具有新值且应设置为go后添加此项。下面是您的示例,其中在正确的位置添加了行。只需调用hot.render()
,其中hot
指的是Handsontable
对象
对我来说效果很好。接受的答案对我不起作用,但下面的代码效果很好
let hot = new Handsontable(this.hotTableComponentTest.nativeElement, {
data: [["","",""]] ,
...
});
if (value && value.length>0 && this.hot) {
this.hot.getInstance().loadData(value);
this.hot.getInstance().render();
}
它似乎不工作,即使它似乎是我正在寻找的东西。我有这个代码,你看到我哪里做错了吗?var hot=新的可手持设备(容器、,{data:data\u parcelle\u elementaire,stretchH:'all',minSpareRows:1,observeChanges:true,rowHeaders:false,colHeaders:false,contextMenu:true,height:550,您可以尝试将ColumnSorting设置为true吗?默认情况下,observeChanges为false,但将ColumnSorting设置为true将启用observeChanges。您是指擦除“observeChanges”吗并添加“列排序”?或者两者都设置?两者都不起作用:/若你们能准备一个JSFIDLE,那个将很有帮助。我认为什么是mpusarla是有意义的。你们能给我们一个JSFIDLE吗?我不确定我是否理解你们的要求for@ZekeDroid我写了我的博文谢谢,但我发现了问题所在对于hot,请求不会执行两次。因此,我必须使用数据创建一个数组,就像在小提琴中一样。现在它可以工作了。我还要补充一点,有时hot.render()可能需要调用两次。(在我的用例中,第一次调用调整了hot的大小,但是头列和记录列没有对齐,所以第二次调用强制对齐)。
let hot = new Handsontable(this.hotTableComponentTest.nativeElement, {
data: [["","",""]] ,
...
});
if (value && value.length>0 && this.hot) {
this.hot.getInstance().loadData(value);
this.hot.getInstance().render();
}