最近在做一个功能,绑定树形节点后,单击各个节点,把节点的值和文本,带回原来的页面。
需要建立两个页码:
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>
经销商名称:<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();
}
}
}
}

浙公网安备 33010602011771号