我在xpages中有一个查看面板,其中显示了针对每个文档的复选框,现在我想知道用户在csjs中选择了多少文档,因此我可以与用户确认要删除多少文档,相同的是警报消息的一部分(例如,您已选择10个文档?)
然后确认后,我将继续使用SSJS删除它们。
谢谢男人
答案 0 :(得分:1)
如果您只想计算它们,则可以使用默认分配给CSS的选择器(除非您明确更改了它)来查看复选框:
function getSelectedCount() {
var checkboxes = dojo.query(".xspCheckBoxViewColumn");
var selectedCount = 0;
for (var i = 0; i < checkboxes.length; i++) {
//check if it is selected
if (checkboxes[i].checked) selectedCount++;
}
return selectedCount;
}
如果您需要文档注释ID,则此查询返回的元素具有带有注释ID的“值”属性:
dojo.query(".xspCheckBoxViewColumn")[0].value // NoteID of first selected element
如果您需要选定ID的数组:
function getSelectedIds() {
var checkboxes = dojo.query(".xspCheckBoxViewColumn");
var selectedIds = new Array();
for (var i = 0; i < checkboxes.length; i++) {
if (checkboxes[i].checked) selectedIds = checkboxes[i].value;
}
return selectedIds ;
}
答案 1 :(得分:0)
我在ssjs中做类似的事情。 sessionScope变量存储选择时的注释ID。计数显示在面板上。您使用一个对话框来确认要删除的文档。 代码示例:
<xp:viewColumn
id="viewColumn1"
value="">
<xp:checkBox
text=""
id="checkBox1">
<xp:this.readonly><![CDATA[#{javascript:var v = rowData.getColumnValue("ChkInDate");
v == ""?false:true;}]]></xp:this.readonly>
<xp:eventHandler
event="onclick"
submit="true"
refreshMode="partial"
refreshId="panelAction">
<xp:this.action><![CDATA[#{javascript:var rv = rowData.getNoteID();
var vector:java.util.Vector = sessionScope.get("Selected");
var idx = vector.indexOf(rv);
if(idx == -1){
vector.addElement(rv);
}else{
vector.removeElementAt(idx)
}
}]]></xp:this.action>
</xp:eventHandler>
</xp:checkBox>
<xp:this.facets>
<xp:viewColumnHeader
xp:key="header"
id="viewColumnHeader1"
style="text-align:center"
value="Select">
</xp:viewColumnHeader>
</xp:this.facets>
</xp:viewColumn>