zoukankan      html  css  js  c++  java
  • 母板页 .master

    新建-网站

    母板页: 添加新项-母版页.master结尾
    使用时,套母版页-添加新项-右下角选母版页
      可复制多个使用
    <asp:ContentPlaceHolder id="head" runat="server"><%--内容预留位置,为子页面预留放样式表,  css js的位置--%>
        </asp:ContentPlaceHolder>


         <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"><%--预留位置用于放网页内容--%>
            
            </asp:ContentPlaceHolder


    路径::::: 4个  

        1:控件路径,image,超链接,指向页面

        第一步:在WUC.ascx页面上:
        <img  src="Image/暴风截图2015102133868160.jpg" runat="server"id="id1"/><%--变成服务器控件--%>

            在控件里加两项内容;runat="server" id="id1";将控件变成变成服务器控件,用户控件下这两项内容缺一不可,
            防止不是在同一级文件夹下找不到文件,服务器自动转换路径
            

        2:样式表中用户控件路径 利用外部样式表,不要写内联的样式表
    第一步:添加新项-样式表
        将用的页面添加到head里面

         样式表页面CSS.css
          #aa {
        background-image:url(../Image/暴风截图2015102133868160.jpg) ;//  ../
            height:100px;
            100px

    }
    第二步:在WUC.ascx页面上:

        < div id="aa" ></div>

        

        3:外部资源路径 外部的js文件  ,需要调用函数来处理路径

    第一步;添加新项-JavaScript文件
           JavaScript.js页面:
           alert("你好");

    第二步:   WUC.ascx.cs:写函数

            public string ShowPath()
        {

            string path = "Script/JavaScript.js";
            path = ResolveClientUrl(path);//获取客户端浏览器可以使用的路径url
            return path;
        }
       
    第三步:  WUC.ascx页面上:直接拖过控件

           <script src="<%=ShowPath()%>"></script>


        4:页面路径:用户控件按钮点击跳转页面
            用户控件按钮点击时跳转页面:将相对路径转换为绝对路径
                           ~ 在服务器上表示网站的根目录
            protected void Button1_Click(object sender, EventArgs e)
            {
              Response.Redirect("~/main.aspx");
            }


    传值:

    一:页面向用户控件传值:
            1.用FindControl()
            
             string s = TextBox1.Text;
            //1.找到母板页
            MP mp= this.Master as MP;
            //2.用FindCotrol()去找母板页中的控件
             TextBox txt = mp.FindControl("TextBox1") as TextBox;
             txt.Text = s;

         b:属性传值
    第一步:用户控件里面写一个属性;
           public string Txt
        {
            get
            {
                return TextBox1.Text;
            }

            set
            {
                TextBox1.Text=value;
            }
        }

    第二步:在页面按钮里写
         protected void Button1_Click(object sender, EventArgs e)
        {
           
            //WUC1.Txt = TextBox1.Text;//用页面上取值给用户控件
            TextBox1.Text = WUC1.Txt;//从用户控件里面取给页面


        }

    第三步:页面控件按钮点击时:
         protected void Button1_Click(object sender, EventArgs e)
        {
           // 找到用户控件的属性
            WUC1.Txt = TextBox1.Text;
        }




    BBBB2:用户控件向页面传值:
          a:用session传值:
    第一步:在用户控件:
                 protected void Button1_Click(object sender, EventArgs e)
            {
            
            Session["txt"] = TextBox1.Text;
             }
        


    第二步:在页面上重写onloadcomplete()事件:在子类中对父类的方法的重写,
           防止数据延迟 override onloadcomplete()
            // 在页面加载完成后对页面家安在完成后对父类方法的重写
             protected override void OnLoadComplete(EventArgs e)
             {
                 base.OnLoadComplete(e);

                 if (Session["txt"] != null)
                {
                TextBox1.Text = Session["txt"].ToString();
                }
             }





    建议用  b:委托或代理;指向方法的引用,引用指向方法,,好用但是难理解;只改变指向的方法即可 delegete

                Dog d=New Dog();d引用指向的是Dog类的对象
                string s="ssss";s指向的是字符串
                public void Show(Dog);引用指向方法,指向方法的引用

                1:定义一个类
                class Dog
                {


                public int Dog;
                public void walk();

                }
                2:声明一个dog对象
                Dog d;
                3:将该引用指向Dog
                
                 d=New Dog();

                4:用该引用调对象的方法


         代理:指向方法的引用 和事件很像
        
             签名:返回类型  void,参数列表string s;

    y        1:定义一个代理 //用户控件里面
                 //加上delegate后,ShowDelegate不是原来的函数名而是代理类型名

                 public delegate void ShowDelegate(string s);
            
            2:声明一个代理的引用 //用户控件里面

            // 前面加上public后在其他类里面可以用
                 public ShowDelegate show;

            
            3:在具体页面上页面加载时3;将代理的引用指向签名匹配的(函数)方法; 可以和手动挂事件一样 ,
               += 可以挂很多事件,事件本质就是一个特殊的代理。可以指向很多方法只要签名一致就可以,
            
            show=new ShowDelegate(DO);

             protected void Page_Load(object sender, EventArgs e)
        {
             //找母版页
            MP mp = this.Master as MP;
            //给代理挂上方法
            mp.Show += GetText;
        }
            
            4:用代理调用方法 在用户控件button里面

             show("aa");

             protected void Button1_Click(object sender, EventArgs e)
        {
          

            //.调用Show方法
            string s = TextBox1.Text;
            Show(s);


            //4,用代理调用函数
            if (show != null)
            {
                show(TextBox1.Text);
            }

        }

             5:在实际页面写函数。签名必须和代理类型的一样
            public void Do(string s)
            {

            TextBox1.Text=A;
            }

  • 相关阅读:
    微服务之SpringCloud基础
    java 多线程学习
    tomcat性能优化
    js模块化规范
    jsonp及cors
    es6之各种数据类型的扩展
    es6之Promise
    es6之Set和Map
    es6之Generator
    es6之Iterator
  • 原文地址:https://www.cnblogs.com/cf924823/p/5157679.html
Copyright © 2011-2022 走看看