Hi,
Here you are.
Example View
<%@ Page Language="C#" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (!X.IsAjaxRequest)
{
Store store = this.GridPanel1.GetStore();
store.DataSource = new object[]
{
new
{
test = "test1"
},
new
{
test = "test2"
}
};
store.DataBind();
}
}
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Ext.Net.MVC Example</title>
<script type="text/javascript">
var onSuccess = function (grid, result) {
var store = grid.getStore();
grid.addColumn(Ext.decode(result.column));
store.addField(Ext.decode(result.field), -1, true);
//test
store.loadData([{
test : "test1",
someDataIndex : "new1"
}, {
test : "test2",
someDataIndex : "new2"
}]);
};
</script>
</head>
<body>
<ext:ResourceManager runat="server" />
<ext:GridPanel ID="GridPanel1" runat="server" AutoHeight="true">
<Store>
<ext:Store runat="server">
<Reader>
<ext:JsonReader runat="server">
<Fields>
<ext:RecordField Name="test" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
</Store>
<ColumnModel runat="server">
<Columns>
<ext:Column Header="Test" DataIndex="test" />
</Columns>
</ColumnModel>
</ext:GridPanel>
<ext:Button runat="server" Text="Add column">
<DirectEvents>
<Click
Url="/Test/AddColumn"
Success="onSuccess(#{GridPanel1}, result.result);" />
</DirectEvents>
</ext:Button>
</body>
</html>
Example Controller Action
public ActionResult AddColumn()
{
Column c = new Column()
{
Header = "New",
DataIndex = "someDataIndex"
};
RecordField rf = new RecordField()
{
Name = "someDataIndex"
};
AjaxResult r = new AjaxResult();
r.Result = new
{
column = c.Serialize(),
field = new ClientConfig().Serialize(rf)
};
return r;
}
See the following post for this solution using Ext.NET v2,
http://forums.ext.net/showthread.php...ll=1#post75369