我正在使用 Primefaces 3.5、Jsf 2 并且我有一个数据表,现在我实现了一个类似于 primefaces 展示(singlerowselection)的对话框,它工作正常,但我想编辑对话框中的行。此外,我希望 inputtext 填充数据表单元格中的数据,以便您可以轻松编辑它!(就像行编辑器那样,只是在一个对话框中)不像这样:http://i.stack .imgur.com/J55j0.jpg 水印有效,但它不是选项,因为如果你想编辑它,文本会消失。应该是这样的:http: //i.stack.imgur.com/cAFLo.jpg
那么,有人可以告诉我如何显示和编辑单元格数据吗?
这是xhtml(对话框不在数据表中):
<p:dialog id="dialog" header="Server Detail" widgetVar="serDialog"
resizable="false" showEffect="clip" hideEffect="fold" dynamic="true">
<h:panelGrid id="display" columns="3" cellpadding="4">
<h:outputText value="Data Center Location " />
<p:inputText id="datacenter" value="#{server.dataCenterLocation}"></p:inputText>
<h:outputText value="Identification " />
<h:inputText id="identification" value="#{server.identification}"></h:inputText>
<p:watermark for="identification"
value="#{serverBean.selectedServer.identification}"></p:watermark>
</h:panelGrid>
<p:growl id="growl" showDetail="true" sticky="false" />
<p:commandButton value="Edit Server" action="#{server.onEdit}" update="@form, growl" />
</p:dialog>
bean(name= server) 中的方法(没有 selectedServer(name =serverBean) 和 getter 和 setter):
public void onEdit() throws Exception {
PreparedStatement ps = null;
Connection con = null;
int i = 0;
try {
Server ser = new Server();
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
.newInstance();
con = DriverManager
.getConnection("jdbc:sqlserver://...");
String sql = "UPDATE VAI_Serverlist SET [Data Center Location]= ?,... WHERE Identification='"
+ ser.identification + "'";
ps = con.prepareStatement(sql);
ps.setString(1, ser.dataCenterLocation);
...
i = ps.executeUpdate();
} catch (SQLException e) {
System.out.println(i);
e.printStackTrace();
} finally {
try {
con.close();
ps.close();
} catch (Exception e) {
e.printStackTrace();
}
}
提前致谢!