我试图在primefaces Datable中执行行编辑。我的问题是,当我在CellEditor的inputText中键入新值并单击edit(primefaces图标)时,onCellEdit方法被成功地调用,但没有在inputText中选取新值,它选取了最初在DataTable中的值。我做错了什么?我在jsf代码中使用的是PrimeFaces3.5
<h:form id="form1">
<p:growl id="messages" showDetail="true"/>
<p:panel header="Registered Devices" style="min-height: 400px;" id="paneldevices">
<p:dataTable emptyMessage="No Device Registered" editable="true" widgetVar="deviceTable" id="idGrid" value="#{deviceMgdBean.devices}" var="item" >
<p:ajax event="rowEdit" listener="#{deviceMgdBean.onCellEdit()}" update=":form1:messages"/>
<p:ajax event="rowEditCancel" listener="#{deviceMgdBean.onCancel}" update=":form1:messages" />
<p:column headerText="Options" style="width:50px">
<p:rowEditor />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Device_name"/>
</f:facet>
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{item.device_name}"/>
</f:facet>
<f:facet name="input">
<p:inputText value="#{item.device_name}" style="width:80%" />
</f:facet>
</p:cellEditor>
</p:column>
</h:form>
这是我的托管Bean
@ManagedBean
@ViewScoped
public class DeviceMgdBean implements Serializable {
public List<Devices> getDevices()
{
List<Devices> l=getDevdao().getDevices();//devices fetched from database
return l;
}
public void onCellEdit(RowEditEvent event)
{
Devices devo=(Devices) event.getObject();
FacesMessage msg = new FacesMessage("Device Edit","Test:"+devo.getDeviceName());
FacesContext.getCurrentInstance().addMessage(null, msg);
}
public void onCancel(RowEditEvent event)
{
FacesMessage msg = new FacesMessage("Item Cancelled");
FacesContext.getCurrentInstance().addMessage(null, msg);
Devices devo=(Devices) event.getObject();
}
}
class Devices {
private int device_id;
private String device_name;
//getter and setters
}
private List<Devices> l;
public List<Devices> getDevices() {
if(l==null) l=getDevdao().getDevices();//devices fetched from database
return l;
}
问题内容: 我的代码出现了一些问题。 这是我数据库类中的方法 我尝试用我的按钮在这里执行它。 但是我得到这个错误:: 因此,基本上我只需要编写一些快速代码来测试它是否可以这种方式工作,所以不要介意命名。但是由于某种原因它无法正常工作,我尝试不这样做而只执行我在MSSQL中测试过的语句,就可以正常工作。 问题答案: 您的更新声明后有一个迷路者。去掉它。另外,您应始终使用 参数化查询来避免SQL注入。
问题内容: 您可以在外壳程序脚本运行时对其进行编辑,并使更改影响正在运行的脚本吗? 我对csh脚本的具体情况感到好奇,因为我有该批处理运行一系列不同的构建风格并整夜运行。如果在操作过程中发生什么事情,我想加入并添加其他命令,或注释掉未执行的命令。 如果不可能,是否有任何外壳或批处理机制可以使我做到这一点? 当然,我已经尝试过了,但是要知道它是否有效还需要几个小时,而且我对幕后正在发生或未发生的事情
修改f(selector) 里的判断,新增domReady 我们知道在jQuery中还有一种选择器写法 $(function() { }); 在dom加载完毕后马上就执行,这样的方法会比onload更快,所以domReady对于我们来说一定是必不可少的 我们在init方法中要新增以下判断 if(!selector) { return this; } if (typeof selector =
我在JSF项目的中放置了。 选中单元格时,复选框将向右浮动。我知道这是一个css的事情,但我不确定如何修复它。
我在stackoverflow上看到过类似的问题,但无论如何,我无法用这些答案解决我的问题。 我想做的是: 单击JTable中的double on单元格(由于IsCelledTable方法,该单元格可以编辑) 在自定义表中保存单元格的新值以打印此新值 更新我的数据库(SQlite)中的数据 这是我的自定义表模型 . 这是我打印JTable的JPanel:
@html.labelfor(模型=>model.cityid,htmlAttributes:new{@class=“control-label col-MD-2”})@html.editorfor(模型=>model.cityid,new{htmlAttributes=new{@class=“form-control”}})@html.validationmessagefor(模型=>model