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);
    }

  • 相关阅读:
    17.1.2.1 Advantages and Disadvantages of Statement-Based and Row-Based Replication
    17.1.2 Replication Formats
    Setting the Master Configuration on the Slave
    17.1.1.9 Introducing Additional Slaves to an Existing Replication Environment
    17.1.1.8 Setting Up Replication with Existing Data
    17.1.1.7 Setting Up Replication with New Master and Slaves
    17.1.1.6 Creating a Data Snapshot Using Raw Data Files
    列出display的值,并说明它们的作用
    CSS设置DIV居中
    CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?
  • 原文地址:https://www.cnblogs.com/woniu-net/p/4759655.html
Copyright © 2011-2022 走看看