Hello,

I add to a store one record field when I click in button search but the value of this new record field never appears in the grid panel, why?
is there any method to refresh or reconfigure the store?


Could anybody please me please?

Thank you very much.

    

protected void btnSearch_OnClick(object sender, AjaxEventArgs e)

{

IList<NatureType> natureTypes = new List<NatureType>();

if (cmbNature.SelectedIndex >= 0)

{

natureTypes.Add(NatureService.GetNatureType(Convert.ToInt32(cmbNature.SelectedItem.Value)));

}

else

{

natureTypes = NatureService.GetNatureTypes();

}

IList<Agency> agenciesForComposite = GetAgencies(Convert.ToInt32(cmbOrganization.SelectedItem.Value));

int[] agencyList = new int[1] { -1 };

if (agenciesForComposite != null &amp;&amp; agenciesForComposite.Count > 0)

agencyList = agenciesForComposite.Select(x => x.UniqueId).ToArray();

IList<Object> fleetCount = VehiculeService.GetFleetCount(agencyList, natureTypes);

DataTable tableVehicules = new DataTable();

tableVehicules.Columns.Add("UniqueId", typeof(Int32));

tableVehicules.Columns.Add("PurposeType", typeof(String));

tableVehicules.Columns.Add("Category", typeof(String));

ConfigureGridPanel(natureTypes, tableVehicules);



foreach (Object fleetCountRow in fleetCount)

{

Array fleetCountArray = (Array)fleetCountRow;

DataRow newFleetCountRow = tableVehicules.NewRow();

newFleetCountRow["UniqueId"] = tableVehicules.Rows.Count + 1;

newFleetCountRow["PurposeType"] = GetTranslation(((Array)fleetCountArray).GetValue(1).ToString());

newFleetCountRow["Category"] = GetTranslation(((Array)fleetCountArray).GetValue(0).ToString());

newFleetCountRow["TpNatureATVA"] = "20";

tableVehicules.Rows.Add(newFleetCountRow);

}

storeVehicules.DataSource = tableVehicules;

storeVehicules.DataBind();

}



private void ConfigureGridPanel(IList<NatureType> natureTypes, DataTable tableVehicules)

{

 

RecordField recordField = new RecordField();

recordField.Name = "TpNatureATVA";

storeVehicules.Reader[0].Fields.Add(recordField);

tableVehicules.Columns.Add("TpNatureATVA", typeof(String));

Coolite.Ext.Web.Column column = new Column();

column.ColumnID = "TpNatureATVA";

column.Header = "TpNatureATVA";

column.DataIndex = "TpNatureATVA";

column.Width = 80;

column.Align = Alignment.Center;

//column.Renderer.Fn = "renderVehicules";

GridPanel.ColumnModel.Columns.Add(column); 

 

storeVehicules.Reader[0].DataBind();

GridPanel.ColumnModel.Columns[0].Hidden = true;

GridPanel.Reconfigure();

}



<ext:Store runat="server" ID="storeVehicules" GroupField="PurposeType">

<Reader>

<ext:JsonReader ReaderID="UniqueId">

<Fields>

<ext:RecordField Name="UniqueId" />

<ext:RecordField Name="PurposeType" Type="String" />

<ext:RecordField Name="Category" />

</Fields>

</ext:JsonReader>

</Reader>

</ext:Store



<ext:GridPanel DeferRowRender="true" StripeRows="true" Collapsed="false" Header="false" Title="<%$ Resources: GridPanel.Title %>" ID="GridPanel"

runat="server" StoreID="storeVehicules" TrackMouseOver="true" AutoExpandColumn="Category">

<ColumnModel ID="ColumnModel1" runat="server">

<Columns>

<ext:Column ColumnID="PurposeType" Header="<%$ Resources: PurposeType.HeaderText %>"

Sortable="true" DataIndex="PurposeType">

<Renderer Fn="PurposeType" />

</ext:Column>

<ext:Column ColumnID="Category" Header="<%$ Resources: Category.HeaderText %>"

Width="100" Sortable="true" DataIndex="Category">

</ext:Column>



</Columns>

</ColumnModel>

<LoadMask ShowMask="true" />

<View>

<ext:GroupingView ID="GroupingView1" HideGroupedColumn="true" runat="server" ForceFit="true"

StartCollapsed="false" GroupTextTpl='{text} ({[values.rs.length]} {[values.rs.length > 1 ? "items" : "item"]})'>

</ext:GroupingView>

</View>

</ext:GridPanel>
</PRE>