(分享)分录表格动态设置单元格的编辑器类型和过滤条件
金蝶云社区-Da_ZJean
Da_ZJean
0人赞赏了该文章 2,256次浏览 未经作者许可,禁止转载编辑于2015年09月23日 15:14:51

动态设置单元格的编辑器类型 在实际业务逻辑中,可能会有这样的一个需求:动态设置单元格的编辑器类型和过滤条件,每一行的状态不一样,某个列单元格编辑器的类型也不一样,或者同一个编辑器可选项也不一样; 实现思路:(1)在某个单元格值被保存之后,通过当前单元格值类型,设置当前行某个单元格的“单元格配置信息(2)保持完整性,初始化分录表格的时候通过表格行被插入后事件初始化单元格配置信息。 代码如下:1,单元格值被保存之后:editCellsaveAfterEvent:function(rowid,cellname,value,iRow,Col,oldValue){
if(cellname!="property"){
return;
}
$("#editGrid").wafGrid("unLockCell",rowid,"compareType");//业务逻辑
$("#editGrid").wafGrid("unLockCell",rowid,"filterItem");//业务逻辑
if(value=="bizDate"){//通过行属性值设置为日期控件
var options={
formatter:"datepicker",
edittype:"datepicker",
editoptions:{
datepickerjson:{
dateFormat: "yy-mm-dd",
changeYear:true,
changeMonth:true
}
}
};
waf("#editGrid").wafGrid("changeCellConfig",rowid,"compareValue",options);
waf("#editGrid").wafGrid("setCell",rowid,"compareValue","",null,null,true,true);
$("#editGrid").wafGrid("setCell",rowid,"isDynamic",false);
$("#editGrid").wafGrid("setCell",rowid,"filterItem","and");
$("#editGrid").wafGrid("lockCell",rowid,"filterItem");
}
else if(value=="org.id"){//通过行属性值设置为f7控件
var options={
formatter:"f7",
edittype:"f7",
editoptions:{
subWidgetName: "wafPromptStandard",
isMulti:true,
f7Json:{
displayFormat:"{name}"
},
subTagJson:{
breakLine: false,
isMulti:true,
query:"com.kingdee.eas.base.ssc.app.OrgQuery"
}
}
};
waf("#editGrid").wafGrid("changeCellConfig",rowid,"compareValue",options);
waf("#editGrid").wafGrid("setCell",rowid,"compareValue","",null,null,true,true);
$("#editGrid").wafGrid("setCell",rowid,"isDynamic",false);
$("#editGrid").wafGrid("setCell",rowid,"compareType","=");
$("#editGrid").wafGrid("lockCell",rowid,"compareType");
}
else {
var editor = _self.getCompareValueEditor(value);//通过行属性值设置为指定编辑器
waf("#editGrid").wafGrid("changeCellConfig",rowid,"compareValue", {edittype:editor});
waf("#editGrid").wafGrid("setCell",rowid,"compareValue","",null,null,true,true);
$("#editGrid").wafGrid("setCell",rowid,"isDynamic",true);
$("#editGrid").wafGrid("setCell",rowid,"compareType","=");
}
}
2,行插入后初始化:afterInserRowEvent:function(rowid,rowdata,rowelem){if(rowdata&&rowdata.property=="bizDate"){//通过行属性值设置为日期控件
var options={
formatter:"datepicker",
edittype:"datepicker",
editoptions:{
datepickerjson:{
dateFormat: "yy-mm-dd",
changeYear:true,
changeMonth:true
}
}
};
waf("#editGrid").wafGrid("changeCellConfig",rowid,"compareValue",options);
$("#editGrid").wafGrid("setCell",rowid,"filterItem","and");
$("#editGrid").wafGrid("lockCell",rowid,"filterItem");

}
else if(rowdata&&rowdata.property=="org.id"){//通过行属性值设置为f7控件
var options={
formatter:"f7",
edittype:"f7",
editoptions:{
subWidgetName: "wafPromptStandard",
isMulti:true,
f7Json:{
displayFormat:"{name}"
},
subTagJson:{
breakLine: false,
isMulti:true,
query:"com.kingdee.eas.base.ssc.app.OrgQuery"
}
}
};
waf("#editGrid").wafGrid("changeCellConfig",rowid,"compareValue",options);
$("#editGrid").wafGrid("setCell",rowid,"compareType","=");
$("#editGrid").wafGrid("lockCell",rowid,"compareType");
}
else{
var editor = _self.getCompareValueEditor(rowdata.property);//通过行属性值设置为指定编辑器
waf("#editGrid").wafGrid("changeCellConfig",rowid,"compareValue", {edittype:editor});
}
}**样例中代码的其他业务逻辑自行调整,为了使代码复用,可以把这两个方法的代码抽出来为独立为一个function去处理,增加代码美观性。
[i][i][i]

[/i][/i][/i][i][i][i] [/i][/i][/i]

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0