如何刷新 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 中按名称获取值