selectindexchange事件就行了。AutoPostBack 要设为TRUE

解决方案 »

  1.   

    怎么获得当前所点击的节点?
    我把初始加载的信息放在page_load中,我点击一次节点,它就重新执行一次page_load里中的代码,怎么会这样呀?
      

  2.   

    page_load肯定是每次都执行的,
    因为你每次访问aspx页面的时候,
    页面所对应的类都要重新实例化,所以会触发Load事件,
    除非把注册事件去掉;
    private void InitializeComponent()
    {    
    //this.Load += new System.EventHandler(this.Page_Load);}
    不过可以判断页面是第一次被访问还是提交,
    private void Page_Load(object sender, System.EventArgs e)
    {
             //判断页面是第一次被访问还是提交
    if(Page.IsPostBack)
             {
              }
    }
      

  3.   

    有谁有使用treeview的例子呀?给一个吧,谢谢了。
      

  4.   

    /// <summary>
    /// PubTreeView 关于生成树和对树的操作。
    /// </summary>
    public class PubTreeView
    {
    private string m_sCnnStr=""; public PubTreeView()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    m_sCnnStr = System.Configuration.ConfigurationSettings.AppSettings["Conn"];
    } /// <summary>
    /// 生成零时节点提示
    /// </summary>
    /// <param name="Nds"></param>
    private void AddNodeTemp(TreeNodeCollection Nds)
    {
    TreeNode tn;//声明节点
    tn=new TreeNode();
    tn.Text="正在生成节点...";
    Nds.Add(tn);
    } /// <summary>
    /// 生成树的根节点名称和第一级节点
    /// </summary>
    /// <param name="Nds">TreeView的Nodes</param>
    /// <param name="strTreeName">树根节点名称</param>
    public void BuildTreeName(TreeNodeCollection Nds,string strTreeName,string strSql,string NodeID,string NodeName)
    {
    Nds.Clear();
    TreeNode tn = new TreeNode();
    tn.Text=strTreeName;
    tn.ID="treeroot";
    Nds.Add(tn);
    BindTreeNodes(tn.Nodes,strSql,NodeID,NodeName);
    } /// <summary>
    /// 动态生成子节点
    /// </summary>
    /// <param name="Nds">TreeView的Nodes</param>
    /// <param name="strSql">生成节点的Sql语句</param>
    /// <param name="NodeID">生成树节点的ID值,对应Sql语句中字段名称</param>
    /// <param name="NodeName">生成树节点的Name值,对应Sql语句中字段名称</param>
    public void BindTreeNodes(TreeNodeCollection Nds,string strSql,string NodeID,string NodeName)
    {
    dsgDAC.oleDatabase oConn = new dsgDAC.oleDatabase(m_sCnnStr);
    DataSet oDs = new DataSet();
    oConn.QueryString = strSql;
    oConn.QueryDataSet(oDs,"tree"); DataView dv=oDs.Tables["tree"].DefaultView;
    TreeNode tn;//声明节点 foreach(DataRowView dr in dv)
    {
    tn=new TreeNode();
    tn.ID=dr[NodeID].ToString();
    tn.Text=dr[NodeName].ToString();
    Nds.Add(tn);
    AddNodeTemp(tn.Nodes);
    }
    } /// <summary>
    /// 生成树的根节点名称和第一级节点带URL
    /// </summary>
    /// <param name="Nds">TreeView的Nodes</param>
    /// <param name="strTreeName">树根节点名称</param>
    /// <param name="NodeUrl">生成树节点链接的URL值</param>
    /// <param name="UrlTarget">生成树节点URL的Target值</param>
    public void BuildTreeNameURL(TreeNodeCollection Nds,string strTreeName,string strSql,string NodeID,string NodeName,string NodeUrl,string UrlTarget)
    {
    Nds.Clear();
    TreeNode tn = new TreeNode();
    tn.Text=strTreeName;
    tn.ID="treeroot";
    tn.NavigateUrl=NodeUrl+"?NodeID=0";
    tn.Target=UrlTarget;
    Nds.Add(tn);
    BindTreeNodesURL(tn.Nodes,strSql,NodeID,NodeName,NodeUrl,UrlTarget);
    } /// <summary>
    /// 动态生成子节点节点带URL
    /// </summary>
    /// <param name="Nds">TreeView的Nodes</param>
    /// <param name="strSql">生成节点的Sql语句</param>
    /// <param name="NodeID">生成树节点的ID值,对应Sql语句中字段名称</param>
    /// <param name="NodeName">生成树节点的Name值,对应Sql语句中字段名称</param>
    /// <param name="NodeUrl">生成树节点链接的URL值</param>
    /// <param name="UrlTarget">生成树节点URL的Target值</param>
    public void BindTreeNodesURL(TreeNodeCollection Nds,string strSql,string NodeID,string NodeName,string NodeUrl,string UrlTarget)
    {
    dsgDAC.oleDatabase oConn = new dsgDAC.oleDatabase(m_sCnnStr);
    DataSet oDs = new DataSet();
    oConn.QueryString = strSql;
    oConn.QueryDataSet(oDs,"tree"); DataView dv=oDs.Tables["tree"].DefaultView;
    TreeNode tn;//声明节点 foreach(DataRowView dr in dv)
    {
    tn=new TreeNode();
    tn.ID=dr[NodeID].ToString();
    tn.Text=dr[NodeName].ToString();
    tn.NavigateUrl=NodeUrl+"?NodeID="+dr[NodeID].ToString()+"";
    tn.Target=UrlTarget;
    Nds.Add(tn);
    AddNodeTemp(tn.Nodes);
    }
    } }
      

  5.   

    我想把上面的代码做成一个公用类,可是编译的时候提示错误:D:\试验基地\cb_new\PubTreeView.cs(26): 找不到类型或命名空间名称“TreeNodeCollection”(是否缺少 using 指令或程序集引用?)
    TreeNodeCollection如何声明?