如何刷新 Ext.NET GridPanel 的内容?

Posted

技术标签:

【中文标题】如何刷新 Ext.NET GridPanel 的内容?【英文标题】:How do I perform a refresh of the content of an Ext.NET GridPanel? 【发布时间】:2011-08-02 12:30:46 【问题描述】:

我在页面上有 ext.net GridPanel。 GridPanel 包含一个按钮。单击按钮后如何强制刷新GridPanel?

更新

protected void btnDelete_Click(object sender, DirectEventArgs e)

    var rsm = egrDrivers.SelectionModel.Primary as RowSelectionModel;
    var selectedRowsCollection = rsm.SelectedRows;
    foreach (var key in selectedRowsCollection.Select(row => row.RecordID))
              Facade.Vehicle.DeleteVehicle(Guid.Parse(key));


   //how to force GridPanel refresh?  

【问题讨论】:

【参考方案1】:

假设您为 ext:GridPanel GridPanel1 分配了 数据存储 GridStore1:

<ext:GridPanel ID="GridPanel1" runat="server" Title="My Grid">
    <Store>
        <ext:Store ID="GridStore1" runat="server">
            <Reader>
                <ext:JsonReader>
                    <Fields>
                        <ext:RecordField Name="RecordID" />
                        // ...
                    </Fields>
                </ext:JsonReader>
            </Reader>
        </ext:Store>
    </Store>
    <ColumnModel ID="ColumnModel1" runat="server">
        <Columns>
            <ext:Column Header="Record ID" DataIndex="RecordID" Width="100" />
            // ...
        </Columns>
    </ColumnModel>
    <SelectionModel>
        <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true">
        </ext:RowSelectionModel>
    </SelectionModel>
</ext:GridPanel>

您可以通过编写以下服务器端代码在任何进程之后刷新 GridPanel 的数据:

GridStore1.DataSource = Facade.Vehicle.List(); // your data object List or DataTable
GridStore1.DataBind();

【讨论】:

【参考方案2】:

如果refreshing 表示reloading data,您可以使用grid.store.load()

new Ext.grid.Panel(
  // ...
  store: yourStore,
  // ...
  bbar: [
      xtype: 'button',
      text: 'refresh',
      handler: function(btn)
        var grid = btn.findParentByType('grid');
        grid.store.load();
      
    ],
  // ...
);

【讨论】:

如何在服务器端做到这一点? @Alex,对不起。不知道。我是客户端的人:)

以上是关于如何刷新 Ext.NET GridPanel 的内容?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Ext.Net 中隐藏 Gridpanel GroupCommand

如何在 ext.net 的 gridpanel 的组件列中显示/隐藏项目?

Ext.Net学习笔记14:Ext.Net GridPanel Grouping用法

如何在 GridPanel Ext.net Razor 中按名称获取值

如何从 Ext.net 3 剃须刀引擎列表中填充 GridPanel?

Ext.Net学习笔记13:Ext.Net GridPanel Sorter用法