Grid复选框控件绑定edit方法时_set参数无法置为true问题求助
问题排查及解决方案
你当前写的edit方法本身逻辑没有语法错误,_set参数未被置为true本质是编辑事件未被系统正常触发,可按照以下顺序排查解决:
常见原因及对应修复方案
- 编辑权限配置错误
系统仅会在控件允许编辑时,才会给edit方法的_set参数传true,需要依次检查三类属性:- Grid列下复选框控件的
AllowEdit属性是否设置为Yes - 绑定的VendInvoiceProdReceiptNotInvoicedView数据源的
AllowEdit属性是否设置为Yes - edit方法绑定的对应数据源字段/方法的
AllowEdit属性是否设置为Yes
- Grid列下复选框控件的
- 视图未配置唯一主键
Dynamics 365 FO/AX的视图作为数据源时,必须配置唯一主键才能被系统识别为可编辑行,否则只会触发edit方法的查询逻辑(_set始终为false):- 打开VendInvoiceProdReceiptNotInvoicedView视图设计,在
Indexes节点下新建唯一索引,加入可以唯一标识一行记录的字段(你代码中用到的VendPackingSlipJourRecId如果全局唯一可直接使用) - 将该索引设置为视图的
PrimaryIndex,同时设置视图的ReplaceKey属性为该索引
- 打开VendInvoiceProdReceiptNotInvoicedView视图设计,在
- edit方法绑定配置错误
- 确保
markNow方法是写在Form的VendInvoiceProdReceiptNotInvoicedView数据源的方法列表下,而非Form根节点或其他控件的方法下 - 复选框的
DataSource属性要选择对应的View数据源,DataMethod属性要正确选中markNow方法
- 确保
- 自定义事件拦截了编辑逻辑
检查是否重写了复选框的clicked方法,如果有重写必须在方法第一行调用super()确保编辑事件正常传递;同时检查数据源的validateField、modifiedField方法是否有返回false阻止编辑的逻辑,按需调整即可。
验证方式
在edit方法第一行加断点,点击复选框后查看调用栈,如果确认系统没有传递_set=true,排查完以上配置项后即可正常触发编辑逻辑。
内容的提问来源于stack exchange,提问作者venkat pasumarti
相关产品推荐
相关产品推荐

