Jun 16, 2010, 8:33 AM
Dynamically changing Treepanel other Treepanel
Hello.
This question is related to Treepanel use.
A Treepanel clicking on the Tree of B Treepanel should try to change dynamically.
What should I do?
Written source code is shown below.
Runtime runtime error occurs
"Microsoft JScript runtime error: 'this.root' that (a) null or not an object."
aspx code
...
<ext:Panel ID="Panel6" runat="server" Title="" Width="175">
<Items>
<ext:RowLayout ID="RowLayout1" runat="server" Split="true">
<Rows>
<ext:LayoutRow RowHeight="0.45">
<ext:Panel runat="server" Title="System Tree">
<Items>
<ext:TreePanel ID="left_top" runat="server" AutoHeight="false" Border="false">
<Loader>
<ext:WebServiceTreeLoader DataUrl="TreeLoaderService.asmx/Get_TopNodes" />
</Loader>
<Listeners>
<Click Handler="Tree_view(left_top, node);" />
</Listeners>
</ext:TreePanel>
</Items>
</ext:Panel>
</ext:LayoutRow>
<ext:LayoutRow RowHeight="0.25">
<ext:Panel ID="mid_panel" runat="server" Title="Content Tree" >
<Items>
<ext:TreePanel ID="left_mid" runat="server" AutoHeight="false" Visible="false">
<Root>
<ext:TreeNode NodeID="1" Text="Txt"></ext:TreeNode>
</Root>
</ext:TreePanel>
</Items>
</ext:Panel>
</ext:LayoutRow>
<ext:LayoutRow RowHeight="0.30">
<ext:Panel ID="left_foot" runat="server" Title="Content Attribute" />
</ext:LayoutRow>
</Rows>
</ext:RowLayout>
</Items>
</ext:Panel>
...
cs code...
protected void btn_midCreate_Click(object sender, EventArgs e)
{
string par_1 = hidden_id.Value.Split('|')[0];
string par_lvl = par_1.Split('^')[0]; // level
string par_id = par_1.Split('^')[1]; // id
string par_text = hidden_id.Value.Split('|')[1]; // text
left_mid.Root.Clear();
Ext.Net.TreeNode root = CreateNode(par_id, par_text);
left_mid.Root.Add(root);
left_mid.Visible = true;
}
private Ext.Net.TreeNode CreateNode(string id, string txt)
{
Ext.Net.TreeNode t = new Ext.Net.TreeNode();
t.NodeID = id;
t.Text = txt;
oMain_Tree.open();
DataSet oTreeSubDs = oMain_Tree.M_Get_Tree("99", id);
if (oTreeSubDs.Tables.Count > 0)
{
foreach (DataRow row in oTreeSubDs.Tables[0].Rows)
{
t.Nodes.Add(this.CreateNode(row["Tree_id"].ToString(), row["name"].ToString()));
}
}
oMain_Tree.close();
return t;
}
...