Dec 14, 2012, 7:55 AM
PropertyGrid Populate from JSonReader
Hi,
I have a PopulateGrid loaded as PartialView
Upon Load i have set the Store to AutoLoad
i am using JsonReader and i see on code-behind that the call arrives,
problem is that the grid is not populated
what am i missing here
here is my grid ascx:
i tried working with a simple grid, but i am getting an error .
oh, one more thing:
the grid is loaded as part of an AsyncTreeNode Selection.
I have a PopulateGrid loaded as PartialView
Upon Load i have set the Store to AutoLoad
i am using JsonReader and i see on code-behind that the call arrives,
problem is that the grid is not populated
what am i missing here
here is my grid ascx:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl"%>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (ViewData["nodeid"] != null)
{
// dsProperties.DataBind();
//this.nodePropertiesProxy.ResourceManager.regis(string.Format("nodePropertiesFN({0},{1},{2});", ViewData["nodeid"], ViewData["accessid"], ViewData["winmethodid"]));
}
}
void dsProperties_Load(object sender, EventArgs e)
{
}
</script>
<script type="text/javascript">
//alert('js');
//nodeProperties(1, 22, 24);
var nodePropertiesFN = function (nodeDetails, access, winmethod) {
debugger;
//alert("inside nodeProperties");
if (Ext.isEmpty(nodeDetails, false)) {
return;
}
dsProperties.load({ params: { nodeId: nodeDetails, accessid: access, winmethodid: winmethod} });
};
</script>
<ext:ResourceManagerProxy ID="nodePropertiesProxy" runat="server" >
</ext:ResourceManagerProxy>
<ext:Hidden ID="hiddennodeid" runat="server" Text='<%# ViewData["nodeid"] %>' AutoDataBind="true" />
<ext:Hidden ID="hiddenaccessid" runat="server" Text='<%# ViewData["accessid"] %>' AutoDataBind="true" />
<ext:Hidden ID="hiddenwinmethodid" runat="server" Text='<%# ViewData["winmethodid"] %>' AutoDataBind="true" />
<ext:FitLayout runat="server">
<Items>
<ext:Panel runat="server" Title="Example">
<Content>
<ext:PropertyGrid
ID="grpNodeDetails"
runat="server"
Width="300"
AutoHeight="true">
<Store>
<ext:Store ID="dsProperties" runat="server" AutoLoad="true">
<Proxy>
<ext:HttpProxy Url="/Data/GetNodeProperties/" />
</Proxy>
<UpdateProxy>
<ext:HttpWriteProxy Url="/Data/SaveTreeDetails/" />
</UpdateProxy>
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="fieldName" />
<ext:RecordField Name="fieldValue"/>
</Fields>
</ext:JsonReader>
</Reader>
<BaseParams>
<ext:Parameter Name="nodeId" Mode="Raw" Value="#{hiddennodeid}.getValue()"></ext:Parameter>
<ext:Parameter Name="accessid" Mode="Raw" Value="#{hiddenaccessid}.getValue()"></ext:Parameter>
<ext:Parameter Name="winmethodid" Mode="Raw" Value="#{hiddenwinmethodid}.getValue()"></ext:Parameter>
</BaseParams>
</ext:Store>
</Store>
<ColumnModel>
<Columns>
<ext:Column ColumnID="fieldName" DataIndex="fieldName"></ext:Column>
<ext:Column ColumnID="fieldValue" DataIndex="fieldValue"></ext:Column>
</Columns>
</ColumnModel>
<View>
<ext:GridView ID="GridView1" ForceFit="true" ScrollOffset="2" runat="server" />
</View>
<Buttons>
<%-- <ext:Button ID="Button1" runat="server" Text="Add property">
<DirectEvents>
<Click OnEvent="AddPropertyClick" />
</DirectEvents>
</ext:Button>
<ext:Button ID="Button2" runat="server" Text="Remove property">
<DirectEvents>
<Click OnEvent="RemovePropertyClick" />
</DirectEvents>
</ext:Button>
<ext:Button runat="server" ID="Button3" Text="Save" Icon="Disk">
<DirectEvents>
<Click OnEvent="Button1_Click" />
</DirectEvents>
</ext:Button> --%>
</Buttons>
<Listeners>
<Render Handler="this.getStore()" />
</Listeners>
</ext:PropertyGrid>
</Content>
</ext:Panel>
</Items>
</ext:FitLayout>
on Server side i am building the response like this: object[] _objectList = new object[_node.Attributes.Count];
int _counter = 0;
foreach (XmlAttribute _att in _node.Attributes)
{
_objectList[_counter] = new object[] { new GridProperties() { fieldName = _att.Name,fieldValue = _att.Value }};
_counter++;
}
ajaxStoreResult.Data = _objectList;
return ajaxStoreResult;
any help would be gr8, i tried working with a simple grid, but i am getting an error .
oh, one more thing:
the grid is loaded as part of an AsyncTreeNode Selection.