当前位置: 首页 > 知识库问答 >
问题:

当对话框依赖于数据表选择[duplicate]时,最初为null

司马狐若
2023-03-14

我有一个可数据化的列表,列出了一堆测试。我想在用户选择一行后显示一个Primeface对话框。该对话框引用所选行中的数据,如“#{bean.selectedTest.name}”。但是,当页面首次呈现时,没有选择任何行,对所选数据的引用产生“Target Unreacable,'selectedTest'返回null”(对话框引用selectedTest.name)。

我不相信这是解决在识别和解决javax.el.属性NotFoundException:目标不可达,否则真棒。

在数据表选择的Primefaces Showcase中,这是通过使用FacesMessage来处理的,FacesMessage是在选择行之后构建的,而不是之前页面中存在的对话框。在我的例子中,我需要在对话框中进行用户交互。

我试着将对话框放在一个单独的形式中,正如primefaces数据表选择问题中所建议的那样,同样的问题。

我试图在包含引用的对话框中渲染组件,仅在填充selectedTest(rendered=“#{not empty bean.selectedTest}”)后才渲染该组件,并在行选择后处理和更新对话框,这消除了错误,但重新渲染从未发生,对话框弹出为空。我可以在调试器中看到,在setSelectedTest()之前调用getSelectedTest(),并返回null。有没有更好的方法来强制重新渲染我丢失的内容?还是这是处理问题的错误方式?

我已经通过将任意测试设置为选中来解决这个问题,但这似乎是一个丑陋的黑客,因为行显示为选中,但用户实际上并没有选择任何东西。

提前感谢您的帮助。

共有1个答案

东方和志
2023-03-14

您所走的道路是正确的:这里的方法是使用条件渲染。

至于为什么重新渲染不起作用:很可能您正在尝试更新条件渲染组件本身。这可能是最常见的错误。请参阅解释。

另一种方法是使用p: dialog动态="true"属性-这本质上是一个条件渲染,条件是“在客户端打开了一个对话框”。

 类似资料:
  • 我需要在加载时选择组合框的第一个项目。 XAML: 我希望在打开窗口时在组合框中最初选择。 我使用< code>SelectedItem属性在所选项目发生更改时触发一个事件。

  • 我对Primefaces数据表有一个问题,尤其是对Selection对象。 在我下面的代码中,我总是为变量“选定的问题”获得空,该变量绑定到具有选择的数据表。 联合战略框架如下: 和相关的Bean类(AllCountionBean.class): 数据模型: 我调试了一些运行,并提到AllQuestionBean中的变量“selectedQuestion”。课程永远不会固定。也就是说,“onRow

  • 这是PyGTK API中的预配置对话框,允许用户选择和应用颜色。 它内部嵌入了一个gtk.ColorSelection小部件。 gtk.ColorScelection小部件提供了一个colow轮,以及HSV和RGB等颜色参数的输入框。 可以通过操纵色轮或输入颜色参数来选择新颜色。 它的get_current_color对于进一步处理很有用。 以下是gtk.ColorSelectionDialog类

  • gtk.FontSelection小部件允许用户选择和应用特定名称,大小和样式的字体。 该对话框有一个预览框,其中包含一些将以选定的字体描述显示的文本,以及两个按钮CANCEL和OK。 PyGTK API包含一个Pango模块,它定义了呈现高质量国际化文本所需的类和功能。 Pango支持gtk中的字体和文本处理。 pango.Font对象以与系统无关的方式表示字体。 pango.FontDescr

  • 问题内容: 我已经做了一些寻找该问题答案的搜索,但是我能弄清楚的是: 在我看来,这似乎很古怪,又不合蟒蛇风(而且很慢?)。 在不指定列名的情况下,为pandas数据框中的最后一列选择数据的最简单方法是什么? 问题答案: 使用iloc并针对最后一列()选择所有行():

  • 我正在使用具有多重选择和分页功能的datatable,当我选择一行并转到另一个页面,然后返回到我所在的页面时,我选择的行将不再被选中。我使用的是primefaces 3.5、mojarra、jboss 7.1,我的bean是ViewScope。下面是我的代码: 型号: