.aspx:

<script type="text/javascript">
function getReturnValue() {
var strResult = window.showModalDialog('Depart.aspx?random=' + Math.random(), "", "dialogWidth=400px;dialogHeight=500px;status:no");
if (strResult != undefined) {
var str = new Array();
str = strResult.split("|");
$("#hidId").val(str[]);
$("#hidName").val(str[]);
$("#txtDepart").val(str[]);
//alert(str[1]);
}
}
</script> <table width="100%" border="" cellspacing="" cellpadding="">
<tr>
<td>
请选择:
</td>
<td>
<asp:TextBox ID="txtDepart" runat="server" CssClass="input required" onclick="getReturnValue();" size="" ReadOnly="True"></asp:TextBox>
<asp:HiddenField ID="hidId" runat="server" />
<asp:HiddenField ID="hidName" runat="server" />
</td>
</tr>
</table>

.aspx.cs:只需保存hidId的值

Depart.aspx:

<link rel="stylesheet" href="css/demo.css" type="text/css">
<link rel="stylesheet" href="css/zTreeStyle/zTreeStyle.css" type="text/css">
<script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="js/jquery.ztree.core-3.5.js"></script>
<SCRIPT type="text/javascript" language="javascript"> var setting = {
data: {
key: {
title: "t"
},
simpleData: {
enable: true
}
},
callback: {
beforeDblClick: zTreeBeforeDblClick,
onClick: onClick
}
}; var zNodes = <%= sb.ToString() %>; var log, className = "dark";
function beforeClick(treeId, treeNode, clickFlag) {
className = (className === "dark" ? "" : "dark");
showLog("[ " + getTime() + " beforeClick ]&nbsp;&nbsp;" + treeNode.name);
return (treeNode.click != false);
}
function zTreeBeforeDblClick(treeId, treeNode) {
if (treeNode != null && treeNode != 'undefined') {
$("#hidId").val(treeNode.id);
$("#hidName").val(treeNode.name);
window.returnValue = $("#hidId").val() + "|" + $("#hidName").val();
//alert($("#hidId").val() + "|" + $("#hidName").val());
window.close();
}
}
function onClick(event, treeId, treeNode, clickFlag) {
//showLog("[ " + getTime() + " onClick ]&nbsp;&nbsp;clickFlag = " + clickFlag + " (" + (clickFlag === 1 ? "普通选中" : (clickFlag === 0 ? "<b>取消选中</b>" : "<b>追加选中</b>")) + ")");
//window.close();
}
function showLog(str) {
if (!log) log = $("#log");
log.append("<li class='" + className + "'>" + str + "</li>");
if (log.children("li").length > ) {
log.get().removeChild(log.children("li")[]);
}
}
function getTime() {
var now = new Date(),
h = now.getHours(),
m = now.getMinutes(),
s = now.getSeconds();
return (h + ":" + m + ":" + s);
} $(document).ready(function() {
$.fn.zTree.init($("#treeDemo"), setting, zNodes);
}); </SCRIPT> <ul id="treeDemo" class="ztree"></ul>
<asp:HiddenField ID="hidId" runat="server" />
<asp:HiddenField ID="hidName" runat="server" />

Depart.aspx.cs:

        public StringBuilder sb = new StringBuilder();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataSet ds;
string strSql = "select * from dt_Depart";
ds = ZBGA.DBUtility.DbHelperSQL.Query(strSql);
sb.Append("[");
for (int i = ; i < ds.Tables[].Rows.Count; i++)
{
sb.Append("{");
string id = ds.Tables[].Rows[i]["ID"].ToString();
sb.Append("id:\"" + id + "\"");
sb.Append(",");
string pId = ds.Tables[].Rows[i]["ParentId"].ToString();
sb.Append("pId:\"" + pId + "\"");
sb.Append(",");
string name = ds.Tables[].Rows[i]["Title"].ToString();
sb.Append("name:\"" + name + "\"");
sb.Append(",");
sb.Append("t:\"" + name + "\"");
sb.Append("}");
if (i != ds.Tables[].Rows.Count - )
{
sb.Append(",");
}
}
sb.Append("]");
}
}

双击某一项后把该项的值传递给父窗口,并关闭自身

