Java 当从同一行的列中单击按钮时,JSF在Datatable的行中显示文本字段,
各位 这是我与JSF合作的第二天,如果我的问题不是很清楚,请耐心等待 我会尽量说清楚的 从附加的屏幕中,您可以看到带有 第一行为空,第二行有表项 我想做的是,我想使用表的第一行作为条目 在这里,我可以输入ID、名称和值的值 只要我点击“保存”按钮,该行就会被添加到数据库中并保存下来 应获取并显示。我对数据库部分没有任何问题 我的问题是:(请在提供解决方案时提供代码片段) 1) 单击后,我需要显示(ID、名称和值)的文本字段 “编辑”按钮用于具有值的行,单击“编辑”按钮后 按钮我需要启用“保存”按钮,当 表已加载,所以我可以进行修改,现在它看起来像一个标签 当我点击 保存按钮我需要禁用它 我希望这一行和桌子的第一行一样 但在它里面有值可以编辑它。 如何做到这一点 2) 是否可以参考按钮的id并检查其是否正确 是否启用或禁用呈现文本字段(ID、名称和值) 这是表的列代码Java 当从同一行的列中单击按钮时,JSF在Datatable的行中显示文本字段,,java,jsp,jsf,Java,Jsp,Jsf,各位 这是我与JSF合作的第二天,如果我的问题不是很清楚,请耐心等待 我会尽量说清楚的 从附加的屏幕中,您可以看到带有 第一行为空,第二行有表项 我想做的是,我想使用表的第一行作为条目 在这里,我可以输入ID、名称和值的值 只要我点击“保存”按钮,该行就会被添加到数据库中并保存下来 应获取并显示。我对数据库部分没有任何问题 我的问题是:(请在提供解决方案时提供代码片段) 1) 单击后,我需要显示(ID、名称和值)的文本字段 “编辑”按钮用于具有值的行,单击“编辑”按钮后 按钮我需要启用“保存”按
<h:column>
<f:facet name="header">
<h:outputText value="Value" />
</f:facet>
<h:outputText value="#{dataItem.value}" />
<h:inputText id="value" value="#{dataItem.value}" rendered="#{dataItem.value == null}"/>
</h:column>
当我有特定行的数据时,我不会渲染,
这样做是为了一次显示outputText或inputText
发布此类案例的代码可能需要很多时间。我们使用了许多类似的屏幕,所以这里有一些关于psuedocode的提示
BackingBean {
// take a current variable to keep selected row
DataItem current;
// list of dataitems to show in grid
List<DataItem> listOfItems;
// Use ActionListener to set current
editActionListener(ActionEvent e){
current = read via actionevent.getAttribute()
}
// Use save to save the data, reload the table, disable the button
saveAction(){
ManagerBean.save(current);
reload listOfItems;
current = null;
disable save;
}
}
BackingBean{
//获取当前变量以保留选定行
数据项当前;
//要在网格中显示的数据项列表
项目清单;
//使用ActionListener设置当前
editActionListener(ActionEvent e){
当前=通过actionevent.getAttribute()读取
}
//使用“保存”保存数据、重新加载表格、禁用按钮
saveAction(){
ManagerBean.save(当前);
重新加载项目列表;
电流=零;
禁用保存;
}
}
现在,在xhtml中显示来自当前的值:
<table component>
<row>
<h:inputText value="#{backingBean.current.id}" />
<h:inputText value="#{backingBean.current.name}" />
<h:inputText value="#{backingBean.current.value}" />
</row>
<loop across "#{backingBean.listofItems}" with "item" variable>
<row>
<h:inputText value="#{item.id}" />
<h:inputText value="#{item.name}" />
<h:inputText value="#{item.value}" />
<h:commandButton text="Edit"
actionListener="#{backingBean.editActionListener}" />
<h:commandButton text="Save" actionListener="#{backingBean.saveActionListener}"
action="#{backingBean.saveAction}" />
</row>
</endloop>
</table component>