Как выполнить обновление содержимого Ext.NET GridPanel? - PullRequest
1 голос
/ 02 августа 2011

У меня есть ext.net GridPanel на странице. GridPanel содержит кнопку. Как заставить GridPanel обновить после нажатия кнопки?

UPDATE

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?  
}

Ответы [ 2 ]

2 голосов
/ 06 августа 2011

Предположим, у вас есть хранилище данных GridStore1, назначенное для ext: GridPanel GridPanel1:

<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();
1 голос
/ 02 августа 2011

Если 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();
      }
    }],
  // ...
});
...