20150812 Asp.net 父窗体获取子窗体的返回值,更新父窗体文本控件(应用)
1. 父窗体
****************************************
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;
//
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");
}
}
****************************************
2. 子窗体
****************************************
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 void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Session["Tree1_Edit_name"] != null)
{
this.TextBox1.Text = Session["Tree1_Edit_name"].ToString();
}
else
{
this.TextBox1.Text = "";
}
}
}
protected void Btn_confirm_Click(object sender, EventArgs e)
{
//Response.Write("<script>window.close();</script>");// 会弹出询问是否关闭
//Response.Write("<script>window.opener=null;window.close();</script>");// 不会弹出询问
// 不会弹出询问
//ClientScript.RegisterStartupScript(Page.GetType(), "", "<script language=javascript>window.opener=null;window.open('','_self');window.close();</script>");
//Response.Write("<script>window.returnValue=1;window.close();</script>");
//
StringBuilder s = new StringBuilder();
s.Append("<script language=javascript>" + "\n window.returnValue='" + this.TextBox1.Text.Trim().ToString() + "';" + "\n window.close();" + "\n </script>");
Type cstype = this.GetType();
ClientScriptManager cs = Page.ClientScript;
string csname = "ltype";
if (!cs.IsStartupScriptRegistered(cstype, csname))
cs.RegisterStartupScript(cstype, csname, s.ToString());
//Response.Write("<script language=javascript>opener.location.href=opener.location.href;</script>");
}
}
****************************************
20150812 Asp.net 父窗体获取子窗体的返回值,更新父窗体文本控件(应用)的更多相关文章
- python多线程获取子线程任务返回值
今天想实现多线程更新资产信息,所以使用到了threading,但是我需要每个线程的返回值,这就需要我在threading.Thread的基础上进行封装 def auto_asset(node): re ...
- js获取服务器生成并返回客户端呈现给客户的控件id的方法
var repeaterId = '<%=rpData.ClientID %>'; //Repeater的客户端IDvar rows = <%=rpData.Items.Count% ...
- JavaScript从父页面获取子页面的值(子页面又如何访问父页面)
之前还真没做过类似的东西,,top页面获取子页面的document.. 在百度搜了下即找到这个东东,还好,能用. 主要就是使用 contentWindow方法,获取子页面的所有document,再做处 ...
- iframe父页面获取子页面的高度
最近做项目中用到了iframe,子页面更改父页面的高度,经过九九八十一难,找到了解决的办法. $(window).load(function() { var h=$(document).height ...
- 使用layer 弹出对话框 子父页面相互参数传递 父页面获取子页面参数实例
一.先看效果: 1.点击三个点的图标弹出了子页面: 2.子页面调用父页面方法,图一调用父页面方法,图二得到父页面var变量. 3.选择之后,关闭弹框,父页面得到子页面单选框选择的v ...
- layui 或者layer 父页面获取子页面数据 或者子页面获取父页面操作方法
var frameId = $(layero).find("iframe").attr('id');//父页面获取子页面的iframe var id = $(window.fram ...
- 父容器根据子容器高度自适应:设置父容器 height:100%;overflow:hidden;
父容器根据子容器高度自适应:设置父容器 height:100%;overflow:hidden;
- 关于ExecuteNonQuery执行存储过程的返回值 、、实例讲解存储过程的返回值与传出参数、、、C#获取存储过程的 Return返回值和Output输出参数值
关于ExecuteNonQuery执行存储过程的返回值 用到过ExecuteNonQuery()函数的朋友们在开发的时候肯定这么用过. if(cmd.ExecuteNonQuery("xxx ...
- .net dataGridView当鼠标经过时当前行背景色变色;然后【给GridView增加单击行事件,并获取单击行的数据填充到页面中的控件中】
1.首先在前台dataGridview属性中增加onRowDataBound属性事件 2.然后在后台Observing_RowDataBound事件中增加代码 protected void Obser ...
- Selenium2学习-036-WebUI自动化实战实例-034-JavaScript 在 Selenium 自动化中的应用实例之六(获取 JS 执行结果返回值)
Selenium 获取 JavaScript 返回值非常简单,只需要在 js 脚本中将需要返回的数据 return 就可以,然后通过方法返回 js 的执行结果,方法源码如下所示: /** * Get ...
随机推荐
- 异常积累:org.hibernate.StaleStateException
ERROR - Exception executing batch: org.hibernate.StaleStateException: Batch update returned unexpec ...
- 如何在PHP里面连接数据库
第一步 创造一个连接 $a = mysql_connect("localhost","root",""); 括号里面参数的意思: 1.l ...
- Java日志管理方法(转载)
原文地址:http://www.cnblogs.com/leocook/p/log_java.html java开发中常见的几种日志管理方案有以下4种: 1. Commons-logging + lo ...
- hdu1247(字典树+枚举)
Hat's Words(hdu1247) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- 算法训练 Torry的困惑(基本型)
http://lx.lanqiao.org/problem.page?gpid=T129 算法训练 Torry的困惑(基本型) 时间限制:1.0s 内存限制:512.0MB 问题描述 ...
- jQuery习题的一些总结
1.在div元素中,包含了一个<span>元素,通过has选择器获取<div>元素中的<span>元素的语法是? 提示使用has $("div:has(s ...
- HDU 4816 Bathysphere(数学)(2013 Asia Regional Changchun)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4816 Problem Description The Bathysphere is a spheric ...
- 深度解析 Java 内存原型
一.Java 虚拟机内存原型 寄存器:我们在程序中无法控制. 栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在 堆中. 堆:存放用 new 产生的数据. 静态域:存放在对象中用 ...
- ajax中网页传输(一)TEXT——带有删除功能的数据库表格显示练习
网页之间传输的三种方式:TEXT.JSON.XML. 本章将讲解带有TEXT形势的ajax网页传输 第一:body部分代码 <title>ajax中TEXT讲解并且带有删除功能的表格< ...
- 【海岛帝国系列赛】No.2 海岛帝国:“落汤鸡”市的黑帮危机
50200210海岛帝国:“落汤鸡”市的黑帮危机 [试题描述] 近几天,犯罪分子发现“药师傅”帝国的警力约等于0.(请见YSF的海岛帝国)于是开始猖狂了起来.他们选择了依山靠水(农村?)的“落汤鸡”市 ...