取消选择数据表中的选定行
unselect the selected rows in a datatable
我正在处理具有单一选择的数据表 mode.My 问题是,当我刷新页面时,刷新前选定的相同行保持刷新状态。
关于在这种情况下如何取消选择所有数据表行的任何想法。
感谢帮助我解决这个问题。
这是我的数据表代码:
<p:dataTable id="cars1" var="car" widgetVar="carsTable" value="#{typePrimeManager.tprimes}" editable="false" style="margin-bottom:20px" paginator="false" selectionMode="single" selection="#{typePrimeManager.selectedtype}" rowKey="#{car.idPrime}">
<p:ajax event="rowSelect" update=":form:cars2" />
<p:ajax event="rowUnselect" listener="#{typePrimeManager.setSelectedtype(null)}" update=":form:cars2"/>
<p:ajax event="rowUnselect" listener="#{typePrimeManager.setSelectedtype(null)}" update=":form:cars2"/>
<p:column headerText="intitule des types">
<h:outputText value="#{car.intitulePrime}" />
</p:column>
</p:dataTable>
您使用带有 SessionScoped 的托管 bean 吗?这保持价值不变。我建议您阅读此内容:How to choose the right bean scope?
如果您想继续使用 SessionScope 并重置选定的行,您必须清除 bean 中的选定类型
如果您必须有一个会话范围的 bean,您需要清除 DataTable 持有的值以引用所选项目,在您的情况下是 typePrimeManager.selectedtype
。
因此,如果您将此值设置为 null 或任何不在 DataTable 数据源中的相同类型的对象,那么您的问题将得到解决,但您必须在重新加载页面之前执行此操作。要获得该事件,您可以使用预定义的 JSF 事件(如 PreRenderView
)来执行您应该清除所选值的方法,或者您可以定义一个将调用适当的 bean 方法并执行该 remoteCommand 的 remoteCommand加载页面时 javascript。
我正在处理具有单一选择的数据表 mode.My 问题是,当我刷新页面时,刷新前选定的相同行保持刷新状态。 关于在这种情况下如何取消选择所有数据表行的任何想法。 感谢帮助我解决这个问题。
这是我的数据表代码:
<p:dataTable id="cars1" var="car" widgetVar="carsTable" value="#{typePrimeManager.tprimes}" editable="false" style="margin-bottom:20px" paginator="false" selectionMode="single" selection="#{typePrimeManager.selectedtype}" rowKey="#{car.idPrime}">
<p:ajax event="rowSelect" update=":form:cars2" />
<p:ajax event="rowUnselect" listener="#{typePrimeManager.setSelectedtype(null)}" update=":form:cars2"/>
<p:ajax event="rowUnselect" listener="#{typePrimeManager.setSelectedtype(null)}" update=":form:cars2"/>
<p:column headerText="intitule des types">
<h:outputText value="#{car.intitulePrime}" />
</p:column>
</p:dataTable>
您使用带有 SessionScoped 的托管 bean 吗?这保持价值不变。我建议您阅读此内容:How to choose the right bean scope?
如果您想继续使用 SessionScope 并重置选定的行,您必须清除 bean 中的选定类型
如果您必须有一个会话范围的 bean,您需要清除 DataTable 持有的值以引用所选项目,在您的情况下是 typePrimeManager.selectedtype
。
因此,如果您将此值设置为 null 或任何不在 DataTable 数据源中的相同类型的对象,那么您的问题将得到解决,但您必须在重新加载页面之前执行此操作。要获得该事件,您可以使用预定义的 JSF 事件(如 PreRenderView
)来执行您应该清除所选值的方法,或者您可以定义一个将调用适当的 bean 方法并执行该 remoteCommand 的 remoteCommand加载页面时 javascript。