标签: master-pages

ASP.NET Web窗体:母版页和CSS文件

我有一个项目(Web应用程序),我需要使用Web窗体实现.我已经为网站准备了设计,我将使用我已经开发的CSS模板之一.在这种情况下:

  1. 我应该使用母版吗?
  2. 母版页和CSS文件之间是否有任何关系?如果是,我应该如何使用CSS文件定义母版页?

顺便说一句,CSS文件是一个准备好的模板.

css asp.net webforms master-pages

8
推荐指数
1
解决办法
2万
查看次数

ASP.NET - 从内容页面访问主页面元素

可以从内容页面访问母版页的元素吗?

假设我有继承MasterPage1的MasterPage1和ContentPage1,MasterPage1有一个按钮:Button1.

我可以从内容页面更改该按钮的属性,例如使Button1不可见,不活动等吗?我怎么能做到这一点?

我正在使用.net2.0

.net asp.net master-pages

7
推荐指数
2
解决办法
3万
查看次数

ColdFusion能否回答ASP.NET的母版页?

我正在开发一个用ColdFusion编码的网站.我有一个CSS/HTML模板我想应用于每个页面的内容,而不需要复制任何超过必要的代码.我已经被ASP.NET的母版所破坏了,这将是我实现这个网站的首选方式.不幸的是,我无法使用该选项.这个网站必须在Coldfusion MX 7上运行.此外,领导该项目的开发人员不喜欢Fusebox,因此该选项已经完成.

每个页面上的主导航,图形页眉和页脚都是相同的.标题标签,元标记和二级导航可能因页面而异.除此之外,只有页面的"主要内容区域"会有所不同.

鉴于这些参数,我如何编码网站以获得最大的可维护性?

coldfusion code-reuse design-patterns master-pages

7
推荐指数
1
解决办法
1525
查看次数

如何访问嵌套母版页内的控件?为什么它与内容页面的行为不同?

这两种情况之间是否存在差异:

(1)从普通孩子访问母版页上的属性

(2)从嵌套母版页访问母版页上的属性

我试图从内容页面访问母版页中的文本框,如下所示:

TextBox a;
a = (TextBox)Master.FindControl("ayyash"); // Master is declared in MasterType directive
defaultTextbox.Text = a.Text; // defaultTextBox is a textbox control inside default.aspx
Run Code Online (Sandbox Code Playgroud)

它可以工作,但是当我在嵌套的母版页上应用相同的方法时:

TextBox a;
a = (TextBox)Master.FindControl("ayyash"); // Master is declared in MasterType directive
myTextBox.Text = a.Text; // myTextBox is a textbox control inside child.master
Run Code Online (Sandbox Code Playgroud)

这不起作用,我错过了什么吗?我在resumere page_load处理程序中调用这两个代码...

我也注意到我无法在代码后面的嵌套母版页中设置文本框值,肯定有一些东西我不见了,它是什么?为了阐明这个问题,这里有一个例子:

嵌套母版页:

<%@ Master Language="C#" MasterPageFile="MasterPage.master" AutoEventWireup="false" CodeFile="MasterPage2.master.cs" Inherits="MasterPage2" %>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:textbox id="tx2" runat="server" text="this is two"></asp:textbox>
<asp:contentplaceholder id="newstuff" runat="server"></asp:contentplaceholder>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)

代码背后:

Response.Wrote(tx2.Text);
Run Code Online (Sandbox Code Playgroud)

我没有,为什么我错过了什么?请注意,我也尝试了递归查找控件: …

asp.net master-pages nested

7
推荐指数
2
解决办法
1万
查看次数

asp:ContentPlaceHolder和代码块问题

当内容占位符包含任何代码块时,它会报告控件集合为空.

例如:

MasterPage.aspx

<asp:ContentPlaceHolder ID="Content1" runat="server" />
<asp:ContentPlaceHolder ID="Content2" runat="server" />

<div>Content1: <%= Content1.Controls.Count %></div>
<div>Content2: <%= Content2.Controls.Count %></div>
Run Code Online (Sandbox Code Playgroud)

APage.aspx

<asp:Content ContentPlaceHolderID="Content1" runat="server">
    Plain text content.
</asp:Content>

<asp:Content ContentPlaceHolderID="Content2" runat="server">
    <%= "Code block content." %>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)

这将呈现以下内容:

纯文本内容.代码块内容.

内容1:1

内容2:0

为什么母版页的ContentPlaceHolder.Controls集合为空?

我想检查是否已填充ContentPlaceHolder(另请参阅此问题)但如果​​它包含任何<%=块则不能.

有没有人知道这方面的方法?

asp.net asp.net-mvc master-pages

7
推荐指数
1
解决办法
2361
查看次数

在页面之间导航时停止主页刷新?

我在我的ASP.net应用程序中使用母版页,在母版页中我将ContentPlaceHolder放在更新面板中以支持子页面中的AJAX,问题是如何在页面之间导航时停止刷新"母版页控件"?

为了在页面之间导航我尝试使用Response.Redirect,windows.location java脚本没有成功,我是否应该使用Frames或IFrame而不是Master Pages来停止刷新?

