`
totoxian
  • 浏览: 1073718 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

使用母版页

阅读更多

使用母版页

左直拳

早在二年前使用ASPNET11的时候,面对许许多多风格、控件位置摆放非常相似的页面,总在做着拷贝、粘贴、修改的工作,虽然已经尽量使用用户控件,但还是有相当多重复的代码。我就想:“如果可以搞个自定义的页面基类,上面定好一些常用的样式、控件,以后创建新页就从基类派生该有多好”。

可是一直没有实现该功能,或者说,是没有这样做过。人就是这样奇怪,明知道某件事是很好的,可总提不起精神,拿不出时间去做,仿佛被鬼迷了。这也是世界上有人富裕有人穷的原因吧。据说富人与穷人的区别在于,他们在闲暇时间都忙些什么。不付出,又怎么会有收获呢?

道理谁都懂,实践起来就难。

现在好了,可以使用ASPNET20提供的母版页。

比如,一个网站的页面往往由

页头:上面放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中使用母版页(masterpage)的例子

    本文将深入探讨在Visual Studio 2015中如何使用母版页,以及如何创建嵌套母版页。 首先,我们来理解母版页的基本概念。母版页是一个特殊的ASP.NET网页,其中包含了一个网页的通用布局,如头部、底部、侧边栏等元素...

    vs2008 使用母版页\主题,控制网站风格

    在ASP.NET web开发中,创建一致且易于管理的网站风格是一项关键任务,这可以通过使用母版页(Master Pages)和主题(Themes)来实现。母版页提供了网页布局的统一框架,而主题则允许快速应用全局外观和感觉。在本...

    使用母版页提供网站级网页模板

    ### 使用母版页提供网站级网页模板 #### 实训背景及目标 在现代Web开发中,网站一致性设计显得尤为重要。为了提高开发效率并保持统一的风格,母版页(Master Page)成为一种常用的设计模式。母版页允许开发者定义...

    ASP.NET 2.0创建母版页引来的麻烦-js无用

    从给定的文件信息来看,主要讨论的是在ASP.NET 2.0中使用母版页(Master Page)时遇到的问题,具体是JavaScript无法在页面上正常工作,导致预期的功能无法实现。下面将深入分析这个问题,并提供可能的解决方案。 ### ...

    使用母版页面网站

    使用母版页面一个简单的网站

    ASP.NET母版页

    通过使用母版页,开发者可以轻松地更新整个网站的公共部分,而不必逐一修改每个页面。 在VS08(Visual Studio 2008)这个开发环境中,创建和使用ASP.NET母版页非常便捷。以下是一些关于母版页的核心知识点: 1. **...

    母版页的使用方法包括母版页值传递等等

    下面将详细探讨母版页的使用方法,尤其是母版页值传递。 1. 创建母版页 首先,我们需要在Visual Studio或任何支持ASP.NET的开发环境中创建一个新的`.master`文件,这就是母版页。在这个文件中,我们可以定义公共的...

    《零基础学ASP.NET 2.0》第9章 使用母版页统一网站界面

    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母版页设置详解

    对于初学者来说,理解并掌握.net母版页的使用至关重要,因为它能够极大地提高开发效率和网站的维护性。 首先,我们来详细了解母版页的基本结构。一个母版页通常包含HTML结构、样式表链接、脚本引用以及一些重复性的...

    对母版页使用css与javascript

    对母版页使用CSS与JavaScript 在Web开发中,使用母版页(Master Page)可以方便地实现页面统一布局和样式管理。但是,当我们在使用母版页时,如何使用CSS和JavaScript变得非常重要。因为母版页的内容页不能包含...

    母版页搭建页面框架-003静态页面.rar

    在ASP.NET开发中,母版页(Master Page)是一种强大的工具,用于创建具有...通过这个教程,开发者不仅可以学习到如何将静态页面转换为动态ASP.NET页面,还能掌握母版页的使用技巧,从而提高网站开发的效率和一致性。

    导航控件与母版页 实验

    总的来说,这个实验涵盖了ASP.NET开发中重要的页面布局和导航设计,通过实际操作,学生能更好地掌握如何使用母版页创建一致的页面布局,以及如何利用导航控件如Menu和TreeView来提供直观的用户导航。这些技能对于...

    网上的母版页网页.rar

    母版页是网页设计中的一个重要概念,特别是在使用ASP.NET等Web开发框架时,它能显著提高网站的统一性和效率。母版页(Master Page)允许开发者创建一个共享的设计模板,这个模板可以包含整个网站的通用布局,如头部...

    母版页和皮肤.

    通过结合使用母版页和皮肤,开发者可以创建一个具有高度一致性、易于维护的用户界面。母版页负责全局布局,而皮肤则关注各个控件的样式。这种分离使得设计和编码工作更加清晰,同时允许在不影响业务逻辑的情况下轻松...

    母版页的使用

    通过使用母版页,开发者可以确保所有页面都具有相同的外观和感觉,同时减少代码重复,提高维护性。 母版页的工作原理是,当一个具体的网页(内容页,Content Page)被请求时,它会与对应的母版页结合。母版页定义了...

    php母版页资料大全

    在PHP开发中,母版页(Master Page...通过以上步骤,你将能够熟练掌握如何使用Smarty在PHP项目中实现母版页功能。这个资料大全旨在帮助开发者更好地理解和运用这一技术,提升开发效率,同时保持代码的整洁和易于维护。

    母版页+站点地图+用户控件.rar

    通过使用母版页,开发者可以确保网站的整体一致性,同时简化了页面设计和维护的工作。 其次,站点地图(Site Map)是一种结构化地表示网站导航的方法,它定义了网站的层次结构,帮助用户和搜索引擎更好地理解网站的...

    主题和母版页

    当一个网站使用同一母版页时,所有页面都将继承相同的布局。母版页的修改会自动反映在所有应用它的页面上,极大地提高了维护效率。 **母版页基础**: - **重用性**:母版页允许定义页面的一部分并在多个页面中重复...

    APS.NET主题母版页内容页

    在这个特定的项目中,“ASP.NET主题母版页内容页”指的是使用ASP.NET框架创建的网站,该网站利用了母版页(Master Page)和内容页(Content Page)的概念来实现统一的页面布局和设计。 母版页是ASP.NET中的一个重要...

Global site tag (gtag.js) - Google Analytics