Celltable с настраиваемым заголовком с текстовым полем фильтра в нем (как связать текстовое поле фильтра с keyUphandler
У меня есть требование, где мне нужно создать пользовательский заголовок, который имеет текстовое поле. При вводе в него необходимо отфильтровать совпадения записей.
Используя следующую ссылку, я создал собственный заголовок. Мой класс CustomHeader
final public class ColumnHeaderFilterCell extends AbstractCell<String> {
interface Templates extends SafeHtmlTemplates {
@SafeHtmlTemplates.Template("<div >{0}</div>")
SafeHtml text(String value);
@SafeHtmlTemplates.Template("<div >
<input type=\"text\" value=\"\" name=\"{0}\"/></div>")
SafeHtml filter(String value);
}
private static Templates templates = GWT.create(Templates.class);
@Override
public void render(Context context, String value, SafeHtmlBuilder sb) {
if (value == null) {
return;
}
SafeHtml renderedText = templates.text(value);
sb.append(renderedText);
SafeHtml renderedFilter = templates.filter(value);
sb.append(renderedFilter);
}
}
*ColumnHeader class is*
public static class ColumnHeader extends Header<String> {
private String name_;
public ColumnHeader(String name) {
super(new ColumnHeaderFilterCell());
this.name_ = name;
//setHeaderStyleNames("columnHeader " + field);
}
@Override
public String getValue() {
return name_;
}
}
*Adding a column as*
ColumnHeader docColHeader = new ColumnHeader("Documentaton");
cellTable.addColumn(documentaton, docColHeader);
Теперь мой вопрос, как я могу добавить событие addKeyUpHandler() в текстовое поле, которое является заголовком ячейки?
Я реализовал фильтрацию в celltable, если текстовое поле находится где-то еще, используя следующую ссылку. Если я могу передать объект textbox в заголовок celltable, это может быть полезно. Я не знаю, как пройти.
Кто-нибудь может мне помочь, пожалуйста
1 ответ
Обработка событий в ячейках осуществляется не через обработчики событий, как с виджетами, а на более низком уровне. См. https://developers.google.com/web-toolkit/doc/latest/DevGuideUiCustomCells