模板页使用总结
<%@ Page Language="C#" MasterPageFile="~/Default_Master.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="AstarBlogUI.WebForm1" Title="无标题页" %>
2.动态改变内容页所引用的模板页
通常在Init事件下改变:
protected void Page_PreInit(object sender,EventArgs e)
{this.MasterPageFile="~/ABC.master";}
3.在内容页中使用模板页中的控件
Master:<asp:Label ID="LabDemo" runat="server" text="xlovey" />
内容页:
Label lb = (Label)Master.FindControl("LabDemo");//直接在Master中找LabDemo
if (lb != null)
{
Response.Write("<script>alert('" + lb.Text.ToString() + "')</script>");
}
当控件在Master中的ContentPlaceHolder里的话则需要:
ContentPlaceHolder a = (ContentPlaceHolder)Master.FindControl("Content2");//先找到ContentPlaceHolder的ID
if(a!= null)
{
TextBox Txt=(TextBox)a.FindControl("TxtDemo");
if(Txt != null)
{
Response.write(Txt.text.ToString());
}
}
4.在内容页中使用模板页中的变量,属性,方法
首先在内容页加上:<%@ MasterType VirtualPath="~/Default_Master.Master" %>
模板页中的变量必须为:Public string WebTitle="welocome to ..."; //并放在模板页类下定义并初始化.
就可以在内容页中:Master.WebTitle进行引用.
但如果此变量在网页加载的时候改变了,引用的值还为定义时初始化的值.因为加加载模板页到内容页的事件先后为:
(1)母版页-Init(2)内容页-Init(3)内容页-Load(4)母版页-Load(5)内容页-PreRender(6)母版页-PreRender
所以,要改变变量的值应放在:母版页中的Init事件中,放在Load事件中是不行的.
例:
protected void Page_Init(object sender, EventArgs e)
{
if (!IsPostBack)
{
WebConfigSelect();//此方法对变量进行了初始化或者改变!
}
}
5.模板页或内容页中的路径最好使用"~/"而不要使用相对路径
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架