ASP.NET - TreeView控件,只操作最后一级节点
效果:

使用母板页进行,左右页面进行跳转。
绑定TreeView控件:http://www.cnblogs.com/KTblog/p/4792302.html
主要功能:
- 点击节点的时候,只操作最后一级的节点,其他节点跳过不执行代码。
代码:
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI.WebControls; namespace APManage
{
public partial class TreeView : System.Web.UI.Page
{
public string ConnString = @"server = HUANGFU-PC; database = DB_APManage; integrated security = true";
public DataTable dt = null;
public List<int> erjinode = new List<int>(); //存储非最后一级的节点 /// <summary>
/// 初始化事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
dt = new DataTable(); GetMenuToDataTable("select * from Tb_APCategory", dt);
BindTree(dt, null, "");
}
} /// <summary>
/// 选择存储所有的非最后一级节点的ID
/// </summary>
public void SelectIsNotMainNode()
{
SqlConnection con = new SqlConnection(ConnString);
con.Open();
SqlCommand cmd = new SqlCommand("select ID from Tb_APCategory where ParentID = 1000", con);
SqlDataReader sdr = cmd.ExecuteReader();
while (sdr.Read())
{
SqlConnection con_2 = new SqlConnection(ConnString);
con_2.Open();
SqlCommand cmd_2 = new SqlCommand("select ID from Tb_APCategory where ParentID = " + sdr["ID"].ToString() + "", con_2);
SqlDataReader sdr_2 = cmd_2.ExecuteReader();
while (sdr_2.Read())
{
erjinode.Add(Convert.ToInt32(sdr_2["ID"].ToString()));
}
erjinode.Add(Convert.ToInt32(sdr["ID"].ToString()));
}
} /// <summary>
/// 鼠标点击节点事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
string node = this.TreeView1.SelectedNode.Value;//获得所选择节点的值,也就是表中的ID
SelectIsNotMainNode();
foreach (int item in erjinode)
{
if (node == item.ToString())
{
ClientScript.RegisterStartupScript(this.GetType(), "msg", "<script>alert('不是最后一个节点!')</script>");
return;
}
}
ClientScript.RegisterStartupScript(this.GetType(), "msg", "<script>alert('"+node+"!')</script>");
} #region 绑定TreeView控件 /// <summary>
/// 循环绑定TreView
/// </summary>
/// <param name="dtSource"></param>
/// <param name="parentNode"></param>
/// <param name="parentID"></param>
private void BindTree(DataTable dtSource, TreeNode parentNode, string parentID)
{
DataRow[] rows = dtSource.Select(string.Format("ParentID={0}", parentID));
foreach (DataRow row in rows)
{
TreeNode node = new TreeNode();
node.Text = row["CategoryName"].ToString();
node.Value = row["ID"].ToString();
BindTree(dtSource, node, row["ID"].ToString());
if (parentNode == null)
{
this.TreeView1.Nodes.Add(node);
}
else
{
parentNode.ChildNodes.Add(node);
}
}
} /// <summary>
/// 绑定DataTable
/// </summary>
/// <param name="query"></param>
/// <param name="dt"></param>
/// <returns></returns>
private DataTable GetMenuToDataTable(string query, DataTable dt)
{
using (SqlConnection conn = new SqlConnection(ConnString))
{
SqlCommand cmd = new SqlCommand(query, conn);
SqlDataAdapter ada = new SqlDataAdapter(cmd);
ada.Fill(dt);
}
return dt;
} #endregion
}
}
ASP.NET - TreeView控件,只操作最后一级节点的更多相关文章
- ASP.Net TextBox控件只允许输入数字
		原文:ASP.Net TextBox控件只允许输入数字 1.1.在Asp.Net TextBox 控件的 OnKeyPress 事件中指定输入键盘码必须为数字: <asp:TextBox ID= ... 
- 树TreeView控件与DataTable交互添加节点(最高效的方法)
		#region "读取树结点从Datatable" /// <summary> /// 读取树结点从Datatable" /// </summary&g ... 
