最近在做一个功能,绑定树形节点后,单击各个节点,把节点的值和文本,带回原来的页面。

需要建立两个页码:

1.1 TVDealer.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="TVDealer.aspx.cs" Inherits="PRK.WEB.TVDealer" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
<script type="text/javascript">
    function SetActionId(Id, Name) {
 
        window.location.href = "Receive.aspx?Id=" + Id.toString() + "&Name=" + Name.toString();
    }
</script>
 <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

    <asp:TreeView ID="TreeView1" runat="server" ImageSet="Contacts" NodeIndent="10"
    Width="261px">
    <HoverNodeStyle Font-Underline="False" />
    <NodeStyle Font-Names="Verdana" Font-Size="8pt" ForeColor="Black"
        HorizontalPadding="5px" NodeSpacing="0px" VerticalPadding="0px" />
    <ParentNodeStyle Font-Bold="True" ForeColor="#5555DD" />
    <SelectedNodeStyle Font-Underline="True" HorizontalPadding="0px"
        VerticalPadding="0px" />
</asp:TreeView>

</asp:Content>

1.2 TVDealer.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;

namespace PRK.WEB
{
    public partial class TVDealer : System.Web.UI.Page
    {
        private SqlConnection conn;
        private SqlCommand cmd;
        private const string connStr = "Data Source=SZXY1ZWX2166591\\SQLEXPRESS;Initial Catalog=DbDevice;Integrated Security=True";

        protected void Page_Load(object sender, EventArgs e)
        {

            DataTable dtable= GetData();
            CreateTree(this.TreeView1, dtable);
        }
        private DataTable GetData()
        {
            DataTable dt = GetTable("select * from Tbl_Dealer");
            return dt;
        }

        #region  创建树、节点
        /// <summary> 
/// 创建树 
/// </summary>  
/// <param name="treeView"></param>
   /// <param name="treeData"></param> 
  private void CreateTree(TreeView treeView, DataTable treeData)
  {      
 try     
  {      
     treeView.Nodes.Clear();//清空树所节点        
     treeView.ExpandDepth = 4;       
     TreeNode rootNode = new TreeNode();//创建根节点     
     rootNode.Text = "轻骑经销商" + "(钻石)";
     rootNode.Value = "1001";
     //rootNode.Text = "明日科技"+"(金牌)";
     //rootNode.Value = "1003";
     rootNode.NavigateUrl = "javascript:SetActionId('" + rootNode.Value + "','" + rootNode.Text.ToString() + "')";
     rootNode.ImageUrl = "../Image/red.png";
     treeView.Nodes.Add(rootNode);//添加根节点 
     CreateChildNode(rootNode, treeData);//创建其节点 
 }   
    catch (Exception ex)  
     {       
    ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "fault", "alert('" + ex.Message.Replace("\n", "").Replace("\r", "") + "');", true);   
    } 
  }  
 
 private void CreateChildNode(TreeNode parentNode, DataTable treeData)
  {      
 try    
   {       
       DataRow[] rowList = treeData.Select("ParentId='" + parentNode.Value + "'");       
       foreach (DataRow row in rowList)  
         {           
    TreeNode node = new TreeNode();//创建新节点
    node.ImageUrl = "../Image/green.png";
    node.Text = row["DealerName"].ToString() + "(" + getDealerLevelName(row["Level"].ToString())+ ")";   
     node.Value = row["DealerId"].ToString();
     node.NavigateUrl = "javascript:SetActionId('" + node.Value + "','" + row["DealerName"].ToString() + "')";    
     parentNode.ChildNodes.Add(node);
     CreateChildNode(node, treeData);//递归调用创建其节点  
         }     
  }     
  catch (Exception ex)   
    {      
     ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "fault", "alert('" + ex.Message.Replace("\n", "").Replace("\r", "") + "');", true);      
 }   
}
        #endregion
/// <summary>
/// 获取经销商对应的级别名称
/// </summary>
/// <param name="level"></param>
/// <returns></returns>
 private string getDealerLevelName(string level)
 {
     string str=string.Empty;
     switch (level)
     {
         case "0":
             str = "钻石";
             break;
         case "1":
             str = "金牌";
             break;
         case "2":
             str = "银牌";
             break;
         default:
             str = "铜牌";
             break;
     }
      return str;
      
 }

        #region 数据库操作
        /// <summary>  
        /// 打链接   
        /// </summary>    
        ///<returns></returns> 
        private SqlConnection GetConn()
        {         
            if (conn == null)
                conn = new SqlConnection(connStr); 
            if (conn.State == ConnectionState.Closed)
                conn.Open();        
            else if (conn.State == ConnectionState.Broken)     
            {          
                conn.Close();       
                conn.Open();       
            }            return conn; 
        } 
                 /// <summary>   
                  /// 执行增删改查操作
                  /// </summary>  
                  /// <param name="sql"></param> 
                 /// <returns></returns> 
                 private int ExecuteNonQuery(string sql)   
                 {         
                     try       
                     {            
                         cmd = new SqlCommand(sql, GetConn());     
                         return cmd.ExecuteNonQuery();      
                     }       
                     catch     
                     {       
                         return 0; 
                     }        
                     finally    
                     {        
                         conn.Close();  
                     }   
                 }      
        /// <summary>   
        /// 读数据
         /// </summary>  
         /// <param name="sql"></param> 
         /// <returns></returns>  
        private SqlDataReader ExecuteReader(string sql)  
       {       
            try  
            {          
                cmd = new SqlCommand(sql, GetConn());   
                return cmd.ExecuteReader();      
            }        
            catch        
            {           
                return null; 
            }         
            finally     
            {       
                conn.Close();   
            }   
        }      
       
        /// <summary>    
         /// 该表数据 
        /// </summary> 
        /// <param name="sql"></param>   
         /// <returns></returns>
         private DataTable GetTable(string sql) 
         {         
         try         
         {          
         SqlDataAdapter da = new SqlDataAdapter(sql, GetConn());
             DataSet ds = new DataSet();      
             da.Fill(ds);             
             return ds.Tables[0];    
         }         
         catch        
         {           
             return null;   
         }         
         finally      
         {        
             conn.Close();  
         }     
         }    
        #endregion
    }
}

 

 2.1 Receive.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Receive.aspx.cs" Inherits="PRK.WEB.Receive" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <p>
        经销商ID:<asp:Label ID="lblDealerId" runat="server" Text=""></asp:Label>
    &nbsp;&nbsp;&nbsp;&nbsp; 经销商名称:<asp:Label ID="lblDealerName" runat="server" Text=""></asp:Label>
    </p>
</asp:Content>

 

2.2 Receive.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace PRK.WEB
{
    public partial class Receive : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            var sId = Request.QueryString["Id"];

            var sName=Request.QueryString["Name"];

            if(sId!=null&&!string.IsNullOrEmpty(sId.ToString()))
            {
                lblDealerId.Text=sId.ToString();
            }

            if (sName != null && !string.IsNullOrEmpty(sName.ToString()))
            {
                lblDealerName.Text = sName.ToString();
            }


        }
    }
}

posted on 2014-07-15 16:05  南湖居士  阅读(170)  评论(0)    收藏  举报