我有一个错误需要解决,我很困惑,我们有一个页面,可能会打开一个带有Primefaces多选数据表的对话框,在用户选择了他想要的值后,有一个" ok&#34 ;将文字值转换为标记并将它们全部放在Primefaces文本编辑器组件中的按钮。问题是,当分页发生时,前一页的选择将丢失。
我已经在Datatable中使用过多选,但是在这种特殊情况下,由于Jquery函数执行了将标记放在文本编辑器中的所有过程,我们没有使用多选作为Primefaces展示提示。因此,列表中指出了"选择"从不设置数据表的属性。
我想我必须找到一种方法来保持使用JQuery的选择,但我并不擅长,所以我在这里寻求你的帮助。
这里有相关的相关代码:
<p:dataTable id="tagsTable" var="tag"
value="#{MB.tagList}" rowKey="#{tag.tag.id}"
rows="10" selection="#{MB.tagsSelected}"
rowsPerPageTemplate="5,10" paginator="true">
<p:column style="width:50px; white-space: pre-wrap;">
<p:selectBooleanCheckbox id="tagCheckbox" value="#{tag.checked}" />
<input type="hidden" id="tagHidden" value="#{tag.tag.tag}" />
</p:column>
这里的功能是:
<script>
function useTags(){
var checks = $( "#formTag\\:tagsTable input:checked" );
if (checks.length == 0 ) {
alert('Show MSG...');
return;
}
$.each(checks , function( key, value ) {
var $div = $(value).parent().parent().parent();
var stringToInsert = '<input type="button" value="' + $div.find('input')[1].value + '" disabled="disabled"/>';
$('#mainForm\\:editor_input').cleditor()[0].execCommand('inserthtml',stringToInsert);
});
dlgSearchTag.hide();
}
</script>