20150813 Asp.net 关闭子窗体 刷新Tree控件
主窗体
******************************************
******************************************
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Text;
//using System.Text.StringBuilder;
public partial class Tree1 : System.Web.UI.Page
{
protected System.Data.SqlClient.SqlConnection SqlConnection1;
protected System.Data.SqlClient.SqlDataAdapter SqlDataAdapter1;
protected System.Data.DataSet DataSet1;
protected System.Data.DataSet DataSet2;
string Str_sql = "";
static string Str_selected = ""; // 选中的值
protected void Page_Load(object sender, EventArgs e)
{
AddTree(0, null);
}
private void AddTree(int Pid, TreeNode PNode)
{
//string sqlStr = "SELECT Item_id,Item_name,Parent_ID FROM Para_item";
//DataTable dt = YSqlHelper.ExecuteQuery(sqlStr, CommandType.Text);
if (!IsPostBack)
{
P_ht.H_data P_data = new P_ht.H_data();
P_data.sql_text1 = "SELECT Item_id,Item_name,Parent_ID FROM Para_item";
Str_sql = P_data.sql_text1;
P_data.select_tables();
DataSet1 = P_data.DataSet8;
DataTable dt = DataSet1.Tables[0];
if (dt.Rows.Count > 0)
{
DataView dv = new DataView(dt);
//过滤ParentID,得到当前的所有子节点 ParentID为父节点ID
dv.RowFilter = "[Parent_ID] = " + Pid;
//循环递归
foreach (DataRowView Row in dv)
{
//声明节点
TreeNode Node = new TreeNode();
//绑定超级链接
// Node.NavigateUrl = String.Format("javascript:show('{0}')", Row["Item_Name"].ToString());
//开始递归
if (PNode == null)
{
//添加根节点
Node.Text = Row["Item_Name"].ToString();
this.TreeView1.Nodes.Add(Node);
Node.Expanded = true; //节点状态展开
AddTree(Int32.Parse(Row["Item_ID"].ToString()), Node); //再次递归
}
else
{
//添加当前节点的子节点
Node.Text = Row["Item_Name"].ToString();
PNode.ChildNodes.Add(Node);
Node.Expanded = true; //节点状态展开
AddTree(Int32.Parse(Row["Item_ID"].ToString()), Node); //再次递归
}
}
}
}
}
////
// 选中节点
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
//this.Label1.Text = TreeView1.SelectedNode.Value.ToString().Trim();
//this.Label1.Text = TreeView1.SelectedNode.Text.ToString().Trim();
//Response.Write(TreeView1.SelectedNode.Value.ToString().Trim());
Str_selected = TreeView1.SelectedNode.Value.ToString().Trim();
Response.Write(Str_selected);
}
// add
protected void Btn_node_add_Click(object sender, EventArgs e)
{
P_ht.H_data P_data = new P_ht.H_data();
if (Str_selected.Trim() == "")
{
ClientScriptManager scriptManager = ((Page)System.Web.HttpContext.Current.Handler).ClientScript;
scriptManager.RegisterStartupScript(typeof(string), "", "alert('提示: 选中的节点为空,您要重新点击节点才能选中节点! ');", true);
return;
}
else
{
string str_Parent_ID = "0";
Int32 i_Item_id = 0;
//select
P_data.sql_text1 = " SELECT Item_id,Item_name,Parent_ID FROM Para_item where Item_name = '" + Str_selected.Trim().ToString() +"' ";
Str_sql = P_data.sql_text1;
P_data.select_tables();
DataSet1 = P_data.DataSet8;
if (DataSet1.Tables[0].Rows.Count > 0)
{
str_Parent_ID = DataSet1.Tables[0].Rows[0][0].ToString().Trim();
P_data.sql_text1 = " SELECT Item_id,Item_name,Parent_ID FROM Para_item order by Item_id desc ";
Str_sql = P_data.sql_text1;
P_data.select_tables();
DataSet1 = P_data.DataSet8;
i_Item_id = System.Convert.ToInt32(DataSet1.Tables[0].Rows[0][0].ToString().Trim())+1;
}
else
{
ClientScriptManager scriptManager = ((Page)System.Web.HttpContext.Current.Handler).ClientScript;
scriptManager.RegisterStartupScript(typeof(string), "", "alert('提示: 没有找到节点编号, 不能增加节点! ');", true);
return;
}
//add
P_data.p11_count = "4"; //总数量+1
P_data.p11_ID = i_Item_id.ToString().Trim(); //编号
P_data.p11_01 = "月当楼";
P_data.p11_02 = str_Parent_ID;
P_data.p21_ID = "t3_01";
P_data.p21_01 = "t3_02";
P_data.p21_02 = "t3_03";
P_data.sql_text1 = "INSERT INTO Para_item (Item_id,Item_name,Parent_ID) VALUES "
+ "(@t3_01, @t3_02, @t3_03)";
P_data.write_tables();
}
////reshfer;
//TreeNode nodeNew = new TreeNode("月当楼");// 新建节点对象
//if (TreeView1.SelectedNode == null)
//{
// return;
//}
//else
//{
// TreeView1.SelectedNode.ChildNodes.Add(nodeNew);
//}
Server.Transfer("Tree1.aspx");
}
protected void Btn_node_edit_Click(object sender, EventArgs e)
{
P_ht.H_data P_data = new P_ht.H_data();
if (Str_selected.Trim() == "")
{
ClientScriptManager scriptManager = ((Page)System.Web.HttpContext.Current.Handler).ClientScript;
scriptManager.RegisterStartupScript(typeof(string), "", "alert('提示: 选中的节点为空,您要重新点击节点才能选中节点! ');", true);
return;
}
else
{
//select
string str_Parent_ID = "";
P_data.sql_text1 = " SELECT Item_id,Item_name,Parent_ID FROM Para_item where Item_name = '" + Str_selected.Trim().ToString() + "' ";
Str_sql = P_data.sql_text1;
P_data.select_tables();
DataSet1 = P_data.DataSet8;
if (DataSet1.Tables[0].Rows.Count > 0)
{
str_Parent_ID = DataSet1.Tables[0].Rows[0][0].ToString().Trim();
Session["Tree1_Edit_name"] = str_Parent_ID;
}
else
{
ClientScriptManager scriptManager = ((Page)System.Web.HttpContext.Current.Handler).ClientScript;
scriptManager.RegisterStartupScript(typeof(string), "", "alert('提示: 没有找到节点编号, 不能删除节点! ');", true);
return;
}
//原窗口保留,以对话框形式打开新窗口:
//Response.Write("<script>window.showModelessDialog('Tree1_edit.aspx')</script>");
//return;
Response.Write("<script>window.open('Tree1_edit.aspx','child','width=300,height=215,left=200,top=200')</script>");
//// 传参数
//StringBuilder s = new StringBuilder();
//s.Append(" <script language=javascript> var a=window.showModalDialog('Tree1_edit.aspx'); ");
//s.Append(" if(a!=null) document.all('TextBox1').value=a;</script> ");
// Type cstype = this.GetType();
//ClientScriptManager cs = Page.ClientScript;
//string sname = "lt";
//if (!cs.IsStartupScriptRegistered(cstype, sname))
//cs.RegisterStartupScript(cstype, sname, s.ToString());
//return;
////
//P_data.sql_text1 = "update Para_item set Item_name = '户部巷' "
// + " where Item_id = " + str_Parent_ID.Trim().ToString() + " ";
//P_data.update_tables();
}
////reshfer;
//if (TreeView1.SelectedNode == null)
//{
// return;
//}
//else
//{
// TreeView1.SelectedNode.Value = "户部巷";
// TreeView1.SelectedNode.Text = "户部巷";
//}
//Server.Transfer("Tree1.aspx");
}
// delete
protected void Btn_node_delete_Click(object sender, EventArgs e)
{
P_ht.H_data P_data = new P_ht.H_data();
if (Str_selected.Trim() == "")
{
ClientScriptManager scriptManager = ((Page)System.Web.HttpContext.Current.Handler).ClientScript;
scriptManager.RegisterStartupScript(typeof(string), "", "alert('提示: 选中的节点为空,您要重新点击节点才能选中节点! ');", true);
return;
}
else
{
//select
string str_num_ID = "";
string str_Parent_ID = "";
P_data.sql_text1 = " SELECT Item_id,Item_name,Parent_ID FROM Para_item where Item_name = '" + Str_selected.Trim().ToString() + "' ";
Str_sql = P_data.sql_text1;
P_data.select_tables();
DataSet1 = P_data.DataSet8;
if (DataSet1.Tables[0].Rows.Count > 0)
{
str_num_ID = DataSet1.Tables[0].Rows[0][0].ToString().Trim();
str_Parent_ID = DataSet1.Tables[0].Rows[0][2].ToString().Trim();
}
else
{
ClientScriptManager scriptManager = ((Page)System.Web.HttpContext.Current.Handler).ClientScript;
scriptManager.RegisterStartupScript(typeof(string), "", "alert('提示: 没有找到节点编号, 不能删除节点! ');", true);
return;
}
// 如果有子节点提示先删除子节点,否则不予删除。( 另一种方法是写代码,用递归的方法找到所有的子节点,批量性删除 )
P_data.sql_text1 = " SELECT Item_id,Item_name,Parent_ID FROM Para_item where Parent_ID = '" + str_num_ID.Trim().ToString() + "' ";
Str_sql = P_data.sql_text1;
P_data.select_tables();
DataSet1 = P_data.DataSet8;
if (DataSet1.Tables[0].Rows.Count > 0)
{
ClientScriptManager scriptManager = ((Page)System.Web.HttpContext.Current.Handler).ClientScript;
scriptManager.RegisterStartupScript(typeof(string), "", "alert('提示: 不能删除, 先删除所有子节点后才都能删除父节点! ');", true);
return;
}
else
{
P_data.sql_text1 = " delete from Para_item where Item_id = " + str_num_ID.Trim().ToString() + " ";
P_data.update_tables();
}
}
//reshfer;
Server.Transfer("Tree1.aspx");
}
}
******************************************
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Tree1.aspx.cs" Inherits="Tree1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>TreeView1 数据库测试</title>
<script type="text/javascript">
function show(msg) {
alert(msg);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<br />
<br />
<asp:Panel ID="Panel1" runat="server" BackColor="#FDF8CA" BorderStyle="None"
Height="370px">
<br />
<br />
<asp:Button ID="Btn_node_add" runat="server" onclick="Btn_node_add_Click"
Text="Add" Width="76px" />
<asp:Button ID="Btn_node_edit" runat="server" onclick="Btn_node_edit_Click"
Text="Edit" Width="76px" />
<asp:Button ID="Btn_node_delete" runat="server" onclick="Btn_node_delete_Click"
Text="Delete" Width="76px" />
<br />
<br />
<asp:TreeView ID="TreeView1" runat="server"
onselectednodechanged="TreeView1_SelectedNodeChanged">
</asp:TreeView>
<br />
<br />
</asp:Panel>
<br />
<br />
</div>
</form>
</body>
</html>
******************************************
******************************************
子窗体
******************************************
******************************************
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Text;
//using System.Text.StringBuilder;
public partial class Tree1_edit : System.Web.UI.Page
{
protected System.Data.DataSet DataSet1;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Session["Tree1_Edit_name"] != null)
{
this.TextBox1.Text = Session["Tree1_Edit_name"].ToString();
P_ht.H_data P_data = new P_ht.H_data();
P_data.sql_text1 = " SELECT Item_id,Item_name,Parent_ID FROM Para_item where Item_id = '" + Session["Tree1_Edit_name"].ToString().Trim() + "' ";
P_data.select_tables();
DataSet1 = P_data.DataSet8;
if (DataSet1.Tables[0].Rows.Count > 0)
{
this.TextBox2.Text = DataSet1.Tables[0].Rows[0][1].ToString().Trim();
this.TextBox3.Text = DataSet1.Tables[0].Rows[0][2].ToString().Trim();
}
}
else
{
this.TextBox1.Text = "";
}
}
}
protected void Btn_confirm_Click(object sender, EventArgs e)
{
// 不会弹出询问
//ClientScript.RegisterStartupScript(Page.GetType(), "", "<script language=javascript>window.opener=null;window.open('','_self');window.close();</script>");
//
P_ht.H_data P_data = new P_ht.H_data();
P_data.sql_text1 = " SELECT Item_id,Item_name,Parent_ID FROM Para_item where Item_name = '" + TextBox2.Text.Trim().ToString() + "' "
+ " and Item_id not in (SELECT Item_id FROM Para_item where Item_id = '" + TextBox1.Text.Trim().ToString() + "') ";
P_data.select_tables();
DataSet1 = P_data.DataSet8;
if (DataSet1.Tables[0].Rows.Count > 0)
{
ClientScriptManager scriptManager = ((Page)System.Web.HttpContext.Current.Handler).ClientScript;
//scriptManager.RegisterStartupScript(typeof(string), "", "alert(' 提示: 您输入的内容已经存在,请输入其他的内容, 以保证内容的唯一性! ');", true);
//scriptManager.RegisterStartupScript(typeof(string), "", "alert(' 提示: 您输入的内容已经存在,请输入其他的内容, " + TextBox2.Text.Trim().ToString() + " 以保证内容的唯一性! ');", true);
scriptManager.RegisterStartupScript(typeof(string), "", "alert(' 提示: 您输入的内容已经存在,请输入其他的内容, \\r\\n 以保证内容的唯一性! ');", true);
return;
}
else
{
//
P_data.sql_text1 = "update Para_item set Item_name = '" + TextBox2.Text.Trim().ToString() + "' "
+ " where Item_id = " + TextBox1.Text.Trim().ToString() + " ";
P_data.update_tables();
}
//
Response.Write("<script language=javascript>opener.location.href=opener.location.href;window.close();</script>");
}
}
******************************************
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Tree1_edit.aspx.cs" Inherits="Tree1_edit" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
<script language="JavaScript" type="text/javascript">
<!--
function refreshParent()
{
window.opener.location.href = window.opener.location.href;
if (window.opener.progressWindow)
{
window.opener.progressWindow.close();
}
window.close();
}
//-->
</script>
</head>
<body>
<form id="form1" runat="server">
<div style="width: 309px">
<asp:Panel ID="Panel1" runat="server" Height="185px" Width="290px">
<br />
<br />
编号:
<asp:TextBox ID="TextBox1" runat="server" Width="145px" ReadOnly="True"></asp:TextBox>
<br />
变更内容:
<asp:TextBox ID="TextBox2" runat="server" Width="145px"></asp:TextBox>
<br />
父类编号:
<asp:TextBox ID="TextBox3" runat="server" Width="145px" ReadOnly="True"></asp:TextBox>
<br />
<asp:Button ID="Btn_confirm" runat="server" Text="确认" Width="84px" onclick="Btn_confirm_Click"
/>
<br />
</asp:Panel>
</div>
</form>
</body>
</html>
******************************************
******************************************
20150813 Asp.net 关闭子窗体 刷新Tree控件的更多相关文章
- asp.net 关闭子窗体 刷新主窗体
主窗体************************************************************************************ //原窗口保留,以对话框 ...
- winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体
winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体,搜集了几个方法,列举如下: 一 . 所有权法 父窗体,名称为“fuForm”,在父窗体中有个公共刷新方法,也就是窗体数据初始 ...
- C#之菜单控件、主窗体打开子窗体、GroupBox控件使用
一.背景 一年前有学习过C#,但没有在项目中去实际做APP,重新捡起来应用到项目中.我同事本来做好一个CANOPEN设备管理的界面,由于近期搜索了别人的开发的界面,我觉得有很多东西要重新安排,以及我已 ...
- C# DotNetBar ribboncontrol子窗体的系统控件(最大最小关闭)在父窗体中多余显示
初始效果: 重复的子窗体按钮,看着别扭,修改MdiSystemItemVisible = False;后效果: MdiSystemItemVisible的系统解释为: 为了解决这个问题,浪费了好几天. ...
- C#中父窗口和子窗口之间实现控件互操作
很多人都苦恼于如何在子窗体中操作主窗体上的控件,或者在主窗体中操作子窗体上的控件.相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可. 下面重点介绍前一种,目前常见 ...
- Winfrom子窗体刷新父窗体
本人比较懒,直接从网上转载了一篇比较合适的文章,只是文章格式有点乱,地址是 http://aspnet.blog.163.com/blog/static/17515510920121126104433 ...
- Winform子窗体刷新父窗体
调用窗体(父):Form1,被调用窗体(子):Form2方法1: 所有权法//Form1://需要有一个公共的刷新方法public void Refresh_Method(){//...} ...
- dev控件 xtraTabbedMdiManager 如何将关闭子窗体改为收回主窗体内
前言 本文主要讲解 xtraTabbedMdiManager 如何将关闭子窗体改为收回主窗体内,顺便附上Float(浮动)的时候使窗体最大化,及指定只能某一个子窗体能浮动放大. 下面进入正题. 一.首 ...
- [译]- 6-1 排列窗体上的控件(Laying Out Widgets on a Form)
排列窗体上的控件(Laying Out Widgets on a Form) 中英文对照:form(窗体),layout(布局或者排列,意思是进行窗体上控件的排列的过程,如大小位置等) absolu ...
随机推荐
- 基于jdk proxy的动态代理模式
代理模式 是spring AOP机制的实现基础,有必要学习一下. 有两种,一种是目标类有接口的, 采用JDK动态代理,一种是目标类没接口的,采用CGLIB动态代理. 先看一组代码, package c ...
- Java基础之线程——管理线程同步方法(BankOperation2)
控制台程序. 当两个或多个线程共享同一资源时,例如文件或内存块,就需要采取措施,确保其中的一个线程不会修改另一个线程正在使用的资源.当其中的一个线程更新文件中的某个记录,同时另一个线程正在检索这个记录 ...
- ssh tunnel通道
Secure SHell (SSH) 是一个通过网络登录其他计算机的程序,在远程服务器运行命令,和从一台机器移动文件到另一台.在不安全的网络中,它提供两台主机之间强大认证和安全加密的的通讯,被称为 S ...
- tinyxml安装和使用
下载: 官方文档:http://www.grinninglizard.com/tinyxmldocs/index.html 中文翻译:http://www.cnblogs.com/kex1n/arch ...
- PostgreSQL Replication之第十章 配置Slony(1)
在PostgreSQL领域中,Slony是最广泛的复制解决方案之一.它不仅是最老的复制方案实现的一个,但也是有最多的外部工具支持的一个,例如PgAdmin3等. 在本章中,我们将深入探究Slony并学 ...
- 面向对象 理解 C#复习
面向对象: 是基于万物皆对象这个哲学观点. 所谓的面向对象就是将我们的程序模块化,对象化,把具体事物的特性属性和通过这些属性来实现一些动作的具体方法放到一个类里面 通俗点讲: 一切都是对象 举例: 将 ...
- [原创]java WEB学习笔记82:Hibernate学习之路---映射 一对多关联关系,配置,CRUD方法测试及注意点
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- java ajax传值 中文乱码
String remark = new String(this.getRequest().getParameter("remark").getBytes("iso885 ...
- angular form 验证 ngMessage
<!DOCTYPE HTML> <html ng-app="deliciousApp"> <head> <meta charset=&qu ...
- git 命令--上传代码
创建密钥命令: ssh-keygen -C 'your@email.address' -t rsa 找到生成的密钥文件id_rsa.pub 地址:C:\Documents and Settings\A ...