ASP.NET 3.5: таблица стилей главной страницы может изменяться? - PullRequest
0 голосов
/ 03 ноября 2010

Я новичок в ASP.NET из PHP и ColdFusion, и у меня довольно простой вопрос:

На моей главной странице, как я могу сделать одну из моих ссылок на CSS-файл переменной,поэтому, когда появляется соответствующая страница (например, Home), она содержит переменную с правильным CSS-файлом для использования?

    <!-- Custom CSS Files -->
    <link href="<Page Specific CSS Variable>" rel="stylesheet" type="text/css" />
    <link href="../../Content/Styles/Site.css" rel="stylesheet" type="text/css" />
</head>

Будет ли это ответом?Home.aspx

<asp:Content ID="Content1" ContentPlaceHolderID="PageStylesheet" runat="server">
    <link href="../../Content/Styles/Home.css" rel="stylesheet" type="text/css" />
</asp:Content>

А затем на главной странице:

<!-- Custom CSS Files -->
<asp:ContentPlaceHolder ID="PageStylesheet" runat="server" />

Это верно?

Ответы [ 3 ]

1 голос
/ 03 ноября 2010

Используйте раздел содержимого в заголовке страницы на главной странице.Это его цель;для CSS и / или сценария и тому подобное, которые являются специфическими для страницы содержимого.Содержимое будет объединено с содержимым главной страницы, что приведет к полному разделу заголовка.Все заполнители контента могут быть размещены практически везде;заголовок, голова, нога, что угодно, и вы можете вкладывать главные страницы.Они просто шаблоны;Вы не должны ограничивать себя содержанием тела.

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="REO.master.cs" Inherits="REO.REO" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>REO CMS</title>
    <link rel="Stylesheet" href="REO.css" type="text/css" />
    <script src="jquery-1.4.2.min.js" type="text/javascript"></script>
    <script src="jqueryui-1.8%20jquery-ui.min.js" type="text/javascript"></script>
    <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
    <asp:ContentPlaceHolder ID="head" runat="server"></asp:ContentPlaceHolder>
</head>


<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AddCaseContact.aspx.cs" 
Inherits="REO.AddCaseContact" MasterPageFile="~/REO.Master" %>
<asp:Content ContentPlaceHolderID="head" runat="server">
    <script type="text/javascript">       
        function showMessage(wTitle, msg) {
            var $dialog = $('<div></div>')
                .html(msg)
                .dialog({
                    autoOpen: false,
                    title: wTitle,
                    modal: true,
                    height: 300,
                    buttons: { "Ok": function() { $(this).dialog("close"); } }
                });
        $dialog.dialog('open');
    }
</script>
</asp:Content>
<asp:Content ContentPlaceHolderID="MainContent" runat="server">
1 голос
/ 03 ноября 2010

Одним из решений будет добавление свойства к главной странице, которое вы можете установить из каждой формы веб-контента.Например:

MasterPage.Master

    <!-- Custom CSS Files --> 
    <link href="<%=this.PageSpecificCSSURL%>" rel="stylesheet" type="text/css" /> 
    <link href="../../Content/Styles/Site.css" rel="stylesheet" type="text/css" /> 
</head> 

MasterPage.Master.cs

private string mPageSpecificCSSURL = string.Empty;
public string PageSpecificCSSURL
{
    get
    {
        return mPageSpecificCSSURL;
    }
    set
    {
        mPageSpecificCSSURL = value;
    }
}

WebForm1.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{
    ((SiteMaster) this.Master).PageSpecificCSSURL = "mypage.css";
}
0 голосов
/ 03 ноября 2010

С вашей помощью ответ в моих правках. Идеально подходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...