【问题标题】:Master-Detail Gridview Devexpress主从网格视图 Devexpress
【发布时间】:2017-02-22 03:52:28
【问题描述】:

我有一个主网格和详细网格,详细网格允许我更新和删除,但它不刷新。如果我更新两次或删除两次它正在删除,否则当我展开主网格时,更新的数据将显示在详细信息网格中。我在这里使用 CallBackPanel。如何刷新详细信息网格?

<dx:ASPxCallbackPanel runat="server" ID="CallbackPanel"
 ClientInstanceName="CallbackPanel" OnCallback="CallbackPanel_Callback">

    <PanelCollection>

        <dx:PanelContent ID="PanelContent3" runat="server">

            <dx:ASPxGridView ID="grdMasterBuilding"
                ClientInstanceName="grdMasterBuilding" 
                runat="server" KeyFieldName="BuildingId" AutoGenerateColumns="False">

                <Columns>
                    <dx:GridViewDataTextColumn 
                        FieldName="Name" Caption="Building Name"/>

                    <dx:GridViewDataTextColumn                             
                        FieldName="Description" Caption="Building Description">
                </Columns>

                <Templates>
                    <DetailRow>

                        <dx:ASPxGridView ID="grdDetailBuilding" 
                            ClientInstanceName="grdDetailBuilding" runat="server" 
                            KeyFieldName="FloorId" AutoGenerateColumns="False"

                            <Columns>
                                <dx:GridViewDataTextColumn   
                                    FieldName="FloorCode" Caption="Floor Code">
                                <dx:GridViewDataTextColumn> 

                                <dx:GridViewDataTextColumn 
                                    FieldName="FloorLength" Caption="Floor Width" />
                                </dx:GridViewDataTextColumn>

                                <dx:GridViewDataTextColumn 
                                    FieldName="FloorHeight" Caption="Floor" />
                                </dx:GridViewDataTextColumn>

                                <dx:GridViewDataComboBoxColumn
                                    FieldName="FloorType" Caption="Floor Type" />
                                </dx:GridViewDataComboBoxColumn>

                                <dx:GridViewDataComboBoxColumn
                                    FieldName="DeliveryOption" VisibleIndex="9" 
                                    Caption="Delivery Option" />
                                </dx:GridViewDataComboBoxColumn>

                                <dx:GridViewDataTextColumn
                                    FieldName="NumbersOfUnits" Caption="No Of Units"
                                </dx:GridViewDataTextColumn>

                                <dx:GridViewDataTextColumn
                                    FieldName="SquareFeet" Caption="Square Feet" 
                                </dx:GridViewDataTextColumn>        
                            </Columns> 

                        </dx:ASPxGridView>

                    </DetailRow>
                </Templates>

                <SettingsDetail ShowDetailRow="true" />

            </dx:ASPxGridView>
        </dx:PanelContent>
    </PanelCollection>

【问题讨论】:

  • 添加太多代码,不会吸引。具体
  • 不是我的专长。但你可以开始赏金。这会对你有所帮助。
  • 请查看这个solution它解决了您正在寻找的问题
  • 注意你的主网格FieldName="Description"最后缺少/>,细节网格定义行最后也缺少>。

标签: c# asp.net devexpress master-detail


【解决方案1】:

请参阅此示例:https://www.devexpress.com/Support/Center/Example/Details/E3578

基本上这个想法是您需要处理详细网格的 EndCallback 客户端事件并使用 ClientInstanceName 更新主网格: grdMasterBuilding.Refresh() 。

因此,您必须在 元素之前将以下行添加到详细信息网格标记中:

<ClientSideEvents EndCallback="OnEndCallback" BeginCallback="OnBeginCallback"/>

然后添加这些 JS OnBeginCallback 和 OnEndCallback 方法,就像在提到的示例中一样,仅在 OnEndCallback 中您将使用您的主网格 ClientInstanceName 来刷新它。

function OnEndCallback(s, e) {
   if ((command == "ADDNEWROW" || command == "UPDATEEDIT") && !s.isError) {
      grdMasterBuilding.Refresh();
   }
}

如果您不需要在子编辑/删除时更新主网格,请尝试使用 grdDetailBuilding.Refresh() 以相同的方式仅刷新子网格。请注意,该示例在 OnBeginCallback 期间保存操作命令名称,然后检查该命令是 ADDNEWROW 还是 UPDATEEDIT。您可能需要为删除操作添加检查。我不确定是否会调用 UPDATEEDIT 来删除行,也许有一个单独的命令。您可以通过使用浏览器开发工具并在 OnBeginCallback 中的断点处停止来了解这一点。

HTH

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多