//--选择操作 最好是用checkbox直观..
//--treeview绑定例子
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;


public partial class _Default : System.Web.UI.Page
{
    private string connstring = ConfigurationManager.ConnectionStrings["ConnStr"].ToString();

    private bool isHaveCheckBox = false;
    private bool isExpanded = false;
    private DataTable dtTree = null;
    protected void Page_Load(object sender, EventArgs e)
    {
        //Response.Write("tttttttttt");
        if (!IsPostBack)
        {
            AreaTree.Nodes.Add(getRootAreaTreeNode(false, false));
        }       

    }

    /// 
<summary>
    /// 获取包含全部子节点的根节点数据
    /// 
</summary>   
    /// 
<param name="haveCheckBox">节点是否产生CheckBox</param>
    /// 
<param name="expanded">节点是否展开</param>    
    /// 
<returns></returns>
    public TreeNode getRootAreaTreeNode(bool haveCheckBox, bool expanded)
    {
        //drPeng.HS.BR.AreaTree brTree = new drPeng.HS.BR.AreaTree();

        string rootID = "0001";//brTree.getRootAreaTreeID();
        string rootName = "中国";//brTree.getRootAreaTreeName();
        //ds = brTree.getAllAreaTree();

        isHaveCheckBox = haveCheckBox;
        isExpanded = expanded;

        #region populate root node
        TreeNode rootNode = new TreeNode();
        rootNode.Text = rootName;
        rootNode.Value = rootID;
        //rootNode. = rootName;
        // rootNode.NodeData = "0001";
        
        rootNode.Expanded = true;
        // rootNode.CheckBox = isHaveCheckBox;
        #endregion

        DataSet dsTree = SqlHelper.ExecuteDataset(connstring, CommandType.Text, "select * from TB_Area");
        dtTree = dsTree.Tables[0];
        this.populateAreaTree(rootID, rootNode);

        return rootNode;
    }

    private void populateAreaTree(string parentID, TreeNode pNode)
    {        

        DataRow[] dRows = dtTree.Select("ParentAreaCode='" + parentID +"'");
       
        if (dRows.Length > 0)
        {
            TreeNode Node = null;
            foreach (DataRow drow in dRows)
            {
                Node = new TreeNode();
                Node.Text = drow["AreaName"].ToString();
                Node.Value = drow["AreaCode"].ToString();
                //Node.DataItem = Node.Text + "|" + Node.Value;
                Node.Expanded = isExpanded;
                pNode.ChildNodes.Add(Node);
                populateAreaTree(Node.Value, Node);     //递归 
            }            
        }
    }
}

 posted on 2007-03-12 13:47  心有灵犀  阅读(581)  评论(0编辑  收藏  举报