插件动态填充下拉框
# 《每天一点点》 ------Meutopia
## 有没有遇到这样的需求,用户选择不同单据类型,然后下拉框展示不同的值,下面的方法解答你
// 如果是使用单据类型触发下拉列表的填充动作时,此事件不需要执行,此DataChanged事件的代码可整段注释掉,因为单据类型切换会引发整个页面的重新加载,需要在AfterBindData事件中填充下拉列表
// 如果是使用非单据类型字段触发下拉列表的填充动作时,此事件需要执行,AfterBindData事件中不需要执行,对应代码块可以注释掉。
// 获取元数据中设计的等级的枚举项集合
var levelEnumObjects = (DynamicObjectCollection)((ComboField)this.View.BillBusinessInfo.GetField("F_PAEZ_Combo")).EnumObject["Items"];
var enumList = new List<EnumItem>();
// 获取单据类型的内码
var billTypeId = string.Empty;
var billTypeObj = this.Model.GetValue("FBillTypeID") as DynamicObject;
if (billTypeObj != null)
{
billTypeId = billTypeObj[0].ToString();
}
if (billTypeId == "6d01d059713d42a28bb976c90a121142") // 标准委外订单
{
// 当单据类型是【标准委外订单】时,给下拉列表填充A,B两个选项
var enumObjects = levelEnumObjects.Where(o => Convert.ToInt32(o["Value"]) < 2).Select(o => (EnumItem)o).ToArray();
enumList.AddRange(enumObjects);
}
else if (billTypeId == "b8df755fd92b4c2baedef2439c29f793") // 直运采购订单
{ // 当单据类型是【直运采购订单】时,给下拉列表填充A,B,C,D两个选项
var enumObjects = levelEnumObjects.Where(o => Convert.ToInt32(o["Value"]) < 4).Select(o => (EnumItem)o).ToArray(); enumList.AddRange(enumObjects);
}
else
{ // 其它情况,给下拉列表填充E,F两个选项
var enumObjects = levelEnumObjects.Where(o => Convert.ToInt32(o["Value"]) > 3).Select(o => (EnumItem)o).ToArray(); enumList.AddRange(enumObjects);
}
插件动态填充下拉框
# 《每天一点点》 ------Meutopia## 有没有遇到这样的需求,用户选择不同单据类型,然后下拉框展示不同的值,下面的方法解答...
点击下载文档
本文2024-09-16 17:20:53发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-15123.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章