如果你设计的DataTable每一份文档都可以编辑,怎样一次性保存所有的文档呢
1. 你可以在每一个字段光标离开后,通过Ajax,调用代理将值保存进去
2. 其实还有一种方法,就是通过SSJS就可以很简单的实现.当点击Save按扭时,用JS调用第一个按钮的Click方法,然后在第一个按钮的OnComplete事件中再调用下一个按钮的Click,接着是第三个,第四个.... (不用在Save中一个一个去调用那些按钮的Click事件,试过是不行的)
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:panel id="p1"><xp:dataTable rows="30" id="dataTable1" style="width:50%" var="rowDocument" indexVar="lineIndex">
<xp:this.value><![CDATA[#{try{
var vw:NotesView = database.getView("QuestionsProfileByTopicAlias");
return vw.getAllDocumentsByKey("CCV3")
var doc:NotesDocument = null
var ret = ""
doc = vw.getFirstDocument()
while(doc){
ret += ";" + doc.getUniversalID()
doc = vw.getNextDocument(doc)
}
return @Explode(ret,";")
}catch(e){
print(e.toString())
}
}]]></xp:this.value>
<xp:column id="column2"><xp:this.facets>
<xp:span xp:key="header">a</xp:span></xp:this.facets>
<xp:inputText id="inputText1" value="#{rowDocument.Title}"></xp:inputText>
</xp:column>
<xp:column id="column1"><xp:this.facets>
<xp:span xp:key="header">a</xp:span></xp:this.facets>
<xp:inputText id="inputText2"></xp:inputText>
</xp:column>
<xp:column id="column3"><xp:this.facets>
<xp:span xp:key="header">a</xp:span></xp:this.facets>
<xp:button value="Label" id="button1">
<xp:eventHandler event=" submit="true"
refreshMode="partial" refreshId="P2">
<xp:this.action><![CDATA[#{var doc:NotesDocument = rowDocument;
doc.save();
//print(doc.getItemValueString("Title"))}]]></xp:this.action>
<xp:this.onComplete><![CDATA[
var strId = "#{id:button1}";
var vId = strId.split(":");
vId[3] = (parseInt(vId[3])+1).toString();
strId = vId.join(":");
if(document.getElementById(strId)){
document.getElementById(strId).click()
}
]]></xp:this.onComplete>
</xp:eventHandler></xp:button></xp:column>
</xp:dataTable></xp:panel>
<xp:br></xp:br>
<xp:button value="save" id="button2">
<xp:eventHandler event=" submit="false">
<xp:this.script><![CDATA[//alert(document.getElementById("view:_id1:dataTable1:0:column3:button1"))
//document.getElementById("#{id:button3}").click();
document.getElementById("view:_id1:dataTable1:0:column3:button1").click()]]></xp:this.script>
</xp:eventHandler></xp:button>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:panel id="P2"></xp:panel>
<xp:br></xp:br></xp:view>
转载于:https://blog.51cto.com/subform/1103038