两个WebUserControl之间传值,网上的代码有,直接从UserControl1中定位到UserControl2的写法,偶合性很强,感觉不太好,于是提供另外的写法。

  用一个容器Container.aspx来放两个WebUserControl,分别是UC1和UC2。现在假设要从UC1的一个事件触发,把UC1中的一个值传到UC2中。

1.新增一个Class,代码如下:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

//delegate要寫在共用class中,這樣的話,才可以讓PegatronEvent在不同的頁面都引用到。
public delegate void TreeViewEventHandler(object sender, PegatronEvent e);
public class PegatronEvent : EventArgs
{
    //構造函數
    public PegatronEvent()
    {
    }

//聲明變數
    public string PegatronDeptId;

}

2.UC1中写入事件

//給這個usercontrol加一個event
    public event TreeViewEventHandler DeptInfoHandler;

//TreeView的事件,当然用其他事件都OK。
    protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
    {
        PegatronEvent DeptEvent = new PegatronEvent();
        DeptEvent.PegatronDeptId = “我来传东西”;
        //以下的事件裏面的參數是一定要寫的,sender可以是某個控件的id,也可以是整個頁面(this);
        //DeptEvent也一定要,而且類型一定要是PegatronEvent,因為在App_Code/PegatronEvent.cs已經定義了。
        DeptInfoHandler(this, DeptEvent);
    }

3.在放两个Usercontrol的页面Container.aspx中加入代码:

*这是整个过程的最关键点,相当于在两个UserControl之间加一个桥梁。

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class UI_DepartContainer : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        UC1.DeptInfoHandler += new TreeViewEventHandler(UC1_DeptInfoHandler);
    }

public void UC1_DeptInfoHandler(object sender, PegatronEvent e)
    {
        //取得UserControl的TreeView返回的部門代碼
        UC2.deptid = e.PegatronDeptId.ToString();
    }
}

4.在UC2中获得值,不多说了,代码如下:

    private string _deptid;

public string deptid
    {
        get { return _deptid; }
        set 
        { 
            _deptid = value;
        }
    }

转载于:https://www.cnblogs.com/petitprince/archive/2008/09/22/1295741.html

两个WebUserControl之间传值相关推荐

  1. IOS中,在两个ViewController之间传值

    IOS中,在两个ViewController之间传值有多种方式,这里学习其中一种,利用临时变量在两个ViewController之间传值,这可能不是最好的传值方式,但是也是一种选择. 首先看看工程结构 ...

  2. 使用Block在两个界面之间传值

    首先,创建两个视图控制器,在第一个视图控制器中创建一个UILabel和一个UIButton,其中UILabel是为了显示第二个视图控制器传过来的字符串,UIButton是为了push到第二个界面. 第 ...

  3. iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)

    使用Block的地方很多,其中传值只是其中的一小部分,下面介绍Block在两个界面之间的传值: 先说一下思想: 首先,创建两个视图控制器,在第一个视图控制器中创建一个UILabel和一个UIButto ...

  4. ios两个app之间传值和跳转实现(转发)

    两个APP之间的跳转是通过[[UIApplication sharedApplication] openURL:url]这种方式来实现的. 1.首先设置第一个APP的url地址 2.接着设置第二个AP ...

  5. 如何将两个微信小程序合并_微信小程序--如何在两个页面之间传值

    先看一下本周的部分的设计图 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 页面设计并不太复杂,主要是产品类型那块点击的样式,其余的都不太复杂,没啥好说的. 这次主要是想记录一下不同页面下 ...

  6. android fragment传递参数_fragment之间传值的两种方法

    在Activity中加载Fragment的时候.有时候要使用多个Fragment切换.并传值到另外一个Fragment.也就是说两个Fragment之间进行参数的传递.查了很多资料.找到两种方法.一种 ...

  7. 从一个html页面传值到另一个页面,两个html之间的值传递(js location.search用法)

    从一个html页面传值到另一个页面,两个html之间的值传递(js location.search用法) 转载,点击跳转

  8. java两个web项目之间如何传值,两个项目之间传递参数有关问题 - 大神进

    两个项目之间传递参数问题 --- 大神进 情况 1.两个ssh项目 oms  与 GiftERP 2.调用的是GiftERP的一个Goods表,需要将表数据返回给oms项目 3.首先我oms的页面有一 ...

  9. IOS开发控制器之间传值的几种小方法

    在IOS开发中或面试中,经常会遇到,两个或者多个控制器之间传值的问题 ,总结的集中方法仅供参考! 问题 :将B控制器中的textField 输入内容,传到A控制器中的label上显示出来,如何传值? ...

  10. IOS delegate 委托 使用 两个View之间传数据

    今天讲述 delegate 的使用,并给出例子来说明如何使用delegate在两个View之间传送数据 1.建立一个 single view 工程 2.在viecontroller.xib文件里面放上 ...

最新文章

  1. Codevs 1519 过路费(Mst+Lca)
  2. strcpy和strncpy
  3. Shiro使用redis作为缓存(解决shiro频繁访问Redis)
  4. java io流学设置编码_Java学习日志(21-2-IO流-基本数据类型与字节数组对象与、编码解码)...
  5. spring----注解
  6. SharePoint2007 配置MOSS基于AD的Forms验证
  7. Python time 获取本地时间戳(包含毫秒)
  8. 【含内推码】字节跳动智能创作2022秋招提前批全面开启!
  9. NHibernate 3.x新功能实践(二) QueryOver(下)
  10. C#操作XML的完整例子——XmlDocument篇(转载,仅做学习之用)
  11. struts2拦截器interceptor的三种配置方法
  12. 恢复计算机个性化设置方法,Win7主题默认还原电脑用了主题软件没办法恢复完美解决系统主-win7主题...
  13. ofd阅读器qt_GitHub - gogo123150/ofdEditor: 一个很简陋的ofdEditor
  14. linux 查看go安装目录,Linux系统安装Go语言的步骤
  15. 解决树莓派4B从USB启动的问题
  16. 数据仓库卸数(网银系统数据库)
  17. HDU 6447 YJJ's Salesman (dp+树状数组+莫干山算法)
  18. 【微信小程序】web-view 无法打开该页面不支持打开
  19. 概率图模型(D分离)
  20. 用GRUB2来实现——坎特伯雷项目 The Canterbury Project

热门文章

  1. 机器学习 之 Hog特征
  2. python求解LeetCode 习题 Excel Sheet Column Title
  3. BOW和LSH的一点理解
  4. 数据挖掘之Apriori算法详解和Python实现代码分享_python
  5. Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2”
  6. c语言除去字符串多余的空格,从一个字符串中去除多余的空格(用指针描述)...
  7. python用正则表达式提取中文_用正则表达式从Python中的字符串中提取数字
  8. C++ multimap 用法总结 例子
  9. 微信小程序云开发教程-微信小程序的JS基础-this关键字
  10. atlas 力矩计算_Atlas 2.1.0 实践(2)—— 安装Atlas