• ASP.NET使用母版页后动态加载JS/CSS

    ASP.NET中使用母版页最大的好处就是当有许多相似的页面时只用加一个母版页,每个页面用这个母版页生成内容页,然后根据情况修改每个内容页中的内容,保持页面布局的统一,同时也减少了代码量。

    但另一个突出的问题是使用母版页后,每个内容页中没有了<head></head>标记,因为这都在母版页中有了,而这对修改标题、加载JS/CSS等文件都有影响,前面我已经说过在ASP.NET中使用母版页后统一网页标题,那这篇就来说说如何加载JS/CSS等文件。

    ASP.NET中使用母版页后统一网页标题中修改标题的原理一样,加载JS/CSS等文件可以在内容页中加,也可以在母版页中统一加载。

    1、在单个内容页中加载

    将下面两段段代码放入内容页的Page_Load中即可,很简单了,也不再多解释。

    • 加载JS文件
    #region 加载JS文件
    HtmlGenericControl JSControl = new HtmlGenericControl("script");
    JSControl.Attributes.Add("type", "text/javascript");
    JSControl.Attributes.Add("src", "JS/js.js");
    Page.Header.Controls.Add(JSControl);
    #endregion
    
    • 加载CSS文件

    HtmlLink CssControl = new HtmlLink();
    CssControl.Href
    更多...

  • ASP.NET使用母版页统一网页标题

    在做网页的时候给每个网页设置一个合理的标题是很有必要的事情,而做一个网站的时候需要将所有的标题的格式统一起来,比如将所有网页的标题统一为“XX页面 | XX网站”。

    我在用VS2005做的时候开始没用母版页,后来用母版页的时候发现改内容页的标题其实挺麻烦的,因为每个内容页都要设置标题,而每个标题中都要有网站的名字。如果手工给每个内容页加上该内容页的标题,再加上网站名字,岂不是很麻烦?好在我们用的是动态语言,至少网站名字可以在母版页中直接统一起来。

    下面说下我用的两种方法改写网页标题。

    1、所有的网页标题设置为“XX页面 | XX网站”。

    这种方法很简单,只用在母版页的xx.aspx.cs文件中写上这样一句代码(BasePage.GetSiteName()为获取网站标题的方法)

    Page.Header.Title += " | " + BasePage.GetSiteName();//设置前台页面所有内容页标题

    然后在每个内容页中加上内容页的标题就OK了。

    2、在母版页中改写所有内容页标题

    这样做的好处是如果要修改标题的内容页有很多,那么只用修改母版页就OK了,内容页中的标题可以不用管。这种方式的原理是先判断是哪个内容页请求的母版页,然后根据内容页的文件名来强制改写内容页的标题。

    这种方式下可以用if else判断,也可以用switch case来做

    A、如果只是首页的格式不同(比如首页的标题是“欢迎光临XX网站”,而其他页面都是“XX页面 | XX网站”)

    那么用母版页中xx.aspx.cs用这段代码,其中ContentBox为在母版页中的一个ContentPlaceHolder控件。

    string requestContentType = this.ContentBox.Page.GetType().ToString();//获取请求的内容页类型,格式如ASP.文件名_aspx
    if (requestContentType == "ASP.index_aspx")
    {
        Page.Header.Title = "欢迎光临"
    更多...

  • ASP.NET学习记录(1)

    有几天都没冒泡了,今天有空就记录下这两天学习ASP.NET的状况吧,虽然还是很菜,但还感觉有进步,呵呵。

    1、验证码控件

    ASP.NET中有许多现成的控件,不过验证码的暂时还没发现,在网上搜了下,发现一个叫AutoAuthCode的还不错就直接拿来用了。

    下面是该控件的几种样式





    更多...