效果:

使用母板页进行,左右页面进行跳转。

绑定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控件,只操作最后一级节点的更多相关文章

  1. ASP.Net TextBox控件只允许输入数字

    原文:ASP.Net TextBox控件只允许输入数字 1.1.在Asp.Net TextBox 控件的 OnKeyPress 事件中指定输入键盘码必须为数字: <asp:TextBox ID= ...

  2. 树TreeView控件与DataTable交互添加节点(最高效的方法)

    #region "读取树结点从Datatable" /// <summary> /// 读取树结点从Datatable" /// </summary&g ...

  3. 脚本全选全不选操作asp.net treeview控件

    //树节点勾选(取消)上级自动全部勾选(取消)下级,勾选下级自动勾选上级,取消全部下级,自动取消上级 //事件响应函数 var HandleCheckbox = function () { //取得事 ...

  4. asp.net TreeView控件绑定数据库显示信息

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  5. asp 使用TreeView控件

    这段代码为了使用 TreeNodeCheckChanged 事件,会有回刷新的效果: 不喜欢的可查看改进版,利用js控制选择操作,无界面刷新, “http://www.cnblogs.com/GoCi ...

  6. asp.net treeview控件无刷新选择和删除节点的ajax方法

    转载 http://blog.csdn.net/luq885/article/details/1621681 如果节点被选择的话,节点所在的td的class属性就会被设置为TreeView1_1.   ...

  7. 使用js如何获取treeview控件的当前选中的节点

    var selectedNodeID = theForm.elements["<%=treeView1.ClientID%>_SelectedNode"].value; ...

  8. WinForm开发中针对TreeView控件改变当前选择节点的字体与颜色

    本文转载:http://www.cnblogs.com/umplatform/archive/2012/08/29/2660240.html 在B/S开发中,对TreeView控件要改变当前选中节点的 ...

  9. 在TreeView控件节点中显示图片

    实现效果: 知识运用: TreeView控件中Nodes集合的Add方法 //创建节点并将节点放入集合中 public virtual TreeNode Add (string key,string ...

随机推荐

  1. 【QT相关】Image Viewer Example

    结合QLable和QScrollArea显示一个图片. QLable典型用于用户展示文本,但是也能展示图片.QScrollArea提供了一个滚动视图,如果子控件超过了框架限制,QScrollArea自 ...

  2. 再见了acm

    2013年11月17日长沙区域赛我的最后一场区域赛. 忙碌了三年的acm要停下脚步,一时还无法接受. 这样一个结果有点无奈. 感谢队友,三年三支队伍五个队友,感谢你们.(每当写到这里时就总有点小忍不住 ...

  3. 安装 unixbench 报错解决方法

    一.准备工作 1.首先使用root用户登陆. 2.运行Unixbeanch需要GCC的支持,在安装Unixbeanch之前,需要先安装GCC,在Debian中,直接执行如下命令: 复制代码 代码如下: ...

  4. AppStore安装APP发生错误解决方法

    打开网络偏好设置 高级  -> DNS ->  +  ->  114.114.114.114

  5. HttpResponseRedirect VS HttpResponse

    当我们处理了post提交的数据之后,我们使用HttpResponseRedirect跳转到另一个页面,而不是用HttpResponse. 例如当一个投票环节时使用HttpResponse可以使用浏览器 ...

  6. uva 10271 Chopsticks(dp)

    题目连接:10271 - Chopsticks 题目大意:给出m和n, 然后给出n根筷子从小到大给出, 现在要从这n根筷子中选出m + 8组筷子, 每组筷子包括三根, 现在要求所有m + 8组每组筷子 ...

  7. 【Android UI】色板

    Hex Code Color #FFFFFF   #FFFFCC   #FFFF99   #FFFF66   #FFFF33   #FFFF00   #FFCCFF   #FFCCCC   #FFCC ...

  8. 数论F - Strange Way to Express Integers(不互素的的中国剩余定理)

    F - Strange Way to Express Integers Time Limit:1000MS     Memory Limit:131072KB     64bit IO Format: ...

  9. 我的Python成长之路---第二天---Python基础(7)---2016年1月9日(晴)

    再说字符串 一.字符串的编码 字符串的编码是个很令人头疼的问题,由于计算机是美国人发明的,他们很理所当然的认为计算机只要能处理127个字母和一些符号就够用了,所以规定了一个字符占用8个比特(bit)也 ...

  10. Swift 初见

    http://numbbbbb.gitbooks.io/-the-swift-programming-language-/chapter1/02_a_swift_tour.html 本页内容包括: 简 ...