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 ...
随机推荐
- 【QT相关】Image Viewer Example
结合QLable和QScrollArea显示一个图片. QLable典型用于用户展示文本,但是也能展示图片.QScrollArea提供了一个滚动视图,如果子控件超过了框架限制,QScrollArea自 ...
- 再见了acm
2013年11月17日长沙区域赛我的最后一场区域赛. 忙碌了三年的acm要停下脚步,一时还无法接受. 这样一个结果有点无奈. 感谢队友,三年三支队伍五个队友,感谢你们.(每当写到这里时就总有点小忍不住 ...
- 安装 unixbench 报错解决方法
一.准备工作 1.首先使用root用户登陆. 2.运行Unixbeanch需要GCC的支持,在安装Unixbeanch之前,需要先安装GCC,在Debian中,直接执行如下命令: 复制代码 代码如下: ...
- AppStore安装APP发生错误解决方法
打开网络偏好设置 高级 -> DNS -> + -> 114.114.114.114
- HttpResponseRedirect VS HttpResponse
当我们处理了post提交的数据之后,我们使用HttpResponseRedirect跳转到另一个页面,而不是用HttpResponse. 例如当一个投票环节时使用HttpResponse可以使用浏览器 ...
- uva 10271 Chopsticks(dp)
题目连接:10271 - Chopsticks 题目大意:给出m和n, 然后给出n根筷子从小到大给出, 现在要从这n根筷子中选出m + 8组筷子, 每组筷子包括三根, 现在要求所有m + 8组每组筷子 ...
- 【Android UI】色板
Hex Code Color #FFFFFF #FFFFCC #FFFF99 #FFFF66 #FFFF33 #FFFF00 #FFCCFF #FFCCCC #FFCC ...
- 数论F - Strange Way to Express Integers(不互素的的中国剩余定理)
F - Strange Way to Express Integers Time Limit:1000MS Memory Limit:131072KB 64bit IO Format: ...
- 我的Python成长之路---第二天---Python基础(7)---2016年1月9日(晴)
再说字符串 一.字符串的编码 字符串的编码是个很令人头疼的问题,由于计算机是美国人发明的,他们很理所当然的认为计算机只要能处理127个字母和一些符号就够用了,所以规定了一个字符占用8个比特(bit)也 ...
- Swift 初见
http://numbbbbb.gitbooks.io/-the-swift-programming-language-/chapter1/02_a_swift_tour.html 本页内容包括: 简 ...