• B/S----用户控件


    用户控件

    用户控件与页面的区别:
    1.扩展名:.ascx    .aspx
    2.内容:页面完整的HTML标记,用户控件没有完整的HTML标记
    3.声明指示符:页面<%@ Page ...%>  用户控件<%@ Control ...%>
    4.类的派生:页面派生自Page    用户控件派生自UserControl
    5.页面可以独立运行,但用户控件不能,它只能放在页面中才能运行。

    用户控件的好处:
    1.代码重用。
    2.分工开发。
    3.结构良好。

    难点:
    一、交换信息
    (一)从外向内操作——在页面中操作用户控件里面的控件
    1.事先给用户控件定义属性,通过属性实现给用户控件赋值。
    2.使用用户控件对象的FindControl()方法找到它里面的控件,强制转换出来,对它进行操作。
    (二)从内向外操作——在用户控件中操作它所在的页面的控件。
    下次课
    二、路径
    (一)标签/控件路径:使用带有runat=server的标记。
    (二)样式表的路径:使用外部样式表。
    (三)外部脚本文件的路径:使用ResolveClientUrl()来动态转换路径。
    <script src="<%=ResolveClientUrl("Script/JavaScript.js")%>"></script>
    三、命名
    任何带有runat=server的标签/控件,放到用户控件中后,在生成的HTML中,它的ID和Name都会发生一些变化。
    如何在JS中,获得它们生成出来的HTML中的ID,Name到底是什么?
     var t = document.getElementById("<%= TextBox1.ClientID %>");

     Web标准控件的ID,ClientID,UniqueID区别?
     ID - 设计时候的控件的ID。控件的这个对象的变量名。
     ClientID - 运行呈现为HTML后的ID名。
     UniqueID - 运行呈现为HTML后的Name名。

    从用户控件向页面中传递数据:
    法一:使用Session传递。
    1.在按钮点击时候,把值放到Session中去。
    2.重写页面的OnLoadComplete方法,在这个方法中把值从Session中取出来。
    注意:不要在Page_Load中取出Session 来。原因是:每次点击按钮的时候,Page_Load总是在按钮的Click之前触发。


    法二:使用代理(委托 delegate)向页面传值
    什么是代理?——代理是指向方法的指针。
    代理与类非常相似但又很不相同。
    类和对象:
    第一步:使用class关键词定义一个新类
    public class Ren
    {
        public void Speak()
        {
            ....
        }
    }
    第二步:使用这个类来定义变量。
    private Ren r;

    第三步:实例化Ren对象,把这个对象赋给栈里的变量
    r = new Ren();

    第四步:通过调用栈里的变量来实现对堆里的对象的操作。
    r.xxxx

    代理委托:
    第一步:使用delegate关键词定义一个新的代理类型。
    public delegate 代理的返回类型 代理名(参数列表);
    public delete void ShowDelegate(string s);

    第二步:使用上面的代理类型来定义代理变量。
    private ShowDelegate Show;

    第三步:指定一个函数,把这个函数赋给代理变量Show
    void Haha(string aaa)
    {
        Console.WriteLine(aaa);
    }
    Show = new ShowDelegate(Haha);

    第四步:使用代理调用指向的函数
    Show("Hello");

  • 相关阅读:
    禁止button响应回车(.net页面)
    windows server 2022避坑指南
    windows中powershell无法使用ng命令
    使用IKVM实现C#调用jar包
    CENTOS7破解ROOT密码
    【原创】LINQ to SQL学习笔记(一)——Where
    【原创】LINQ to SQL学习笔记(四)——Join(1)
    【原创】LINQ to SQL学习笔记(三)——聚集函数(一)
    【原创】LINQ to SQL学习笔记(二)——Select
    cookie 的使用和一些注意事项
  • 原文地址:https://www.cnblogs.com/likaixuan/p/4561985.html
Copyright © 2020-2023  润新知