在 一个动态 Treeview 中 使用了PopulateOnDemand = true; 那么这个时候 OnSelectedNodeChanged 事件激发不了,请问如何解决???前台:
<asp:TreeView ID="TreeView1" runat="server"
ontreenodepopulate="TreeView1_TreeNodePopulate" OnSelectedNodeChanged="TreeView1_SelectedNodeChanged" EnableClientScript="true" ExpandDepth="4" CssClass="DefaultStyle" >
<HoverNodeStyle CssClass="HoverStyle" />
<SelectedNodeStyle CssClass="SelectedStyle" />
<Nodes>
<asp:TreeNode PopulateOnDemand="True" Text="产品列表" Value="产品列表"></asp:TreeNode>
</Nodes> </asp:TreeView>
后台:
protected void TreeView1_TreeNodePopulate(object sender, TreeNodeEventArgs e)
{ this.TreeView1.ShowLines = true;//在控件中显示网格线 // TreeNode rootNode = new TreeNode();//定义根节点
// rootNode.Text = "产品列表";
if (e.Node.ChildNodes.Count == 0)
{
switch (e.Node.Depth)
{
case 0:
PopulateTypes(e.Node);
break;
case 1:
PopulateBrands(e.Node);
break;
case 2:
PopulateNames(e.Node);
break; case 3:
PopulateSpecifications(e.Node);
break;
} }
} void PopulateTypes(TreeNode node)
{ ZSql type = new ZSql(); type.Open("select ComoditiesType,TypeId from ComoditiesType");
if (type.m_table.Rows.Count > 0)
{
foreach (DataRow row in type.m_table.Rows)
{
TreeNode NewNode = new TreeNode(row["ComoditiesType"].ToString(), row["TypeId"].ToString());
NewNode.PopulateOnDemand = true;
NewNode.SelectAction = TreeNodeSelectAction.Expand;
node.ChildNodes.Add(NewNode);
} }
type.Close();
}
void PopulateBrands(TreeNode node)
{ ZSql brand = new ZSql();
string Typeid = "";
Typeid = node.Value;
brand.Open("select Brand,BrandId,TypeId from Brand where Typeid='"+Typeid+"'");
if (brand.m_table.Rows.Count > 0)
{
foreach (DataRow row in brand.m_table.Rows)
{
TreeNode NewNode = new TreeNode(row["Brand"].ToString(), row["BrandId"].ToString());
NewNode.PopulateOnDemand = true;
NewNode.SelectAction = TreeNodeSelectAction.Expand;
node.ChildNodes.Add(NewNode);
} }
brand.Close();
} void PopulateNames(TreeNode node)
{ ZSql name = new ZSql();
string Brandid = "";
Brandid = node.Value;
name.Open("select ComoditiesName,ComoditiesNameId,BrandId from ComoditiesName where Brandid='" + Brandid + "'"); if (name.m_table.Rows.Count > 0)
{
foreach (DataRow row in name.m_table.Rows)
{
TreeNode NewNode = new TreeNode(row["ComoditiesName"].ToString(), row["ComoditiesNameId"].ToString());
NewNode.PopulateOnDemand = true;
NewNode.SelectAction = TreeNodeSelectAction.Expand;
node.ChildNodes.Add(NewNode);
} }
name.Close(); } void PopulateSpecifications(TreeNode node)
{ ZSql speci = new ZSql();
string Nameid = "";
Nameid = node.Value;
speci.Open("select Specifications,SpecificationsId,ComoditiesNameId from Specifications where comoditiesNameid='" + Nameid + "'"); if (speci.m_table.Rows.Count > 0)
{
foreach (DataRow row in speci.m_table.Rows)
{
TreeNode NewNode = new TreeNode(row["Specifications"].ToString(), row["SpecificationsId"].ToString());
NewNode.PopulateOnDemand = true;
NewNode.SelectAction = TreeNodeSelectAction.Expand;
node.ChildNodes.Add(NewNode);
} }
speci.Close(); }
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
ZSql zs = new ZSql();
Hidden1.Value = TreeView1.SelectedValue;
if (TreeView1.SelectedNode.Parent != null)
Hidden2.Value = TreeView1.SelectedNode.Parent.Value;
else
Hidden2.Value = "0";
// zs.Open("select menu,url,pname=(select menu from menu a where a.menuid=menu.parentid) from menu where menuid = " + Hidden1.Value);
// zs.NextRow(); TextBox1.Text = TreeView1.SelectedValue;// zs["menu"].ToString();
// txturl.Text = zs["url"].ToString();
// lblPname.Text = zs["pname"].ToString();
}
<asp:TreeView ID="TreeView1" runat="server"
ontreenodepopulate="TreeView1_TreeNodePopulate" OnSelectedNodeChanged="TreeView1_SelectedNodeChanged" EnableClientScript="true" ExpandDepth="4" CssClass="DefaultStyle" >
<HoverNodeStyle CssClass="HoverStyle" />
<SelectedNodeStyle CssClass="SelectedStyle" />
<Nodes>
<asp:TreeNode PopulateOnDemand="True" Text="产品列表" Value="产品列表"></asp:TreeNode>
</Nodes> </asp:TreeView>
后台:
protected void TreeView1_TreeNodePopulate(object sender, TreeNodeEventArgs e)
{ this.TreeView1.ShowLines = true;//在控件中显示网格线 // TreeNode rootNode = new TreeNode();//定义根节点
// rootNode.Text = "产品列表";
if (e.Node.ChildNodes.Count == 0)
{
switch (e.Node.Depth)
{
case 0:
PopulateTypes(e.Node);
break;
case 1:
PopulateBrands(e.Node);
break;
case 2:
PopulateNames(e.Node);
break; case 3:
PopulateSpecifications(e.Node);
break;
} }
} void PopulateTypes(TreeNode node)
{ ZSql type = new ZSql(); type.Open("select ComoditiesType,TypeId from ComoditiesType");
if (type.m_table.Rows.Count > 0)
{
foreach (DataRow row in type.m_table.Rows)
{
TreeNode NewNode = new TreeNode(row["ComoditiesType"].ToString(), row["TypeId"].ToString());
NewNode.PopulateOnDemand = true;
NewNode.SelectAction = TreeNodeSelectAction.Expand;
node.ChildNodes.Add(NewNode);
} }
type.Close();
}
void PopulateBrands(TreeNode node)
{ ZSql brand = new ZSql();
string Typeid = "";
Typeid = node.Value;
brand.Open("select Brand,BrandId,TypeId from Brand where Typeid='"+Typeid+"'");
if (brand.m_table.Rows.Count > 0)
{
foreach (DataRow row in brand.m_table.Rows)
{
TreeNode NewNode = new TreeNode(row["Brand"].ToString(), row["BrandId"].ToString());
NewNode.PopulateOnDemand = true;
NewNode.SelectAction = TreeNodeSelectAction.Expand;
node.ChildNodes.Add(NewNode);
} }
brand.Close();
} void PopulateNames(TreeNode node)
{ ZSql name = new ZSql();
string Brandid = "";
Brandid = node.Value;
name.Open("select ComoditiesName,ComoditiesNameId,BrandId from ComoditiesName where Brandid='" + Brandid + "'"); if (name.m_table.Rows.Count > 0)
{
foreach (DataRow row in name.m_table.Rows)
{
TreeNode NewNode = new TreeNode(row["ComoditiesName"].ToString(), row["ComoditiesNameId"].ToString());
NewNode.PopulateOnDemand = true;
NewNode.SelectAction = TreeNodeSelectAction.Expand;
node.ChildNodes.Add(NewNode);
} }
name.Close(); } void PopulateSpecifications(TreeNode node)
{ ZSql speci = new ZSql();
string Nameid = "";
Nameid = node.Value;
speci.Open("select Specifications,SpecificationsId,ComoditiesNameId from Specifications where comoditiesNameid='" + Nameid + "'"); if (speci.m_table.Rows.Count > 0)
{
foreach (DataRow row in speci.m_table.Rows)
{
TreeNode NewNode = new TreeNode(row["Specifications"].ToString(), row["SpecificationsId"].ToString());
NewNode.PopulateOnDemand = true;
NewNode.SelectAction = TreeNodeSelectAction.Expand;
node.ChildNodes.Add(NewNode);
} }
speci.Close(); }
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
ZSql zs = new ZSql();
Hidden1.Value = TreeView1.SelectedValue;
if (TreeView1.SelectedNode.Parent != null)
Hidden2.Value = TreeView1.SelectedNode.Parent.Value;
else
Hidden2.Value = "0";
// zs.Open("select menu,url,pname=(select menu from menu a where a.menuid=menu.parentid) from menu where menuid = " + Hidden1.Value);
// zs.NextRow(); TextBox1.Text = TreeView1.SelectedValue;// zs["menu"].ToString();
// txturl.Text = zs["url"].ToString();
// lblPname.Text = zs["pname"].ToString();
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货