Hello, majestic!
Example
<%@ 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)
{
this.GridPanel1.Store.Primary.DataSource = new object[]
{
new object[] { "3m Co" },
new object[] { "Alcoa Inc" },
new object[] { "Altria Group Inc" }
};
this.GridPanel1.Store.Primary.DataBind();
}
}
[DirectMethod]
public object GetNewRowValues(string rowIndex)
{
X.Msg.Alert("Hello from server!", "You can pass new values of row #" + rowIndex + " to client-side").Show();
return new object[] { rowIndex, "New company " + rowIndex };
}
</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 Example</title>
<script type="text/javascript">
var commandHandler = function(command, record, index) {
Ext.net.DirectMethods.GetNewRowValues(index, {
success: function(result) {
GridPanel1.getStore().getAt(result[0]).set('company', result[1]);
},
failure: function(result) {
Ext.Msg.alert('Failure', 'Error occurred during refreshing row...' + result);
}
});
}
</script>
</head>
<body>
<form runat="server">
<ext:ResourceManager runat="server" />
<ext:GridPanel ID="GridPanel1" runat="server" AutoHeight="true">
<Store>
<ext:Store runat="server">
<Reader>
<ext:ArrayReader>
<Fields>
<ext:RecordField Name="company" />
</Fields>
</ext:ArrayReader>
</Reader>
</ext:Store>
</Store>
<ColumnModel runat="server">
<Columns>
<ext:Column DataIndex="company" Header="Company" />
<ext:CommandColumn>
<Commands>
<ext:GridCommand Icon="Accept" CommandName="refresh" />
</Commands>
</ext:CommandColumn>
</Columns>
</ColumnModel>
<Listeners>
<Command Fn="commandHandler" />
</Listeners>
</ext:GridPanel>
</form>
</body>
</html>