热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Treeview动态添加用户控件取值和传值

今天做了很好玩的树,是treeview与用户控件之间进行交互先看效果:主要功能:勾选子节点的checkbox,右边会动态加载该节点的信息,

今天做了很好玩的树,是treeview与用户控件之间进行交互先看效果:

主要功能:勾选子节点的checkbox,右边会动态加载该节点的信息,出现TextBox让用户填写节点的值,点击保存按钮将文本框的值保存到对应的节点。

里面涉及到了asp执行ascx页面里的事件,并取值。

这是前台的代码:CustomXMLmanager2.aspx

View Code

1 <%&#64; Page Language&#61;"C#" AutoEventWireup&#61;"true" CodeBehind&#61;"CustomXMLmanager2.aspx.cs" Inherits&#61;"usexml.CustomXMLmanager2" %>
2
3 <%&#64; Register src&#61;"Custom2.ascx" tagname&#61;"Custom2" tagprefix&#61;"uc1" %>
4
5 "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
6
7 "http://www.w3.org/1999/xhtml">
8 "server">
9
10
11
12
13
30 "form1" runat&#61;"server">
31


32 "ScriptManager1" runat&#61;"server">
33

34 "UpdatePanel1" runat&#61;"server">
35
36 "100%" style&#61;"border: 2px dotted #008080">
64
65
81
82
"30%">
37
38
39 "TreeView1" runat&#61;"server" ImageSet&#61;"Simple" ShowCheckBoxes&#61;"Leaf"
40 ShowLines&#61;"True"
41 ViewStateMode&#61;"Enabled">
42 "True" ForeColor&#61;"#5555DD" />
43
44 "个人信息" Value&#61;"海洋信息数据集">
45 "名字" Value&#61;"数据名称">
46 "性别" Value&#61;"数据格式">
47 "年龄" Value&#61;"数据摘要">
48 "帅不帅" Value&#61;"帅不帅">
49 "漂不漂亮" Value&#61;"漂不漂亮">
50

51

52 "Tahoma" Font-Size&#61;"10pt" ForeColor&#61;"Black"
53 HorizontalPadding&#61;"0px" NodeSpacing&#61;"0px" VerticalPadding&#61;"0px" />
54 "False" />
55 "True" ForeColor&#61;"#5555DD"
56 HorizontalPadding&#61;"0px" VerticalPadding&#61;"0px" />
57

58
59
60
61
62
63
"background-color: #008080; width: 2px">
66
67
68
69
70
71
72
73 "PlaceHolder1" runat&#61;"server">
74
75
76
77
78
79
80

83

84
85

86

87

88
89

90
"center">"Button1" runat&#61;"server" Text&#61;"保存"
91 οnclick&#61;"Button1_Click" />

92
93
94

这是后台代码:CustomXMLmanager2.aspx.cs

View Code