任何解决此问题的建议都将受到高度赞赏,在此先感谢...

asp.net ajax master-pages

7
推荐指数
1
解决办法
2万
查看次数

在ASP.NET内容页面上设置ScriptManager AsyncPostBackTimeout值

我在我的ASP.NET网站上使用母版页,在我上传文件的一个内容页面中,需要比默认值90秒更长的超时值.对于其他内容页面,我想保留默认的超时值.

是否可以为特定内容页面设置超时?我检查了ScriptManagerProxy组件,但它没有AsyncPostBackTimeout属性.

asp.net timeout master-pages asp.net-ajax scriptmanager

7
推荐指数
1
解决办法
2万
查看次数

访问母版页中的祖父母内容占位符

我一直在网上搜索而没有找到任何答案(关于堆栈溢出有几个接近的问题,但它们似乎没有得到答案或相同),所以我认为我会构成我自己的一个.它围绕嵌套母版页和访问祖父母大师的Content PlaceHolder的内容页面展开,即使它没有在父嵌套母版中重新公开.我想知道这是不可能的.

Core Site.Master

<html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">

        <title>
                <asp:ContentPlaceHolder ID="TitleContent" runat="server">
                    <%= Html.GlobalModel().PageTitle %>
                </asp:ContentPlaceHolder>
            </title>

            <asp:ContentPlaceHolder ID="HeadContent" runat="server">
            <link rel="shortcut icon" 
                href="<%= ViewContext.ClientContent( "Content/Tiki.ico" ) %>" 
                type="image/x-icon"/>
        </asp:ContentPlaceHolder>
    </head>
    <body>
        <asp:ContentPlaceHolder ID="SiteContent" runat="server"/>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

嵌套的Site.Master(请注意TitleContent和HeadContent是如何自定义的,因此来自Core Site.Master的'默认'内容应该生效)

<%@ Master Language="C#" MasterPageFile="~/Views/Shared/Site.Master" 
    Inherits="System.Web.Mvc.ViewMasterPage" %>

<asp:Content ContentPlaceHolderID="SiteContent" runat="server">
    <asp:ContentPlaceHolder ID="SiteContent" runat="server">

        <h1>Nested Header</h1>
        <asp:ContentPlaceHolder ID="NestedContent" runat="server"/>

    </asp:ContentPlaceHolder>
</asp:ContentPlaceHolder>
Run Code Online (Sandbox Code Playgroud)

ContentView.aspx(引用嵌套的Site.Master,尝试的TitleContent替换将不起作用.)

<%@ Page Language="C#" MasterPageFile="Site.Master" %>

<asp:Content ContentPlaceHolderID="NestedContent" runat="server">
    <p>Nested content.  This will work.</p>
</asp:Content>

<asp:Content ContentPlaceHolderID="TitleContent" runat="server"> …
Run Code Online (Sandbox Code Playgroud)

asp.net master-pages nested contentplaceholder

7
推荐指数
1
解决办法
3819
查看次数

如何以编程方式将内容添加到contentPlaceHolder?

我有一个母版页,我的所有页面都继承了它.对于格式化,我想在ContentPlaceHolder中放置不同页面的内容.

现在,我怎么能插入一切呢?由于我打算用数据库中的东西填充ContentPlaceHolder,我想我必须以编程方式进行填充.

  1. 如何向ContentPlace Holder添加控件?我检查了其他答案,但我无法通过其ID访问它.

  2. 我应该从一开始就使用多个ContentPlaceHolders吗?假设我想放电影.如果只有一个包含所有图像,描述和评级,每个东西都要有一个ContentPlaceHolder吗?

我对其他解决方案持开放态度,因为我没有使用ASP的经验.

c# asp.net master-pages contentplaceholder

7
推荐指数
2
解决办法
2万
查看次数

如何禁用/覆盖命名容器的内容页面控件ID的ID生成

我们有一个现有的ASP.Net Web应用程序,我们希望将其转换为使用masterpages.在这样做的过程中,我发现为HTML元素生成的HTML id以ContentPlaceHolder的id为前缀.当我们设置ContentPlaceHolder的clientidmode = static时,这是可以预期的.既然我们有很多现有的客户端脚本都使用了id,那么当我们使用masterpages时,这个部分就会中断,而且运行我们所有的javascript以确保我们使用Control.ClientID来调用javascript是一项非常大的工作. ,因为很多都是硬编码的.

有没有办法禁用前缀?我可以成功做到这一点,如果我创建其ClientIdMode = static的每个控件设置,但是我再次优先设置此设置,以确保所有控件都具有其ClientIdMode = static.那可能吗?或者是否可以覆盖ContentPlaceHolder的NamingContainer?

该平台是.Net 4.0

(在下面的答案中描述的web.config中修复ClientIdMode = static的上述问题后),我遇到了"name"属性自动生成的问题,并且没有设置为我介绍之前的任何内容masterpages.这给我一个现有服务器代码的问题,它有许多Request.Form [].知道什么是最佳实践来解决这个问题吗?

谢谢圣战

asp.net master-pages

7
推荐指数
1
解决办法
5083
查看次数