在新页面CSAttributes使用(Use of CSAttributes in new page

2019-09-26 13:52发布

我们有,我们正在寻找使用CS类似属性他们是如何在项目类和非库存项目页面上使用了新的一页

  • 产品类别:属性定义。
  • 非库存项目页面:属性的实现。

:我简单的页面来缩小在ASPX任何可能需要的属性。

在此基础上,我的属性定义页面具有以下要素:

图形:

#region Datamembers
public PXSelect<MDEquipmentType> EquipmentType;

[PXViewName("Attributes")]
public CSAttributeGroupList<MDEquipmentType, MDEquipment> Mapping;
#endregion

ASPX:

<px:PXTabItem Text="Attributes">
            <Template>
                <px:PXGrid ID="grid" runat="server" DataSourceID="ds" Height="150px" Style="z-index: 100;
                    border: 0px;" Width="100%" ActionsPosition="Top" SkinID="Details"  MatrixMode="True">
                    <Levels>
                        <px:PXGridLevel DataMember="Mapping">
                            <RowTemplate>
                                <px:PXSelector CommitChanges="True" ID="edAttributeID" runat="server" DataField="AttributeID" AllowEdit="True" FilterByAllFields="True" />
                            </RowTemplate>
                            <Columns>
                                <px:PXGridColumn DataField="IsActive" AllowNull="False" TextAlign="Center" Type="CheckBox" />
                                <px:PXGridColumn DataField="AttributeID" Width="81px" AutoCallBack="true" LinkCommand="CRAttribute_ViewDetails" />
                                <px:PXGridColumn AllowNull="False" DataField="Description" Width="351px" />
                                <px:PXGridColumn DataField="SortOrder" TextAlign="Right" Width="81px" SortDirection="Ascending" />
                                <px:PXGridColumn AllowNull="False" DataField="Required" TextAlign="Center" Type="CheckBox" />
                                <px:PXGridColumn AllowNull="True" DataField="CSAttribute__IsInternal" TextAlign="Center" Type="CheckBox" />
                                <px:PXGridColumn AllowNull="False" DataField="ControlType" Type="DropDownList" Width="81px" />
                                <px:PXGridColumn AllowNull="True" DataField="DefaultValue" Width="100px" RenderEditorText="False" />
                            </Columns>
                        </px:PXGridLevel>
                    </Levels>
                    <AutoSize Enabled="True" MinHeight="150" />
                </px:PXGrid>
            </Template>
        </px:PXTabItem> 

结果:

到目前为止好,所有记录在数据库中正确的表CSAttributeGroup坚持

现在,问题是当我尝试在数据录入页面应用属性。

这是网页:

当设备类型设置,属性格不填充。

图表定义:

  public class MDEquipmentEntry : PXGraph<MDEquipmentEntry, MDEquipment>
    {
        #region Datamembers
        public PXSelect<MDEquipment> Equipment;

        public CRAttributeList<MDEquipment> Answers;

ASPX:

   <px:PXTabItem Text="Attributes">
        <Template>
            <px:PXGrid ID="PXGridAnswers" runat="server" Caption="Attributes" DataSourceID="ds" SkinID="Inquire" Width="100%" Height="200px" MatrixMode="True">
                <Levels>
                    <px:PXGridLevel DataMember="Answers">
                        <Columns>
                            <px:PXGridColumn DataField="AttributeID" />
                            <px:PXGridColumn DataField="isRequired" TextAlign="Center" Type="CheckBox" Width="80px"/>
                            <px:PXGridColumn DataField="Value" Width="300px" AllowShowHide="False" AllowSort="False" />
                        </Columns>
                        <Layout FormViewHeight="" />
                    </px:PXGridLevel>
                </Levels>
                <AutoSize Enabled="True" MinHeight="200" />
                <ActionBar>
                    <Actions>
                        <Search Enabled="False" />
                    </Actions>
                </ActionBar>
                <Mode AllowAddNew="False" AllowColMoving="False" AllowDelete="False" />
            </px:PXGrid>
        </Template>
    </px:PXTabItem> 

在Nonstock商品页面的属性被插入的物品类别后立即加载。 所以我做了确认的CommitChanges属性添加到我的网页。 还找了一个FieldUpdated事件可能被触发的插入,但不会出现被需要。

什么会从我的代码会丢失?

Answer 1:

实施CRAttributeList取决于被你们班的某处定义的类ID字段。 在初始化时, CRAttributeList将查找在你的场MDEquipment装饰与DAC CRAttributesField属性。

对于InventoryItem DAC,这里是它是如何定义的:

    [CRAttributesField(typeof(InventoryItem.itemClassID))]
    public virtual string[] Attributes { get; set; }

如果系统无法确定当前的类ID,您的属性网格将不会与任何东西填充。



文章来源: Use of CSAttributes in new pages
标签: acumatica