1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Web;
5 using System.Web.UI;
6 using System.Web.UI.WebControls;
7 using System.Reflection;
8
9 namespace usexml
10 {
11 public partial class CustomXMLmanager2 : System.Web.UI.Page
12 {
13 protected void Page_Load(object sender, EventArgs e)
14 {
15
16 if (IsPostBack)
17 {
18
19
20 //if (ViewState["node"] !&#61; null)
21 //{
22 // nodes1();
23
24 //}
25
26 nodes1();
27
28
29 }
30
31
32
33
34
35
36
37 TreeView1.Attributes.Add("onclick", "postBackByObject()");
38
39 }
40
41
42 private void nodes1()
43 {
44 int tg &#61; 0;
45 foreach (TreeNode nod in TreeView1.CheckedNodes)
46 {
47
48 nod.Target &#61; tg.ToString();
49 Custom2 uc &#61; (Custom2)LoadControl("Custom2.ascx");
50 uc.Nodname &#61; nod.Text;
51 uc.Nodvalue &#61; nod.Value;
52
53 uc.Nodetag &#61; nod.Target;
54
55 PlaceHolder1.Controls.Add(uc);
56
57 tg&#43;&#43;;
58
59 }
60
61
62 }
63
64
65 protected void Button1_Click(object sender, EventArgs e)
66 {
67 for (int i &#61; 0; i 68 {
69 UserControl uc2 &#61; (UserControl)PlaceHolder1.Controls[i];
70
71 Type ucType &#61; uc2.GetType();
72
73 //用MethodInfo类来获取用户控件中的方法&#xff0e;
74
75 MethodInfo UcMethod &#61; ucType.GetMethod("GetText");// Button1_Click控件中的方法。
76
77 //在此处页面的方法中执行用户控件中的方法&#xff0e;
78
79 object[] argumentArrray &#61; new object[0];
80
81 UcMethod.Invoke(uc2, new object[0]);//调用用户控件中的方法。此处执行了&#xff01;&#xff01;。
82
83 foreach (TreeNode nod in TreeView1.CheckedNodes)
84 {
85
86
87 PropertyInfo UctextName &#61; ucType.GetProperty("PicName");
88 PropertyInfo tag &#61; ucType.GetProperty("Nodetag");
89 if (nod.Target &#61;&#61; tag.GetValue(uc2, null).ToString())
90 {
91
92 nod.Value &#61; UctextName.GetValue(uc2, null).ToString();//获取了上传的文件名信息。并显示在 page 页面上。
93
94 }
95
96
97 }
98
99
100 }
101
102 }
103
104 }
105 }

这是用户控件的前台:Custom2.ascx

View Code

1 <%&#64; Control Language&#61;"C#" AutoEventWireup&#61;"true" CodeBehind&#61;"Custom2.ascx.cs" Inherits&#61;"usexml.Custom2" %>
2


3 "Label1" runat&#61;"server" Text&#61;"Label" ForeColor&#61;"#006666">
4 "TextBox1" runat&#61;"server">
5 当前节点的值:"Label2" runat&#61;"server" Text&#61;"Label" ForeColor&#61;"#003366">
6
7

这是用户控件的后台:Custom2.ascx.cs

View Code

1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Web;
5 using System.Web.UI;
6 using System.Web.UI.WebControls;
7
8 namespace usexml
9 {
10 public partial class Custom2 : System.Web.UI.UserControl
11 {
12
13
14 private string nodname &#61; "";
15 public string nodvalue &#61; "";
16 private string nodtag &#61; "";
17 private string picname &#61; "";
18 public string Nodname
19 {
20
21
22 get
23 {
24
25 return nodname;
26
27 }
28
29 set
30 {
31
32
33 nodname &#61; value;
34
35 }
36
37
38 }
39
40 public string Nodvalue
41 {
42
43
44 get
45 {
46
47 return nodvalue;
48
49 }
50
51 set
52 {
53
54
55 nodvalue &#61; value;
56
57 }
58
59
60 }
61
62 public string Nodetag
63 {
64
65
66 get
67 {
68
69 return nodtag;
70
71 }
72
73 set
74 {
75
76
77 nodtag &#61; value;
78
79 }
80
81
82 }
83
84 public string PicName
85 {
86
87 get { return picname; }
88
89 set { picname &#61; value; }
90
91 }
92
93 protected void Page_Load(object sender, EventArgs e)
94 {
95 Label1.Text &#61; nodname&#43;"&#xff1a;";
96
97 Label2.Text &#61; nodvalue;
98
99
100 }
101
102 public void GetText()
103 {
104
105
106 picname &#61; TextBox1.Text;
107 TextBox1.Text &#61; "";
108 Label2.Text &#61; picname;
109
110
111
112 }
113
114
115 }
116 }

主要功能已实现&#xff0c;下一步我要将其结合到XML去&#xff0c;实现对XML文档的自定义扩展。



转:https://www.cnblogs.com/panan/archive/2011/12/28/2304854.html



推荐阅读
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
author-avatar
Sunny-虫虫
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有