我正在使用 vaadin 数据网格和dom-repeat
模板,以创建具有动态列的网格。我还在网格的页脚中使用了过滤器。
我需要该过滤器的输入文本字段中的占位符文本,因此我必须设置输入标签。有问题的部分是value
. 在 Vaadin 网格的文档中,这是一个静态命名的变量,等于列名,前面加上_filter
文本字段 ( ::input
) 的值,然后再追加。
如果我要对其进行硬编码,因为_inputHost::input
它会绑定到“主机”列的动态生成属性,但仅限于此列。它还会导致排序中断。
在下面的示例中,我使用了_filterXXXXXXX::input
. 我应该改用什么?
HTML:
<template>
<vaadin-grid id="grid" data-provider="[[dataProvider]]" size= "[[size]]">
<template is="dom-repeat" items="[[columns]]" as="column">
<vaadin-grid-column>
<template class="header">[[column]]</template>
<template>[[get(column, item)]]</template>
<template class="footer">
<vaadin-grid-filter aria-label="[[column]]" path="[[column]]" value="[[_filterColumn]]">
<input placeholder="[[column]]" slot="filter" value="{{_filterXXXXXXX::input}}" focus-target>
</vaadin-grid-filter>
</template>
</vaadin-grid-column>
</template>
</vaadin-grid>
</template>
JS:
this.dataProvider = function(params, callback)
{
var items = [];
items.push ({ID:100, host:"foo.com", rank:5});
items.push ({ID:101, host:"bar.com", rank:8});
items.push ({ID:102, host:"meh.com", rank:15});
this.size = items.length;
callback(items);
}
this.columns = [];
this.columns.push ("ID", "host");