protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable data = CreateDataTable();
BindTree(data);
}
}
/// <summary>
/// 将数据绑到treeview的根节点上。
/// </summary>
/// <param name="tableData"></param>
private void BindTree(DataTable tableData)
{
DataRow[] list = tableData.Select("ParentID='0'");
DataRow rootRow = list[0];
TreeNode rootNode = new TreeNode();
rootNode.Text = rootRow["AreaName"].ToString();
rootNode.Value = rootRow["AreaID"].ToString();
this.TreeView1.Nodes.Add(rootNode);
BindTreeNode(tableData, rootNode, rootNode.Value);
}
/// <summary>
/// 将数据绑到TreeNode上。
/// </summary>
/// <param name="tableData"></param>
/// <param name="treeNode"></param>
/// <param name="filter"></param>
private void BindTreeNode(DataTable tableData, TreeNode treeNode, string filter)
{
DataRow[] list = tableData.Select("ParentID='" + filter + "'");
for (int i = 0; i < list.Length; i++)
{
TreeNode node = new TreeNode();
node.Text = list[i]["AreaName"].ToString();
node.Value = list[i]["AreaID"].ToString();
treeNode.ChildNodes.Add(node);
BindTreeNode(tableData, node, node.Value);
}
}
/// <summary>
/// 模拟数据。
/// </summary>
/// <returns></returns>
private DataTable CreateDataTable()
{
DataTable ds = new DataTable();
string safeSql = ConfigurationManager.ConnectionStrings["BookShopConnectionString"].ConnectionString;
SqlConnection connBookShop = new SqlConnection(safeSql);
string strSQL = "SELECT AreaID,AreaName,ParentID FROM dbo.T_Area WHERE Status='0'";
SqlCommand cmd = new SqlCommand(strSQL, connBookShop);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
return ds;
}