|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
竟发现没有太大的帮助。总觉得要用起来,感觉到不了位。因为公司机器的原因,一直没有安装vs.net(也从来没有用过)。以前做asp的时候一直用DW(感觉其代码联想功能不错),可现在到了asp.net却不习惯了。静态|把持在之前的ASP程序里我们常常用利用Response.Write静态输入网页Header信息,但在ASP.NET里这个所谓代码与UI分别的引导头脑不再但愿我们如许做了(固然假如您乐意还能够,这究竟只是倡议罢了),之前见过他人用<titleranut="server"id="titleControl">DefaultTitle</title>设置题目的,但自己以为不是很好,由于这会发生过剩的id="titleControl"团体感到利用Literal控件把持对照好,由于它不会发生一个过剩的字符:),也有人利用js的静态设置题目,但这你让搜刮引擎怎样办?
静态把持Page页的Head信息实在很复杂
先看演示:http://www.lvjiyong.com/demo/aspnet/setheader/
演示做的很复杂,人人能够下了源码好悦目,注解内里都有了
次要利用了Literal与PlaceHolder
办法安排在BasePage里,下次让WebForm承继BasePage类就能够挪用了
利用Literal设置Title信息
利用PlaceHolder载进款式表与剧本
Literal同意我们间接设置文本信息,利用时我们先让程序查找是不是有指定的Literal控件,假如有则设置Text
/**////<summary>
///设置Head信息
///</summary>
///<paramname="_name">控件</param>
///<paramname="_control">文本</param>
privatevoidsetHeader(string_control,string_text)
{
Literalobj=this.FindControl(_control)asLiteral;
if(obj!=null)
{
obj.Text=_text;
}
}
好比我们在Head区设置了<asp:Literalid="PageTitle"runat="server"/>,我们能够如许设置题目
这里先筹办一个办法
/**////<summary>
///设置网页题目
///</summary>
///<paramname="_title">网页题目</param>
protectedvoidSetTitle(string_title)
{
setHeader("PageTitle","<title>"+_title+"</title>");
在WebFrom中我们就能够如许设置题目了
this.SetTitle("吕的部落格");
Description,Keywords等的办法一样,不外要设置Meta,这个就不讲了,能够看源码
上面我再说一下js与CSS的载进,此次我们用到的是PlaceHolder控件,为何用这个不相沿Literal,本人想一想
PlaceHolder一样平常只占用地位,便利我们静态加载控件,如许载进js与css就便利多了
起首了也是查找指定的PlaceHolder控件
/**////<summary>
///查找LoadHeader的PlaceHolder容器
///</summary>
///<returns></returns>
privateControlfindHeader()
{
returnthis.FindControl("LoadHeader");
}再是静态到场控件
/**////<summary>
///装载控件到PlaceHolder控件
///</summary>
///<paramname="_obj"></param>
protectedvoidLoadPlaceHolder(HtmlGenericControl_obj)
{
objHeader=findHeader()asControl;
//载进剧本文件
if(objHeader!=null)
{
objHeader.Controls.Add(_obj);
}
}要载进CSS或JS我们先用HtmlGenericControl创立子控件然后加到PlaceHolder控件中
/**////<summary>
///载进指定的款式表文件
///</summary>
///<paramname="_cssPath">款式表文件地点</param>
protectedvoidLoadCss(string_cssPath)
{
HtmlGenericControlobjCss=newHtmlGenericControl("link");
objCss.Attributes["rel"]="stylesheet";
objCss.Attributes["type"]="text/css";
objCss.Attributes["href"]=_cssPath;
objCss.Attributes["media"]="screen";
this.LoadPlaceHolder(objCss);
}
那我们在WebForm中要载进款式表只需利用
this.LoadCss("款式表地点");载进js一样,就不说了
在源码中我写的功效比这里说的强一点点,人人能够本人下了看看.
前天傍晚我发表了《Java的跨平台就是一句谎言。》,原本就是周末闲来无事,发表一篇略带争议性的博文让大家都来吵吵架,发表自己的看法,根本就没想着谁把谁打倒,一个行业或者是技术阵营是无法用短期口水仗打到对手的。 |
|