在我的应用程序中,我有一个defaultDataTable,带有可点击的列和用于过滤表的搜索字段。过滤器在将字符插入输入字段后过滤数据表的内容。我的目标是在适用于用户输入的字段中强调(或其他css)文本部分。Wicket datatable更改字体或更改后的单元格的css
示例:如果用户输入'ab',字符串'abc'的字符'a'和'b'应加下划线。使用Javascript,我可以添加一些样式,但是我的函数用数据表做了一些奇怪的事情。它会删除表格标签中的所有内容,并将新的HTML放在那里。所有其他信息都没有了。我究竟做错了什么?
<script>
$('.searchField').keyup(function(){
var page = $('.datatable');
alert(page.text());
var pageText = page.text().replace("<span>","").replace("</span>");
alert(pageText);
var searchedText = $('#searchField').val();
var theRegEx = new RegExp("("+searchedText+")", "igm");
var newHtml = pageText.replace(theRegEx ,"<b>$1</b>");
alert(newHtml);
page.html(newHtml);
});
</script>
新表:
<table id="ID" class="datatable" wicket:id="ID">
Col1 Col2 123
<b>MATCHEDCHAR</b>
TEXT
<b>MATCHEDCHAR</b>
TEXT
</table>
旧表(折叠机身连接头):
<table id="ID" class="datatable" wicketsource="URL.java" wicket:id="ID">
<thead wicketsource="org.apache.wicket.extensions.markup.html.repeater.data.table:DataTable.java:181" wicket:id="topToolbars">
<tbody wicketsource="org.apache.wicket.extensions.markup.html.repeater.data.table:DataTable.java:207" wicket:id="body">
<tr class="even" wicketsource="org.apache.wicket.extensions.markup.html.repeater.data.table:DefaultDataTable.java:71" wicket:id="rows">
</tbody>
</table>
谢谢你的回答。我不明白如何订阅ajax事件。我的searchfield附带了一个onChangeAjaxBehavior&onUpdate,但wicket.event.subscribe永远不会被调用。你如何连接它们? – Attiej
我已更新答案,请检查它。请接受答案,如果它解决您的问题,请。 –
注意:Wicket.Event.subscribe ...是一个js代码 –