【问题标题】:Master - Detail Gridview column hiding DevexpressMaster - Detail Gridview 列隐藏 Devexpress
【发布时间】:2016-10-26 10:31:32
【问题描述】:

我有多个父子网格视图。问题是父gridview 列名称是成本($),当我展开子gridview 并在最小化子gridview(Devexpress)时将其取回时,($)符号隐藏。父子网格视图存在于 AspxCallbackPanel 和 PopupControl 中。

<dx:ASPxCallbackPanel ID="cbpCartDetails" runat="server" 
        OnCallback="cbpCartDetails_Callback" ClientInstanceName="cbpCartDetails">
    <ClientSideEvents EndCallback="cbpCartDetails_EndCallBack" />
    <PanelCollection>
    <dx:PanelContent ID="pnlCartDetails">
        <dx:ASPxPopupControl ClientInstanceName="popCartDetails" Width="600px" 
            Height="250px" CloseAction="CloseButton" MaxWidth="800px" MaxHeight="800px" 
            MinHeight="150px" MinWidth="150px" ID="popCartDetails"
            HeaderStyle-ForeColor="White" HeaderStyle-Font-Bold="true"
            runat="server" EnableViewState="false" PopupHorizontalAlign="WindowCenter" 
            PopupVerticalAlign="WindowCenter" EnableHierarchyRecreation="false" 
            Modal="true">
            <ContentCollection>
                <dx:PopupControlContentControl ID="PopupControlContentControl2" 
                                               runat="server">

                    <dx:ASPxGridView ID="grdBuildingCartEst" Width="100%" 
                                     Theme="SoftOrange" KeyFieldName="CarttypeId"
                                     ClientInstanceName="grdBuildingCartEst">
                        <Columns>
                            <dx:GridViewDataTextColumn FieldName="CartType" />
                            <dx:GridViewDataTextColumn FieldName="NumberOfCart" />
                            <dx:GridViewDataTextColumn FieldName="Cost" />
                        </Columns>

                        <Templates>
                            <DetailRow>
                                <dx:ASPxGridView ID="grdFloorsCartEst" 
                                        Width="100%" 
                                        Theme="SoftOrange" 
                                        KeyFieldName="CarttypeId" 
                                        OnInit="grdFloorsCartEst_Init" 
                                        OnBeforePerformDataSelect=
                                           "grdFloorsCartEst_BeforePerformDataSelect" 
                                        ClientInstanceName="grdFloorsCartEst">
                                    <Columns>
                                        <dx:GridViewDataTextColumn 
                                            FieldName="CartSize" />
                                        <dx:GridViewDataTextColumn 
                                            FieldName="NumberOfCart" />
                                        <dx:GridViewDataTextColumn 
                                            FieldName="Cost" />
                                    </Columns>    
                                </dx:ASPxGridView>
                            </DetailRow>
                        </Templates>

                        <SettingsDetail ShowDetailRow="true" />

                    </dx:ASPxGridView>                   
                </dx:PopupControlContentControl>
            </ContentCollection>
        </dx:ASPxPopupControl>
    </dx:PanelContent>
</PanelCollection>

屏幕截图 1 https://i.stack.imgur.com/Fb1QX.png

屏幕截图 2(错误) https://i.stack.imgur.com/AghdG.png

【问题讨论】:

    标签: devexpress master-detail aspxgridview


    【解决方案1】:

    注意,在您发布的代码中,主网格列没有“Cost ($)”字符串,只有 FieldName="Cost"。在 Page_Load 或其他一些事件期间,“成本 ($)”很可能被设置为代码隐藏的列标题。

    当您展开子网格时,会发生回调,并且您设置成本 ($) 的代码隐藏处的事件代码不会执行。因此,您需要确保在子网格展开回调期间将主网格的列标题设置为“成本($)”。为 100% 确定,请将页面/控件的代码隐藏部分发布/附加到问题的文本中。

    【讨论】:

    • 实际上符号($)来自xml文件。
    • @mohamedsami 因此您需要确保在子网格展开回调时更新主网格列标题。您可能需要也可能不需要该初始 xml 文件。它可以在回调事件处理程序中完成,例如:grdBuildingCartEst.Columns("Cost").Caption = "Cost ($)";
    猜你喜欢
    • 2018-12-23
    • 2012-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-07
    相关资源
    最近更新 更多