XPages 扩展库数据视图控件确认复选框选择的计数
XPages Extension Library Data View Control Confirm Count of Checkbox selection
我有一个带数据视图控件的 xpage,它启用了显示复选框和显示 header 复选框。我希望能够在用户单击提交按钮时向他们提供包含 selected 文档计数的确认信息。
例子
"Are you sure you want to submit x number of documents?"
我的确认操作returns 0 不管我有多少文件select。我做错了什么?
<xp:confirm>
<xp:this.message><![CDATA[#{javascript:var dataView1:com.ibm.xsp.extlib.component.data.UIDataView = getComponent("dataView1");
var val = dataView1.getSelectedIds();
var len = val.length;
return "Are you sure you want to submit " + len + " number of documents?";
}]]></xp:this.message>
</xp:confirm>
您 运行 遇到的直接问题是确认消息很可能是在第一次呈现按钮时计算的 - 也就是说,当没有检查任何文档时。
但除此之外,getSelectedIds
方法也很棘手:所选文档在每次请求后都会被清除,因此向服务器发出请求以获取所选 ID 计数的内容也会具有清除选择的副作用。
这里的方法可能是用这样的方法检查 client-side:
<xp:eventHandler ...>
<!-- other action stuff here -->
<xp:this.script><![CDATA[
var count = dojo.query("tbody input[type='checkbox']:checked", dojo.byId("#{id:yourDataViewId}")).length;
return XSP.confirm("Are you sure you want to submit " + count + " document" + (count == 1 ? "" : "s") + "?");
]]></xp:this.script>
</xp:eventHandler>
那里的 Dojo 查询将搜索数据视图 body 部分内所有选中的复选框(排除 header 复选框),仅限于您想要的特定数据视图搜索。 XSP.confirm
client-side 方法与 <xp:confirm/>
简单操作的思想相同,如果用户拒绝,从中返回值将取消提交。
我有一个带数据视图控件的 xpage,它启用了显示复选框和显示 header 复选框。我希望能够在用户单击提交按钮时向他们提供包含 selected 文档计数的确认信息。
例子 "Are you sure you want to submit x number of documents?"
我的确认操作returns 0 不管我有多少文件select。我做错了什么?
<xp:confirm>
<xp:this.message><![CDATA[#{javascript:var dataView1:com.ibm.xsp.extlib.component.data.UIDataView = getComponent("dataView1");
var val = dataView1.getSelectedIds();
var len = val.length;
return "Are you sure you want to submit " + len + " number of documents?";
}]]></xp:this.message>
</xp:confirm>
您 运行 遇到的直接问题是确认消息很可能是在第一次呈现按钮时计算的 - 也就是说,当没有检查任何文档时。
但除此之外,getSelectedIds
方法也很棘手:所选文档在每次请求后都会被清除,因此向服务器发出请求以获取所选 ID 计数的内容也会具有清除选择的副作用。
这里的方法可能是用这样的方法检查 client-side:
<xp:eventHandler ...>
<!-- other action stuff here -->
<xp:this.script><![CDATA[
var count = dojo.query("tbody input[type='checkbox']:checked", dojo.byId("#{id:yourDataViewId}")).length;
return XSP.confirm("Are you sure you want to submit " + count + " document" + (count == 1 ? "" : "s") + "?");
]]></xp:this.script>
</xp:eventHandler>
那里的 Dojo 查询将搜索数据视图 body 部分内所有选中的复选框(排除 header 复选框),仅限于您想要的特定数据视图搜索。 XSP.confirm
client-side 方法与 <xp:confirm/>
简单操作的思想相同,如果用户拒绝,从中返回值将取消提交。