asp.net中母版页使用总结

asp.net中母版页使用总结
一、内容页访问母版页的方法;
有两种方法:
1、使用FindControl访问母版页中的控件
如:Label1.Text = ((Label)Master.FindControl("label1")).Text;

2、使用MasterType指令访问母版页中的控件
如:Label2.Text = Master.LabelText;

说明:在内容页中使用MasterType指令后,将使得内容页中的Master属性被强类型化,也就是说,通过MasterType指令,可以创建与内容页相关的母版页的强类型引用。由此,可以在内容页中,使用Master对象访问母版页的公共方法、属性和控件等成员。
二、内容页中动态更改母版页;
        protected void Page_Load(object sender, EventArgs e)
        {
            this.MasterPageFile = "~/other.Master";
        }
这种方法要求更换的母版页和被更换的母版页有相同的ContentPlaceHolder控件数量和ID。
三、内容页中动态设置Title
有两种方法:
1、在Page中设定
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs"
Inherits="Mainsite.WebForm1" MasterPageFile="~/topbottom.Master" Title="New Web1"%>

2、代码中设定
        protected void Page_Load(object sender, EventArgs e)
        {
            this.Header.Title = "New Title";
        }
Page.Header属性返回的是IPageHeader接口类型的实例,里面包含了Title和StyleSheet。
四、内容页如何使用css和javascript;
有两种方法:
1、在内容页的PageLoad事件中通过代码来指定本内容页的css文件
        protected void Page_Load(object sender, EventArgs e)
        {
            HtmlLink link = new HtmlLink();
            link.Href = "css/projectPage.css";
            link.Attributes["rel"] = "stylesheet";
            link.Attributes["type"] = "text/css";
            this.Header.Controls.Add(link);
        }
2、 在母版页的<head></head>中添加一个内容控件,然后在内容页中在对应的内容控件中写css和javascript代码。
这种方法和其他Content的用法一样,就不再多介绍了。

这两种方法都存在的缺点是:在设计时看不到CSS的效果。

五、内容页中调用Load中的方法
两种方法可以实现

1.客户端:
在内容页的Content中添加JS代码。
<script language="javascript" type="text/javascript">

window.onload=function getTime()
{
    var date = new Date(); //日期对象
    var now = "";
    now = date.getFullYear()+"-"; //读英文就行了
    now = now + (date.getMonth()+1)+"-"; //取月的时候取的是当前月-1如果想取当前月+1就可以了
    now = now + date.getDate();
    document.getElementById("txtAddDate").value=now;
}
</script>

2.服务器端:

protected override void Render(HtmlTextWriter writer)
     {
         //继承模板页的内容页加入 onload 事件
         System.IO.StringWriter sw = new System.IO.StringWriter();
         HtmlTextWriter htw = new HtmlTextWriter(sw);
         base.Render(htw);
         writer.Write(sw.ToString().Replace("<body", "<body onload=javascript:alert('欢迎光临!');"));
     }

 

你可能感兴趣的:(JavaScript,object,css,asp.net,webform,stylesheet)