- 脚本全选全不选操作asp.net treeview控件
		//树节点勾选(取消)上级自动全部勾选(取消)下级,勾选下级自动勾选上级,取消全部下级,自动取消上级 //事件响应函数 var HandleCheckbox = function () { //取得事 ... 
- asp.net TreeView控件绑定数据库显示信息
		using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ... 
- asp 使用TreeView控件
		这段代码为了使用 TreeNodeCheckChanged 事件,会有回刷新的效果: 不喜欢的可查看改进版,利用js控制选择操作,无界面刷新, “http://www.cnblogs.com/GoCi ... 
- asp.net treeview控件无刷新选择和删除节点的ajax方法
		转载 http://blog.csdn.net/luq885/article/details/1621681 如果节点被选择的话,节点所在的td的class属性就会被设置为TreeView1_1. ... 
- 使用js如何获取treeview控件的当前选中的节点
		var selectedNodeID = theForm.elements["<%=treeView1.ClientID%>_SelectedNode"].value; ... 
- WinForm开发中针对TreeView控件改变当前选择节点的字体与颜色
		本文转载:http://www.cnblogs.com/umplatform/archive/2012/08/29/2660240.html 在B/S开发中,对TreeView控件要改变当前选中节点的 ... 
- 在TreeView控件节点中显示图片
		实现效果: 知识运用: TreeView控件中Nodes集合的Add方法 //创建节点并将节点放入集合中 public virtual TreeNode Add (string key,string ... 
随机推荐
- [置顶] Linux下文件和目录权限说明
			在Linux下使用ls -l或者ll命令可以查看文件和文件夹的权限.结果显示类似于: drwxrwxrwx,这里分为四组,分别为文件类型,文件所有者的权限(读写执行),文件所有者所在组用户的权限(读写 ... 
- Android模拟器启动异常
			设置系统环境变量的 ANDROID_SDK_HOME为任意一个目录,我的目录:C:\android_avd, 关闭eclipse,然后重新启动eclipse, 删除之前创建的AVD, 然后重新创建,即 ... 
- C#路径,文件,目录,I/O常见操作
			C#路径,文件,目录,I/O常见操作 文件操作是程序中非常基础和重要的内容,而路径.文件.目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题,尽量提供 ... 
- __autoload函数
			./index.php----------------------------------------------------------------------------------<?ph ... 
- iPhone开发技巧之日志保存教程
			http://mobile.51cto.com/iphone-283337.htm Objective-C开发程序的时候,有专门的日志操作类NSLog,它将指定的输出到标准的错误输出上(stderr) ... 
- The connection to adb is down, and a severe error has occured.问题解决
			遇到问题描述: 运行android程序控制台输出 [2013-06-25 11:10:32 - MyWellnessTracker] The connection to adb is down, an ... 
- AsyncTask究竟需要多少个线程
			最起码两个:主线程和工作线程; 可以参考:http://zhidao.baidu.com/link?url=ho4UEcEbaogRZUFHwig1neSKR25b2zT9iXyM36hEgWTmvJ ... 
- wince下GetManifestResourceStream得到的Stream是null的解决
			问题的引入 在编程过程中遇到下面这样一个问题: 有这样一个方法: public static AlphaImage CreateFromResource(string imageResourceNam ... 
- Mysql事务,并发问题,锁机制-- 幻读、不可重复读(转)
			1.什么是事务 事务是一条或多条数据库操作语句的组合,具备ACID,4个特点. 原子性:要不全部成功,要不全部撤销 隔离性:事务之间相互独立,互不干扰 一致性:数据库正确地改变状态后,数据库的一致性约 ... 
- 浅尝key-value数据库(一)——一览NoSQL
			浅尝key-value数据库(一)——一览NoSQL 最近由于一个项目的关系,研究了一下key-value数据库这个最近很火的概念.本系列从项目需求的角度分析并测试了几个key-value数据库的性能 ... 
