js获取TreeView控件选中节点的Text和Value值的方法_javascript技巧

在实际项目中,遇到一个问题,首先弹出一个新窗口,新窗口中放了一个TreeView控件,TreeView控件的数据绑定在我的上一篇随笔(TreeView绑定XML数据源C#代码示例)中有讲到,现在要解决的是,如何单击TreeView中一个节点,返回Text和Value到父页面并关闭该新窗口。
首先,在后台代码中为TreeView添加属性onclick以支持TreeView的客户端事件,代码如下:

复制代码 代码如下:

if (!IsPostBack)
{
TreeView1.Attributes.Add("onclick", "ReturnValue()");//ReturnValue为javascript函数
BindTreeView();
}

那现在就要解决如何通过js获得TreeView中被选中的那个节点,脚本如下:

复制代码 代码如下:

function ReturnValue() {
var objNode = event.srcElement;
var unitid = event.srcElement.href;
if (objNode.tagName != "SPAN") {
return;
}
window.opener.document.getElementById("txtUnit").value = objNode.getAttribute("innerHtml");
window.opener.document.getElementById("txtUnitID").value = unitid;
window.close();
}

其实这里用了点小花招,因为我实在不知道在哪个属性里能获得绑定给TreeView的ValueField的值,所以,Value值我一并绑给了NavigateUrl,也就是写黄色部分代码的原因,Html代码如下:

复制代码 代码如下:

<asp:TreeView ID="TreeView1" runat="server" ExpandDepth="1">
<DataBindings>
<asp:TreeNodeBinding TextField="NAME" ValueField="Value" NavigateUrlField="Value" SelectAction="None" />
</DataBindings>
</asp:TreeView>

红色部分代码是用来获取TreeView上显示文字的,因为如果你去查看源文件的话,你会发现,TreeView的Text属性值被放在了SPAN中。
绿色部分代码是用来回填父页面的,但是要注意的是,"txtUnit"必须是客户端控件,因为如果是服务器端控件,弹窗在编译时会报不存在该控件。
这样,我需要的功能就实现了!另外,有人可能会说,父页面中用来装载回填值的是客户端控件,那如果要在服务器事件中使用怎么办?也很简单,C#代码如下:
Request.Form["txtUnit"].ToString();
但是要注意了,这里的"txtUnit"可不是控件ID,而是name属性了!

时间: 2024-11-08 17:51:17

js获取TreeView控件选中节点的Text和Value值的方法_javascript技巧的相关文章

JS获取及设置TextArea或input文本框选择文本位置的方法_javascript技巧

本文实例讲述了JS获取及设置TextArea或input文本框选择文本位置的方法.分享给大家供大家参考.具体实现方法如下: function getPos(el) { var range, textRange, duplicate el.focus() if ( el.selectionStart ) return el.selectionStart else if ( document.selection ) { // IE range = document.selection.createR

JS获取月份最后天数、最大天数与某日周数的方法_javascript技巧

本文实例讲述了JS获取月份最后天数.最大天数与某日周数的方法.分享给大家供大家参考,具体如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>标题页</title> <script language="javascript"> function getLastDay(year,month) { var new_year = year; /

c#treeview控件问题-c#中treeview控件插入节点

问题描述 c#中treeview控件插入节点 在该控件中,,两节点之间插入一个节点,,大虾,,求救,,......... 解决方案 var tn = new TreeNode("1111"); treeview1.Nodes[n].Nodes.Add(tn); tn.Next = treeview1.Nodes[n].Nodes[原先的第二个节点]; 解决方案二: C# treeview控件部分节点添加checkboxC# TreeView控件中的nodemouseclick事件C#t

.Net中给TreeView控件的节点赋id值

1,首先说明,这个TreeView控件是属于Winform下的控件. 2,用惯Webform的朋友肯定知道,Webform下的TreeView控件是有SelectedNode.Text和SelectedNode.Value这两个属性的.但是,Winform下的TreeView控件却没有SelectedNode.Value这个属性,因此有很多朋友都碰到一个问题,如何把例如像id的值赋给这个TreeView呢? 3,多数的Winform控件都有Tag这个属性.对,我们就是要用Tag来对节点赋id值.

求助 js获取 datalist控件值..........................

问题描述 目前我做了个嵌套datalist绑定显示在里面datalist中有个hidden控件生成的代码如下.<inputname="dlModule$ctl01$dlOperation$ctl01$lblAfter"type="hidden"id="dlModule_ctl01_dlOperation_ctl01_lblAfter"value="0"/>原控件为:<inputid="lblAfte

请问一个基本都无解的问题,C#的树形控件选中节点时,节点有一圈虚线框,怎么把它去掉啊

问题描述 解决方案 解决方案二:为什么要把它去掉呢?虚框是'焦点标志(FocusCue)',让用户知道当前的输入焦点.当然如果你很不喜欢,可以重载OnDrawNode(DrawTreeNodeEventArgse),自己渲染结点.解决方案三:圈起来了文字就不是很清楚,特别是树上节点比较多时看起来就比较吃力,现在就是在OnDrawNode中设置了选中节点的颜色,重画这个矩形边框还是不行,给个思路吧

基于JS分页控件实现简单美观仿淘宝分页按钮效果_javascript技巧

最新版本代码请移步到https://github.com/pgkk/kkpager 在线测试链接:http://pgkk.github.io/kkpager/example/pager_test.html 分页按钮思想: 1.少于9页,全部显示 2.大于9页,1.2页显示,中间页码当前页为中心,前后各留两个页码 附件中有完整例子的压缩包下载.已更新到最新版本 先看效果图: 01输入框焦点效果 02效果 模仿淘宝的分页按钮效果控件kkpager JS代码: Js代码 var kkpager = {

获取表单控件原始(初始)值的方法_javascript技巧

复制代码 代码如下: var saveObject = {};//保存变更的值 function saveThisData(obj,type){//产生变更的数据会在右侧显示原值 var defaultValue,newValue,key,displayValue; var defaultValueDisplayFont; switch (type) { case 'select'://Ext下拉框 defaultValue=obj.originalValue.split(']')[0].sub

js实现不提交表单获取单选按钮值的方法_javascript技巧

本文实例讲述了js实现不提交表单获取单选按钮值的方法.分享给大家供大家参考.具体如下: 这是JS实现的特效,不提交表单获取相关的控件值.如本例所示,不提交表单即可获取单选按钮的值. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-alert-show-table-value-codes/ 具体代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"