zoukankan      html  css  js  c++  java
  • 用户控件(一) ----交换信息

    用户控件
    用户控件是个什么东西?自定义的反复重用的控件集合

    好处?1.代码重用2.结构良好3.分工开发4.局部缓存

    难点:
    一.交换信息:A、页面操控 用户控件(代码在页面端);B、用户控件操控页面(代码在控件中)
    (一)、 A 由页面的控件 向 用户控件中的控件传递信息:
    例子:

    思路(法一)

    1、将页面中要传递的信息读出来;
    2、 找到用户控件中接受信息的 控件;
    3 、 将信息传给找到的控件
    页面 按钮中的代码:
    protected void Button1_Click(object sender, EventArgs e)
    {
    string s = TextBox1.Text;
    TextBox textbox1= jiaohuan1.FindControl("textbox1") as TextBox;
    textbox1.Text = s;
    }
    思路(法二)
    1、在用户控件中 设置属性
    public string textvalue
    {
    get
    {
    return TextBox1.Text; // 输出值
    }
    set
    {
    TextBox1.Text = value;// 获得值
    }

    }
    2、在页面中的 按钮中的代码:
    jiaohuan1.textvalue =TextBox1.Text;

    B、用户控件操控页面(代码在控件中)
    问题: 从用户控件中向页面传值:由于 用户控件可以同时在多个页面引用,所以无法确定传值的对象:
    解决法一、思路: 使用session 传值:
    1、 在用户控件中将要传递的值取出来放到 session["values"] 中
    2、在页面中使用时 在onloadcompleate 后调用session["values"]
    注释:在页面中 输入 override oncomplete 点击enter 后出现框架:
    protected override void OnLoadComplete(EventArgs e)
    {
    if (Session["values"] != null)
    {
    TextBox1.Text = Session["values"].ToString();
    }
    }


    方法二、 代理(delegate 、 委托) 指向方法(动作)的引用《方法调方法》

    代理的使用步骤:
    第一步: 使用 delegate 定义一个新的代理类型。
    public delegate 返回类型 代理类型名( 参数定义);
    例如:public delegate void ShowDelegate(string s);
    第二步:使用新的代理类型定义一个变量(代理变量)
    ShowDelegate Show;
    第三步:把代理变量指向一个新的方法
    Show = new ShowDelegate(方法名);
    第四步:通过调用代理来实现对方法的调用。
    Show("hello");
    例子:


    //步骤一、 声明 代理类型(用户控件中)
    public delegete void showDelegate(string s)
    //步骤二、 定义代理变量(用户控件中)
    public showdelegate show;

    ****************此步写在页面端页面加载(Page_load 中)******************************
    //步骤三、 让代理指向方法 (告诉代理你要做的具体事情)
    TestUC.show = new testuc.showdelegate(setvalues);

    private void setvalues(string s)
    {
    textbox2.text = s;
    }
    **********************************************

    ********************此步写在用户控件中点击按钮中**************************
    //步骤四、通过 调用代理来实现对方法的调用
    if(show!=null)
    {
    string s = textbox1.text;
    show(s);
    }

  • 相关阅读:
    Jquery实现类似百度的搜索框
    Spring mvc 初始化过程
    Git学习笔记(2)-Eclipse中Git插件使用
    Git学习笔记(1)
    Tomcat7设置环境变量供java代码读取
    webpack+gulp实现自动构建部署
    netty 粘包问题处理
    java 并发工具类CountDownLatch & CyclicBarrier
    add spring-boot modules to maven project
    Spring Boot (#1 quick start)
  • 原文地址:https://www.cnblogs.com/woniu-net/p/4759655.html
Copyright © 2011-2022 走看看