解决X5中一个保存按钮不能同时保存数据问题(多个数据集中其中某个数据集的store-type:simple 时,不能同时保存)
2011-07-26 12:38
986 查看
X5平台bug: 当有两个或多个数据集(以两个为例),主从两数据集的store-type不同时,主数据集的store-type为grid,从数据集的store-type为simple时,平台的保存按钮就不能同时保存主从两个数据集。
解决办法:将平台的(列表、详细)保存按钮替换成之定义trigger(按钮),然后创建一个常量数据集data1添加一个关系canSave(保存),将按钮的ref关联到常量数据集data1的canSave上,之后添加常量数据集canSave的规则,在它的readonly属性上去调用自定义的保存数据函数eval("!canSaveAll()")
<data component="/UI/system/components/data.xbl.xml#data" columns="canSave"
src="" auto-load="true" id="data1" style=";" store-type="simple">
<rows xmlns="">
<row id="xx"/>
</rows>
<rule id="dataRule1" column="canSave" readonly="eval("!canSaveAll()")"/>
</data>
<item id="customBarItem1">
<xforms:trigger id="trigger1" appearance="image" ref="data('data1')/canSave"
src="/UI/PMC/common/images/save.gif" dis-src="/UI/PMC/common/images/un_save.gif"
style="width:23px;">
<xforms:label id="xuiLabel3">保存</xforms:label>
<xforms:action id="action4" ev:event="DOMActivate">
<xforms:script id="xformsScript4">mainActivity.trigger1Click(event)</xforms:script>
</xforms:action>
</xforms:trigger>
</item>
<item id="customBarItem2">
<xforms:trigger id="trigger2" appearance="image" src="/UI/PMC/common/images/save.gif"
dis-src="/UI/PMC/common/images/un_save.gif" style="width:24px;height:22px;"
ref="data('data1')/canSave">
<xforms:label id="xuiLabel4">保存</xforms:label>
<xforms:action id="action3" ev:event="DOMActivate">
<xforms:script id="xformsScript3">mainActivity.trigger2Click(event)</xforms:script>
</xforms:action>
</xforms:trigger>
</item>
代码实现:
function canSaveAll() {
var dataMain = justep.xbl("dataMain");
var dataDetail = justep.xbl("dataDetail");
return (dataMain && dataMain.canSave())
|| (dataDetail && dataDetail.canSave());
}
function saveData() {
var saved = false;
var saveSlave = function() {
if (saved)
return;
saved = true;
var dataDetail = justep.xbl("dataDetail");
if (dataDetail)
dataDetail.saveData();
};
var dataMain = justep.xbl("dataMain");
if (dataMain)
dataMain.saveData(saveSlave);
saveSlave();
}
mainActivity.trigger2Click = function(event) {
saveData();
};
mainActivity.trigger1Click = function(event) {
saveData();
};
解决办法:将平台的(列表、详细)保存按钮替换成之定义trigger(按钮),然后创建一个常量数据集data1添加一个关系canSave(保存),将按钮的ref关联到常量数据集data1的canSave上,之后添加常量数据集canSave的规则,在它的readonly属性上去调用自定义的保存数据函数eval("!canSaveAll()")
<data component="/UI/system/components/data.xbl.xml#data" columns="canSave"
src="" auto-load="true" id="data1" style=";" store-type="simple">
<rows xmlns="">
<row id="xx"/>
</rows>
<rule id="dataRule1" column="canSave" readonly="eval("!canSaveAll()")"/>
</data>
<item id="customBarItem1">
<xforms:trigger id="trigger1" appearance="image" ref="data('data1')/canSave"
src="/UI/PMC/common/images/save.gif" dis-src="/UI/PMC/common/images/un_save.gif"
style="width:23px;">
<xforms:label id="xuiLabel3">保存</xforms:label>
<xforms:action id="action4" ev:event="DOMActivate">
<xforms:script id="xformsScript4">mainActivity.trigger1Click(event)</xforms:script>
</xforms:action>
</xforms:trigger>
</item>
<item id="customBarItem2">
<xforms:trigger id="trigger2" appearance="image" src="/UI/PMC/common/images/save.gif"
dis-src="/UI/PMC/common/images/un_save.gif" style="width:24px;height:22px;"
ref="data('data1')/canSave">
<xforms:label id="xuiLabel4">保存</xforms:label>
<xforms:action id="action3" ev:event="DOMActivate">
<xforms:script id="xformsScript3">mainActivity.trigger2Click(event)</xforms:script>
</xforms:action>
</xforms:trigger>
</item>
代码实现:
function canSaveAll() {
var dataMain = justep.xbl("dataMain");
var dataDetail = justep.xbl("dataDetail");
return (dataMain && dataMain.canSave())
|| (dataDetail && dataDetail.canSave());
}
function saveData() {
var saved = false;
var saveSlave = function() {
if (saved)
return;
saved = true;
var dataDetail = justep.xbl("dataDetail");
if (dataDetail)
dataDetail.saveData();
};
var dataMain = justep.xbl("dataMain");
if (dataMain)
dataMain.saveData(saveSlave);
saveSlave();
}
mainActivity.trigger2Click = function(event) {
saveData();
};
mainActivity.trigger1Click = function(event) {
saveData();
};
相关文章推荐
- webservice(第三天)(包含一个真实项目,读取EXCEL表格中的数据到数据库中,其中涉及真实的隐私数据不能公开数据集)
- android中ListView点击和里边按钮或ImageView点击不能同时生效问题解决
- 实现datagrid的foot中增加一个新增数据行,以解决datagrid不能新增数据的问题
- 解决getHibernateTemplate().save ()不能将数据保存到数据库的问题
- android中ListView点击和里边按钮点击不能同时生效问题解决
- android中ListView点击和里边按钮或ImageView点击不能同时生效问题解决
- android中ListView点击和里边按钮点击不能同时生效问题解决
- 解决“打开Excel文件时会同时打开一个名为Sheet1的未保存空白工作簿”的问题
- 解决getHibernateTemplate().save ()不能将数据保存到数据库的问题
- 解决robotium一个类多个测试不能同时运行的问题
- android中ListView点击和里边按钮或ImageView点击不能同时生效问题解决
- Toast优化,解决频繁点击一个按钮,toast会一直显示,不能立即消失的问题
- 实现datagrid的foot中增加一个新增数据行,以解决datagrid不能新增数据的问题
- 实现datagrid的foot中增加一个新增数据行,以解决datagrid不能新增数据的问题
- (转)android中ListView点击和里边按钮或ImageView点击不能同时生效问题解决
- android中ListView点击和里边按钮或ImageView点击不能同时生效问题解决
- android中ListView点击和里边按钮点击不能同时生效问题解决
- Android 4.4 的权限问题,导致App 裁剪图片不能保存(已解决)
- 在使用Hibernate时,因为一个查询需要更多的表连接而要使用SQL来解决性能问题。然而返回的结果集中包含了没有映射的Entity类中的表字段,在这个SQL中还有使用如何将层次关系的父子结点显示为横行
- 解决discuz与jquery不兼容问题——下拉列表不能用(Uncaught TypeError: Cannot set property 'position' of undefined)