网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP.NET技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.在DataGrid控件中获取数据项中各.
.ASP.NET应用程序资源访问安全模型.
.教你制做Web实时进度条.
.封装的一些实现图片水印与图片自.
.aspx网页以HTML形式存储的几个方.
.做个DataList 可分页的数据源.
.用完HttpWebResponse时别忘了调用.
.在asp.net中实现会话状态基础.
.网页乱码问题ASP.NET.
.HTTP性能调优之设置连接失效时间.
.在存储过程中实现分页.
.asp.net(C#)海量数据表高效率分页.
.彻底放弃IIS让Apache也支持ASP.N.
..net同站点多虚拟目录下的Sessio.
.生成pdf文件的好东西,itextsharp.
.使用ASP.NET 2.0中的ReportViewe.
.将Web站点下的绝对路径转换为虚拟.
.ASP.NET RSS Toolkit(RSS工具) .
.ASP.NET保持用户状态的九种选择(.
.asp.net WebForm页面间传值方法.

asp.net页面head区动态设置全攻略

发表日期:2006-7-17


网页head区,不能用普通控件,但它有时又很重要,比如title、keywords、description,可能每个页面都不同,那么怎么样才能根据内容动态设置它们呢?
方法1:asp能做到的,asp.net当然可以做到,只要你把整个页面都用Response.Write()写出来,没有什么不能自定义的,当然也可以"<%=某个成员%>"。但很明显,这样发挥不了.net的特点。
方法2:利用asp.net的特有属性:runat="server",给title设置一个id,然后让它成为服务器变量,那就可以设置其文本了。但这样出来的html里边也会带有id,看着实在不爽。
方法3:利用Literal控件,前台:     <HEAD>
        <asp:Literal ID="lt_title" Runat="server" />
        <asp:Literal ID="lt_keywords" Runat="server" />
        <asp:Literal ID="lt_descri" Runat="server" />
    </HEAD>后台:     private void Page_Load(object sender, System.EventArgs e)
    {
        lt_title.Text = "<title>标题</title>";
        lt_keywords.Text = "<meta name=\"keywords\" content=\"关键字\">";
        lt_descri.Text = "<meta name=\"description\" content=\"描述\">";
    }
这样就基本达到完美了。

更进一步,我的页面用了不少用户控件,并且这些用户控件有层次,而决定页面title的,可能是某个用户控件中的子用户控件来决定的,而且用户控件的嵌套层次不固定。 那要怎么来动态设置呢?

首页,做一个用户控件的基类,并且给它增加1个public方法:

        public void SetTitle(string title)
        {
            SetLiteralText("lt_title", string.Format("<title>{0}</title>", title));
        }再增加一个private方法:
        private void SetLiteralText(string id, string text)
        {
            Literal lt = null;
            Control ctrl = this;
            do
            {
                ctrl = ctrl.Parent;
            }while(ctrl != null && ctrl.GetType().FullName != "System.Web.UI.HtmlControls.HtmlForm" );

            if(ctrl != null)
            {
                lt = ctrl.FindControl(id) as Literal;
                if(lt != null)
                    lt.Text = text;
            }
        }
这样,你的用户控件只需要让它继承自这个基类,然后在你想设置页面的title时调用base.SetTitle("标题"),就简单的完成了任务。对于head区其它标记,原理和设置title一样。

http://javen.cnblogs.com/archive/2006/07/14/451116.html

上一篇:虚拟主机上asp.net运行权限不足问题及解决 人气:5773
下一篇:ASP.NET2.0服务器控件之捕获回传事件 人气:6054
浏览全部asp.net的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