Hi,
Please see the following sample (update from SVN first)
<%@ Page Language="C#" %>
<%@ Register Assembly="Coolite.Ext.Web" Namespace="Coolite.Ext.Web" TagPrefix="ext" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
private void BuildSet1()
{
if (Ext.IsAjaxRequest)
{
this.Store1.RemoveFields();
this.Store1.AddField(new RecordField("StringField"));
this.Store1.AddField(new RecordField("IntField", RecordFieldType.Int));
}
else
{
this.Store1.Reader.Reader.Fields.Add(new RecordField("StringField"));
this.Store1.Reader.Reader.Fields.Add(new RecordField("IntField", RecordFieldType.Int));
}
this.Store1.DataSource = new object[]
{
new object[] {"Set1_1", 1},
new object[] {"Set1_2", 2},
new object[] {"Set1_3", 3}
};
this.Store1.DataBind();
this.GridPanel1.ColumnModel.Columns.Add(new Column{DataIndex = "StringField", Header = "String"});
this.GridPanel1.ColumnModel.Columns.Add(new Column { DataIndex = "IntField", Header = "Int" });
if(Ext.IsAjaxRequest)
{
this.GridPanel1.Reconfigure();
}
}
private void BuildSet2()
{
if (Ext.IsAjaxRequest)
{
this.Store1.RemoveFields();
this.Store1.AddField(new RecordField("IntField1", RecordFieldType.Int));
this.Store1.AddField(new RecordField("StringField"));
this.Store1.AddField(new RecordField("IntField2", RecordFieldType.Int));
}
else
{
this.Store1.Reader.Reader.Fields.Add(new RecordField("IntField1", RecordFieldType.Int));
this.Store1.Reader.Reader.Fields.Add(new RecordField("StringField"));
this.Store1.Reader.Reader.Fields.Add(new RecordField("IntField2", RecordFieldType.Int));
}
this.Store1.DataSource = new object[]
{
new object[] {1, "Set2_1", 1},
new object[] {2, "Set2_2", 2},
new object[] {3, "Set2_3", 3}
};
this.Store1.DataBind();
this.GridPanel1.ColumnModel.Columns.Add(new Column { DataIndex = "IntField1", Header = "Int1" });
this.GridPanel1.ColumnModel.Columns.Add(new Column { DataIndex = "StringField", Header = "String" });
this.GridPanel1.ColumnModel.Columns.Add(new Column { DataIndex = "IntField2", Header = "Int2" });
if (Ext.IsAjaxRequest)
{
this.GridPanel1.Reconfigure();
}
}
protected void Page_Load(object sender, EventArgs e)
{
if(!Ext.IsAjaxRequest)
{
this.BuildSet1();
}
}
protected void LoadSet1(object sender, AjaxEventArgs e)
{
this.BuildSet1();
}
protected void LoadSet2(object sender, AjaxEventArgs e)
{
this.BuildSet2();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<ext:ScriptManager ID="ScriptManager1" runat="server" />
<ext:Store ID="Store1" runat="server">
<Reader>
<ext:ArrayReader>
</ext:ArrayReader>
</Reader>
</ext:Store>
<ext:GridPanel
ID="GridPanel1"
runat="server"
StoreID="Store1"
Title="Grid"
Width="600"
Height="350">
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true" />
</SelectionModel>
<Buttons>
<ext:Button runat="server" Text="Load Set1">
<AjaxEvents>
<Click OnEvent="LoadSet1"></Click>
</AjaxEvents>
</ext:Button>
<ext:Button runat="server" Text="Load Set2">
<AjaxEvents>
<Click OnEvent="LoadSet2"></Click>
</AjaxEvents>
</ext:Button>
</Buttons>
</ext:GridPanel>
</form>
</body>
</html>