插件动态修改列表的列标题正确方法
有事需要修改列表的某一列的标题。
比如:标准产品中的流程管理中心待办任务列表,把列名为耗时时长(分钟)和超时时长(分钟)改成耗时时长(小时)和超时时时长(小时)
正确做法应该是先在列表加载的时候触发自定义事件
public override void AfterBindData(EventArgs e) { base.AfterBindData(e); (this.View as Kingdee.BOS.Web.List.ListView).FireClientCustomEvents("FList", "UpdateTitles", 100, null); }
然后再在自定义事件中发送修改标题的数据包:
public override void CustomEvents(Core.DynamicForm.PlugIn.Args.CustomEventsArgs e) { base.CustomEvents(e); if (e.EventName == "UpdateTitles") { //修改列表标题 Kingdee.BOS.JSON.JSONArray jarray = new JSON.JSONArray(); Kingdee.BOS.JSON.JSONObject jobConsuming = new Kingdee.BOS.JSON.JSONObject(); jobConsuming["key"] = "FCONSUMING"; jobConsuming["header"] = Kingdee.BOS.Resource.ResManager.LoadKDString("耗时时长(小时)", "002406030032018", Kingdee.BOS.Resource.SubSystemType.BOS); Kingdee.BOS.JSON.JSONObject jobTimeOut = new Kingdee.BOS.JSON.JSONObject(); jobTimeOut["key"] = "FTIMEOUT"; jobTimeOut["header"] = Kingdee.BOS.Resource.ResManager.LoadKDString("超时时长(小时)", "002406030032019", Kingdee.BOS.Resource.SubSystemType.BOS); jarray.Add(jobConsuming); jarray.Add(jobTimeOut); this.View.GetControl("FList").InvokeControlMethod("UpdateFieldStates", jarray); } }
注意:不要直接在AfterBindData方法中发送修改标题的数据包,因为H5端是先要完成列表初始化之后,才能进一步修改列表,如果同时发送修改标题的数据包到前端,H5端将不起效果。所以要异步另起一个事件去发送修改标题的数据包。
插件动态修改列表的列标题正确方法
有事需要修改列表的某一列的标题。比如:标准产品中的流程管理中心待办任务列表,把列名为耗时时长(分钟)和超时时长(分钟)改成耗时时长...
点击下载文档
上一篇:二开案例.分组.添加分组下一篇:WebAPI日志记录
本文2024-09-23 04:20:47发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-164711.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章