在ASP.NET中ShowModalDialog+ztree的使用的更多相关文章

  1. c#ASP.NET中页面传值共有这么几种方式

    一.目前在ASP.NET中页面传值共有这么几种方式: 1.Response.Redirect("http://www.hao123.com",false); 目标页面和原页面可以在 ...

  2. asp.net中Repeater控件用法笔记

    大家可能都对datagrid比较熟悉,但是如果在数据量大的时候,我们就得考虑使用 repeater作为我们的数据绑定控件了.Repeater控件与DataGrid (以及DataList)控件的主要区 ...

  3. Asp.net中,从弹出窗体取选择值(转)

    在Asp.net中,从A页面中弹出B页面,在B页面中选择数据后,关闭并将数据更新到A页面,是一种常用 的方式.只是我对Javascript不熟悉,所以捣鼓了一下午,终于有了一点成绩:测试项目有两个页面 ...

  4. asp.net中的时间日期选择控件

    asp.net中的时间日期选择控件 Posted on 2008-07-17 17:37 飛雪飄寒 阅读(22922) 评论(6) 编辑 收藏     在系统中经常需要进行时间日期选择(比如查询时间范 ...

  5. ASP.NET中MessageBox的实现

    asp.net中没有MessageBox这个控件,固然可以插入Winform里的MessageBox,但一般不提倡,所以只能变通实现,主要有这几种方法: 1.直接利用javascript的alert和 ...

  6. ASP.NET中常用的优化性能的方法

    1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接池( ...

  7. asp.net中ashx生成验证码代码放在Linux(centos)主机上访问时无法显示问题

    最近有个项目加入了验证码功能,就从自己博客以前的代码中找到直接使用,直接访问验证码页面报错如下: 源代码:asp.net中使用一般处理程序生成验证码 Application Exception Sys ...

  8. ASP.NET中Session的sessionState 4种mode模式

    1. sessionState的4种mode模式 在ASP.NET中Session的sessionState的4中mode模式:Off.InProc.StateServer及SqlServer. 2. ...

  9. Asp.net中存储过程拖拽至dbml文件中,提示无法获得返回值

    Asp.net中存储过程拖拽至dbml文件中,提示无法获得返回值,去属性表中设置这时候会提示你去属性表中更改返回类型. 其实存储过程返回的也是一张表,只不过有时候存储过程有点复杂或者写法不规范的话不能 ...

随机推荐

  1. JavaScript简介、语法

    一.JavaScript简介 1.JavaScript是个什么东西? 它是个脚本语言,需要有宿主文件,它的宿主文件是HTML文件. 2.它与Java什么关系? 没有什么直接的联系,Java是Sun公司 ...

  2. 解析Android开发优化之:对Bitmap的内存优化详解

    在Android应用里,最耗费内存的就是图片资源.而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常.所以,对于图 ...

  3. nyist 740 “炫舞家“ST(动态规划)

    dp[i][j][k]:表示第i次踩踏后两脚的位置j,k 先固定一只脚的位置j,第i次踩踏后,状态为dp[i][j][a[i]]或者dp[i][a[i]][j],其中a[i]表示第i个输入的元素,则有 ...

  4. Oracle DBMS_SESSION

    Version 11.1   General Purpose Try dbms_session.reset_package. This call will reset all packages var ...

  5. Python正则匹配多行,多个数据

    最近用Python做一个crawler工具的时候,发现用一个正则表达式可以匹配到个数据的时候用match.group()只能打印出第一个数据,其它数据不能打印出来.最后找到解决方法,现在记录一下,直接 ...

  6. qt容器在并发时需要注意的地方

    最近用tbb和qt写了一个延时摄影后期控制镜头的工具,主要就是扫描目录下所有图片,按照给定参数截取图片中某区域并另存,模拟镜头摆动. 扫描后的图片路径保存在qlist内,作为只读数据,交由tbb的pa ...

  7. gmail

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.N ...

  8. 数据库分库分表(sharding)系列【转】

    原文地址:http://www.uml.org.cn/sjjm/201211212.asp数据库分库分表(sharding)系列 目录; (一) 拆分实施策略和示例演示 (二) 全局主键生成策略 (三 ...

  9. ubuntu如何跑arm程序

    1. 首先确定一间配置好arm linux 交叉编译器,可以使用arm-linux-gcc. 2. 看示例代码hello.c #include<stdio.h> int add(int a ...

  10. DS1302-演示代码

    参考DS1302数据手册,尽管数据手册是英文,但是很有帮助,再结合网上众多的代码写出了下面这个例子,除了涓流充电(trickle charger)功能没使用外,内部的RAM和寄存器功能都使用到了,包括 ...