Jan 18, 2012, 3:43 PM
[CLOSED] Ext.Net GridPanel Filters are lost after use Reconfigure Method
Actualy I'm using Reconfigure() Method to reload ColumnModel and Store to a GridPanel. I used the Render() method before, but data didn't show after reload.
After using Reconfigure() method, this removes the filters that were previously assigned in design. So I read on another forum that could add filters after call this method. Could you tell me why this doesn't show the filters if these are added after.
After using Reconfigure() method, this removes the filters that were previously assigned in design. So I read on another forum that could add filters after call this method. Could you tell me why this doesn't show the filters if these are added after.
private void ConfigureMDEGridPanel(IList<MetricsDataItem> items)
{
if (items == null || ListData== null)
return;
var filterColl = new GridFilterCollection();
var gridFilters = new GridFilters();
var fieldsList = new List<RecordField>
{
new RecordField("Id"),
new RecordField("StartedOn"){SortType=SortTypeMethod.AsDate,SortDir=SortDirection.DESC},
new RecordField("ShiftName"),
new RecordField("EndedOn"),
new RecordField("CreatedBy"),
new RecordField("RelatedIds"),
new RecordField("CreatedOn"),
new RecordField("ShiftCode")
};
var columnsList = new List<ColumnBase>{new Column {
ColumnID = "StartedOn",
Header = "Date",
DataIndex = "StartedOn",
Renderer = {Fn = "Ext.util.Format.dateRenderer('m/d/Y')"},
Align = Alignment.Center,
Width = 85}};
if (ShowShiftColumn)
columnsList.Add(new Column
{
ColumnID = "ShiftName",
Header = "Shift",
DataIndex = "ShiftName",
Align = Alignment.Center,
Width = 120
});
foreach (var objectName in ListData)
{
fieldsList.Add(new RecordField(objectName .Replace(" ", "")));
columnsList.Add(new Column
{
ColumnID = objectName ,
Header = objectName ,
DataIndex = objectName .Replace(" ", ""),
Align = Alignment.Center,
Width = 140
});
filterColl.Add(new NumericFilter { DataIndex = objectName .Replace(" ", "") });
}
columnsList.Add(new Column
{
ColumnID = "CreatedBy",
Header = "User",
DataIndex = "CreatedBy",
Align = Alignment.Center,
Width = 200
});
var commandColumn = new CommandColumn
{
ColumnID = "Commands",
Align = Alignment.Center,
Width = 50
};
commandColumn.Commands.Add(new GridCommand
{
CommandName = "Edit",
Text = "Edit",
IconCls = "icon-edit"
});
commandColumn.Commands.Add(new GridCommand
{
CommandName = "Delete",
Text = "Delete",
IconCls = "icon-remove"
});
columnsList.Add(commandColumn);
GridStore.RemoveFields();
foreach (var recordField in fieldsList)
GridStore.AddField(recordField);
GridPanel.ColumnModel.Columns.Clear();
GridPanel.ColumnModel.Columns.AddRange(columnsList);
GridPanel.ColumnModel.DefaultWidth = 300;
GridPanel.AutoExpandColumn = "Commands";
GridPanel.DataBind();
var dateFilterStartedOn = new DateFilter();
dateFilterStartedOn.DataIndex = "StartedOn";
dateFilterStartedOn.DatePickerOptions.TodayText = "Now";
filterColl.Add(dateFilterStartedOn);
filterColl.Add(new StringFilter { DataIndex = "ShiftName"});
var dateFilterEndedOn = new DateFilter();
dateFilterEndedOn.DataIndex = "EndedOn";
dateFilterEndedOn.DatePickerOptions.TodayText = "Now";
filterColl.Add(dateFilterEndedOn);
filterColl.Add(new StringFilter { DataIndex = "CreatedBy" });
filterColl.Add(new StringFilter { DataIndex = "RelatedIds" });
var dateFilterCreatedOn = new DateFilter();
dateFilterCreatedOn.DataIndex = "CreatedOn";
dateFilterCreatedOn.DatePickerOptions.TodayText = "Now";
filterColl.Add(dateFilterCreatedOn);
filterColl.Add(new StringFilter { DataIndex = "ShiftCode" });
if (ExtNet.IsAjaxRequest)
{
GridPanel.Reconfigure(GridStore.ClientID, GridPanel.ColumnModel);
GridPanel.RegisterColumnPlugins();
GridPanel.ColumnModel.RegisterCommandStyleRules();
gridFilters.ID = "GridPanelFilters";
gridFilters.Local = true;
gridFilters.Filters.AddRange(filterColl);
GridPanel.Plugins.Add(gridFilters);
}
}
Last edited by Daniil; Jan 31, 2012 at 6:12 PM.
Reason: [CLOSED]