|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
不可能天天有学习.net),我一同学说,你应该早就有作品啦。我惶惶然……asp.net|静态|攻略|页面 网页head区,不克不及用一般控件,但它偶然又很主要,好比title、keywords、description,大概每一个页面都分歧,那末怎样才干依据内容静态设置它们呢?
办法1:asp能做到的,asp.net固然能够做到,只需你把全部页面都用Response.Write()写出来,没有甚么不克不及自界说的,固然也能够"<%=某个成员%>"。但很分明,如许发扬不了.net的特性。
办法2:使用asp.net的特有属性:runat="server",给title设置一个id,然后让它成为服务器变量,那就能够设置其文本了。但如许出来的html里边也会带有id,看实在在不爽。
办法3:使用Literal控件,前台:
<HEAD>
<asp:LiteralID="lt_title"Runat="server"/>
<asp:LiteralID="lt_keywords"Runat="server"/>
<asp:LiteralID="lt_descri"Runat="server"/>
</HEAD>
背景:
privatevoidPage_Load(objectsender,System.EventArgse)
{
lt_title.Text="<title>题目</title>";
lt_keywords.Text="<metaname="keywords"content="关头字">";
lt_descri.Text="<metaname="description"content="形貌">";
}
如许就基础到达完善了。
更进一步,我的页面用了很多用户控件,而且这些用户控件有条理,而决意页面title的,多是某个用户控件中的子用户控件来决意的,并且用户控件的嵌套条理不流动。那要怎样来静态设置呢?
首页,做一个用户控件的基类,而且给它增添1个public办法:
publicvoidSetTitle(stringtitle)
{
SetLiteralText("lt_title",string.Format("<title>{0}</title>",title));
}再增添一个private办法:
privatevoidSetLiteralText(stringid,stringtext)
{
Literallt=null;
Controlctrl=this;
do
{
ctrl=ctrl.Parent;
}while(ctrl!=null&&ctrl.GetType().FullName!="System.Web.UI.HtmlControls.HtmlForm");
if(ctrl!=null)
{
lt=ctrl.FindControl(id)asLiteral;
if(lt!=null)
lt.Text=text;
}
}
如许,你的用户控件只必要让它承继自这个基类,然后在你想设置页面的title时挪用base.SetTitle("题目"),就复杂的完成了义务。关于head区别的标志,道理和设置title一样。
C#中有两处地方用到new关键字,第一处也是最常见的一处是用在调用构造函数的时候,这种情况也是大家见的最多的一种。另一处是用在派生类中,作用有隐藏成员,切断继承关系等,相信第二处的用法大家明显要比第一处生疏。 |
|