Jan 24, 2013, 9:26 PM
dropdownfield
when loading a dropdown field with direct event server side value property trows null reference exception. there is no error raising with setting values in client side.
//code behind
protected void LoadLocations(object sender, NodeLoadEventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("Id", typeof(int));
dt.Columns.Add("Value", typeof(string));
dt.Rows.Add(new object[] { 1, "a" });
dt.Rows.Add(new object[] { 2, "b" });
dt.Rows.Add(new object[] { 3, "c" });
dt.Rows.Add(new object[] { 4, "d" });
dt.Rows.Add(new object[] { 5, "e" });
dt.Rows.Add(new object[] { 6, "f" });
dt.Rows.Add(new object[] { 7, "g" });
dt.Rows.Add(new object[] { 8, "h" });
foreach (DataRow r in dt.Rows) {
Node node = new Node();
node.Text = r["Value"].ToString();
node.NodeID = r["Id"].ToString();
node.Leaf = true;
node.Checked = false;
e.Nodes.Add(node);
}
}
//aspx
<ext:DropDownField ID="ddfStores" PaddingSpec="1px 30px 3px;" Flex="1" BlankText="Stores" AllowBlank="false" Editable="false" TriggerIcon="SimpleArrowDown" Mode="ValueText" FieldLabel="Stores" runat="server">
<Component>
<ext:TreePanel ID="TreePanel2" runat="server" Title="Vendors" Header="false" Shadow="true" UseArrows="true" AutoScroll="true" Animate="true" EnableDD="true" ContainerScroll="true" RootVisible="false">
<Root>
<ext:Node NodeID="nodVendor" Expanded="true">
<CustomAttributes>
<ext:ConfigItem Name="loaded" Value="true" Mode="Raw" />
</CustomAttributes>
</ext:Node>
</Root>
<Buttons>
<ext:Button ID="Button1" runat="server" Text="Close">
<Listeners>
<Click Handler="#{ddfStores}.collapse();" />
</Listeners>
</ext:Button>
</Buttons>
<Store>
<ext:TreeStore ID="trsStores" runat="server" OnReadData="LoadLocations" SortOnLoad="true">
<Proxy>
<ext:PageProxy>
<RequestConfig Method="GET" Type="Load" AutoDataBind="true" Timeout="12000" />
</ext:PageProxy>
</Proxy>
<Root>
<ext:Node NodeID="0" Text="Stores" AutoDataBind="true" Checked="false" Expanded="false">
</ext:Node>
</Root>
</ext:TreeStore>
</Store>
<Listeners>
<CheckChange Handler="debugger; this.dropDownField.setValue(getValues(this), getText(this), false);" />
<Render Handler="this.getRootNode().expand(true);" Delay="50" />
</Listeners>
<SelectionModel>
<ext:TreeSelectionModel ID="TreeSelectionModel2" runat="server" Mode="Multi" />
</SelectionModel>
</ext:TreePanel>
</Component>
<Listeners>
<Expand Handler="this.component.getRootNode().expand(true) ;" Single="true" Delay="20" />
</Listeners>
<SyncValue Fn="syncValue" />
</ext:DropDownField>
// exception case (code behind)
string locations = ddfStores.Value.ToString();
//code behind
protected void LoadLocations(object sender, NodeLoadEventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("Id", typeof(int));
dt.Columns.Add("Value", typeof(string));
dt.Rows.Add(new object[] { 1, "a" });
dt.Rows.Add(new object[] { 2, "b" });
dt.Rows.Add(new object[] { 3, "c" });
dt.Rows.Add(new object[] { 4, "d" });
dt.Rows.Add(new object[] { 5, "e" });
dt.Rows.Add(new object[] { 6, "f" });
dt.Rows.Add(new object[] { 7, "g" });
dt.Rows.Add(new object[] { 8, "h" });
foreach (DataRow r in dt.Rows) {
Node node = new Node();
node.Text = r["Value"].ToString();
node.NodeID = r["Id"].ToString();
node.Leaf = true;
node.Checked = false;
e.Nodes.Add(node);
}
}
//aspx
<ext:DropDownField ID="ddfStores" PaddingSpec="1px 30px 3px;" Flex="1" BlankText="Stores" AllowBlank="false" Editable="false" TriggerIcon="SimpleArrowDown" Mode="ValueText" FieldLabel="Stores" runat="server">
<Component>
<ext:TreePanel ID="TreePanel2" runat="server" Title="Vendors" Header="false" Shadow="true" UseArrows="true" AutoScroll="true" Animate="true" EnableDD="true" ContainerScroll="true" RootVisible="false">
<Root>
<ext:Node NodeID="nodVendor" Expanded="true">
<CustomAttributes>
<ext:ConfigItem Name="loaded" Value="true" Mode="Raw" />
</CustomAttributes>
</ext:Node>
</Root>
<Buttons>
<ext:Button ID="Button1" runat="server" Text="Close">
<Listeners>
<Click Handler="#{ddfStores}.collapse();" />
</Listeners>
</ext:Button>
</Buttons>
<Store>
<ext:TreeStore ID="trsStores" runat="server" OnReadData="LoadLocations" SortOnLoad="true">
<Proxy>
<ext:PageProxy>
<RequestConfig Method="GET" Type="Load" AutoDataBind="true" Timeout="12000" />
</ext:PageProxy>
</Proxy>
<Root>
<ext:Node NodeID="0" Text="Stores" AutoDataBind="true" Checked="false" Expanded="false">
</ext:Node>
</Root>
</ext:TreeStore>
</Store>
<Listeners>
<CheckChange Handler="debugger; this.dropDownField.setValue(getValues(this), getText(this), false);" />
<Render Handler="this.getRootNode().expand(true);" Delay="50" />
</Listeners>
<SelectionModel>
<ext:TreeSelectionModel ID="TreeSelectionModel2" runat="server" Mode="Multi" />
</SelectionModel>
</ext:TreePanel>
</Component>
<Listeners>
<Expand Handler="this.component.getRootNode().expand(true) ;" Single="true" Delay="20" />
</Listeners>
<SyncValue Fn="syncValue" />
</ext:DropDownField>
// exception case (code behind)
string locations = ddfStores.Value.ToString();
Last edited by oet7i; Jan 25, 2013 at 4:19 PM.