You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Acumatica处理页PXGridColumn如何添加支持输入的文本列

Acumatica处理页网格添加可输入文本列解决方案

核心说明

你遇到的配置Type找不到文本框选项、列只读的问题,本质是对Acumatica网格渲染逻辑的误解:PXGridColumn不需要手动指定Type为文本框,系统会自动根据绑定的DAC字段类型渲染对应输入控件,字符串类型字段默认就会生成可输入文本框,只读问题几乎都来自字段、视图、网格的可编辑配置错误。

分步操作

1. 配置DAC字段可编辑属性

这是最核心的步骤,不管是扩展现有生产单DAC的字段,还是新增自定义非持久化字段,都要确保字段没有只读限制:

// 示例:扩展ProductionOrder DAC新增自定义状态输入字段
public class ProductionOrderExt : PXCacheExtension<ProductionOrder>
{
    #region CustomBatchStatus
    public abstract class customBatchStatus : PX.Data.BQL.BqlString.Field<customBatchStatus> { }
    // 字符串类型对应渲染文本框,PXUIField的Enabled必须设为true
    [PXString(20, IsUnicode = true)]
    [PXUIField(DisplayName = "批量设置状态", Enabled = true)]
    public virtual string CustomBatchStatus { get; set; }
    #endregion
}

如果是复用现有标准字段,需要重写字段属性去掉只读限制:

[PXMergeAttributes(Method = MergeMethod.Merge)]
[PXUIField(DisplayName = "生产状态", Enabled = true)]
protected virtual void ProductionOrder_Status_CacheAttached(PXCache sender) { }

2. 配置页面网格列

ASPX页面中的PXGridColumn只需要绑定正确的DataField即可,不需要额外配置Type,不要加ReadOnly="True"属性:

<PXGrid ID="prodOrderGrid" runat="server" DataSourceID="ds" AllowEdit="True">
  <Columns>
    <!-- 其他原有列 -->
    <PXGridColumn DataField="CustomBatchStatus" Width="160px" />
  </Columns>
</PXGrid>

3. 可编辑性校验

如果配置后还是只读,按以下顺序排查:

  • 确认网格的AllowEdit属性已设为True
  • 确认网格绑定的数据视图没有加[PXReadOnlyView]特性,允许更新操作
  • 排除权限问题:用管理员账号测试,确认当前账号对生产单DAC有编辑权限

批量设置生产单状态场景优化

如果需要批量修改生产单状态,建议额外新增批量操作按钮,读取网格中所有行的输入值后批量更新生产单状态,避免逐行提交的性能问题。


内容的提问来源于stack exchange,提问作者Shaj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 01:27:01