使用母版页
左直拳
早在二年前使用ASP。NET1。1的时候,面对许许多多风格、控件位置摆放非常相似的页面,总在做着拷贝、粘贴、修改的工作,虽然已经尽量使用用户控件,但还是有相当多重复的代码。我就想:“如果可以搞个自定义的页面基类,上面定好一些常用的样式、控件,以后创建新页就从基类派生该有多好”。
可是一直没有实现该功能,或者说,是没有这样做过。人就是这样奇怪,明知道某件事是很好的,可总提不起精神,拿不出时间去做,仿佛被鬼迷了。这也是世界上有人富裕有人穷的原因吧。据说富人与穷人的区别在于,他们在闲暇时间都忙些什么。不付出,又怎么会有收获呢?
道理谁都懂,实践起来就难。
现在好了,可以使用ASP。NET2。0提供的母版页。
比如,一个网站的页面往往由
页头:上面放LOGO,导航条之类
页脚:什么关于、联系我们、版权信息
菜单:放在左侧或右侧
内容块:每个页面独有的内容
这几块组成。这时可将页头、页脚、菜单放在母版页,然后每个页面绑定母版页,做到每个页面只专注于自己的内容块。
稚嫩的雄鹰长出了翅膀从此可以飞过高山,幼小的老虎磨出了利爪往后能够扑杀猎物,新建一个页面呵,从今往后再也不用拷贝一个老页面,然后再修改!
但也出现了一些小小的问题。
1、是服务器控件或者凡是runat=server的控件,其ClientID在页面输出后,都跟在设计时不一样了。例如有个
<input type="text" id="txtName" runat="server" />
但输出后,却变成了
<input type="text" id="ctl00_Main_txtName" />
如果你原本在javascript里如下引用:document.getElementById("txtName");现在多半找不到了。可以沿用ASP的做法:
document.getElementById("<%=txtName.ClientID%>");
2、内容页要访问母版页上的控件不象同一页那么方便。
需要用Page.Master.FindControl();的方式,例如,
TextBox txt = (TextBox)Page.Master.FindControl(“txtName”);
假如要访问的控件是用户控件,这样写
MyCtrl myctrl = (MyCtrl)Page.Master.FindControl(“MyCtrl<chmetcnv unitname="”" sourcevalue="1" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">1<span style='FONT-FAMILY: "Times New Roman"; mso-ascii-font-family: 新宋体'>”</span></chmetcnv>);
多半会编译出错,说缺乏MyCtrl的定义。原因是该控件在母版页上声明:
<%@ Register Src="myCtrl.ascx" TagName="myCtrl" TagPrefix="uc1" %>
一般情况下在内容页就不用再声明了。但如果要访问它就不同,也要在内容页的头部加上这一句。并没有重复声明的麻烦。
3、要支持在母版页上的控件事件怎么办?
比如说,我要在内容页支持我自己写的用户控件MyCtrl(在母版页)的OnClick事件该怎么办?总不能将代码写在母版页吧?
别忘了,事件本质是委托,我们只要在内容页添加对该事件的委托就行了。
以前1.1的时候,代码页面有Page_Init事件的代码,可2.0就不知道跑哪去了。幸而自己加上去也有效:
protected void Page_Init(object sender, EventArgs e)
{
MyCtrl myctrl = (MyCtrl)Page.Master.FindControl(“MyCtrl<chmetcnv unitname="”" sourcevalue="1" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">1<span style='FONT-FAMILY: "Times New Roman"; mso-ascii-font-family: 新宋体'>”</span></chmetcnv>);
if (myctrl != null)
{
myCtrl.Click += new MyCtrl.ClickEventHandler(MyCtrl1_Click);
}
}
分享到:
相关推荐
本文将深入探讨在Visual Studio 2015中如何使用母版页,以及如何创建嵌套母版页。 首先,我们来理解母版页的基本概念。母版页是一个特殊的ASP.NET网页,其中包含了一个网页的通用布局,如头部、底部、侧边栏等元素...
在ASP.NET web开发中,创建一致且易于管理的网站风格是一项关键任务,这可以通过使用母版页(Master Pages)和主题(Themes)来实现。母版页提供了网页布局的统一框架,而主题则允许快速应用全局外观和感觉。在本...
### 使用母版页提供网站级网页模板 #### 实训背景及目标 在现代Web开发中,网站一致性设计显得尤为重要。为了提高开发效率并保持统一的风格,母版页(Master Page)成为一种常用的设计模式。母版页允许开发者定义...
从给定的文件信息来看,主要讨论的是在ASP.NET 2.0中使用母版页(Master Page)时遇到的问题,具体是JavaScript无法在页面上正常工作,导致预期的功能无法实现。下面将深入分析这个问题,并提供可能的解决方案。 ### ...
使用母版页面一个简单的网站
通过使用母版页,开发者可以轻松地更新整个网站的公共部分,而不必逐一修改每个页面。 在VS08(Visual Studio 2008)这个开发环境中,创建和使用ASP.NET母版页非常便捷。以下是一些关于母版页的核心知识点: 1. **...
下面将详细探讨母版页的使用方法,尤其是母版页值传递。 1. 创建母版页 首先,我们需要在Visual Studio或任何支持ASP.NET的开发环境中创建一个新的`.master`文件,这就是母版页。在这个文件中,我们可以定义公共的...
9.1 母版页概述 162 9.2 母版页的创建 162 9.3 母版页的使用 164 9.3.1 在内容页中使用母版页 164 9.3.2 内容页和母版页的交互 166 9.3.3 母版页的嵌套 167 9.4 常见问题 169 ...9.4.2 母版页使用频繁吗 170
对于初学者来说,理解并掌握.net母版页的使用至关重要,因为它能够极大地提高开发效率和网站的维护性。 首先,我们来详细了解母版页的基本结构。一个母版页通常包含HTML结构、样式表链接、脚本引用以及一些重复性的...
对母版页使用CSS与JavaScript 在Web开发中,使用母版页(Master Page)可以方便地实现页面统一布局和样式管理。但是,当我们在使用母版页时,如何使用CSS和JavaScript变得非常重要。因为母版页的内容页不能包含...
在ASP.NET开发中,母版页(Master Page)是一种强大的工具,用于创建具有...通过这个教程,开发者不仅可以学习到如何将静态页面转换为动态ASP.NET页面,还能掌握母版页的使用技巧,从而提高网站开发的效率和一致性。
总的来说,这个实验涵盖了ASP.NET开发中重要的页面布局和导航设计,通过实际操作,学生能更好地掌握如何使用母版页创建一致的页面布局,以及如何利用导航控件如Menu和TreeView来提供直观的用户导航。这些技能对于...
母版页是网页设计中的一个重要概念,特别是在使用ASP.NET等Web开发框架时,它能显著提高网站的统一性和效率。母版页(Master Page)允许开发者创建一个共享的设计模板,这个模板可以包含整个网站的通用布局,如头部...
通过结合使用母版页和皮肤,开发者可以创建一个具有高度一致性、易于维护的用户界面。母版页负责全局布局,而皮肤则关注各个控件的样式。这种分离使得设计和编码工作更加清晰,同时允许在不影响业务逻辑的情况下轻松...
通过使用母版页,开发者可以确保所有页面都具有相同的外观和感觉,同时减少代码重复,提高维护性。 母版页的工作原理是,当一个具体的网页(内容页,Content Page)被请求时,它会与对应的母版页结合。母版页定义了...
在PHP开发中,母版页(Master Page...通过以上步骤,你将能够熟练掌握如何使用Smarty在PHP项目中实现母版页功能。这个资料大全旨在帮助开发者更好地理解和运用这一技术,提升开发效率,同时保持代码的整洁和易于维护。
通过使用母版页,开发者可以确保网站的整体一致性,同时简化了页面设计和维护的工作。 其次,站点地图(Site Map)是一种结构化地表示网站导航的方法,它定义了网站的层次结构,帮助用户和搜索引擎更好地理解网站的...
当一个网站使用同一母版页时,所有页面都将继承相同的布局。母版页的修改会自动反映在所有应用它的页面上,极大地提高了维护效率。 **母版页基础**: - **重用性**:母版页允许定义页面的一部分并在多个页面中重复...
在这个特定的项目中,“ASP.NET主题母版页内容页”指的是使用ASP.NET框架创建的网站,该网站利用了母版页(Master Page)和内容页(Content Page)的概念来实现统一的页面布局和设计。 母版页是ASP.NET中的一个重要...