标签: master-pages

从后面的代码访问asp:content

好的,我是一位经验丰富的网络开发人员,但有时ASP.Net正在欺骗我.我在asp.net中有一个母版页.然后我有一个基于该母版页(home.aspx)的页面.现在在home.aspx.cs中我想访问asp:content控件以编程方式添加控件.

Aspx看起来像这样:

<asp:Content ID="leftCol" ContentPlaceHolderID="cphLeftCol" Runat="Server">
  <asp:PlaceHolder ID="phLeftCol" runat="server">
  </asp:PlaceHolder>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)

我希望我能从后面的代码中引用"leftCol".但那里还不知道.为了测试,我添加了自己的占位符"phLeftCol".我可以毫无问题地参考.

有没有我看不到的东西?

asp.net master-pages

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

如何在ASP.NET母版页中的内容之前逐步呈现标头?

我有一个使用母版页的大型ASP.net网站.

我已经确定,如果用户可以在从数据库生成/处理/加载页面的其余部分时看到标题和导航,那么用户将获得更好的体验.

我做了一些简单的测试,我可以在page_load()中执行Response.Write(),然后执行Response.Flush(),并且IIs将使用chunked编码并在页面的其余部分呈现时立即将输出发送到浏览器.

我想做同样的事情,但只发送母版页头和导航.

关于如何实现这一点的任何指针?

使用ASP.net 4和IIs 7.5

编辑

如果有人可以提供一些关于如何更改网站以使用AJAX而无需更改每个页面和链接的指示,我会很感激.谢谢!

c# asp.net iis-7 master-pages

11
推荐指数
1
解决办法
1472
查看次数

ContentPlaceHolders:重复内容

脚本

我有一个使用asp.net母版页的应用程序,我想在页面顶部和底部重复一些内容.目前我使用这样的东西:

母版页
<html>
  <body>
    <asp:ContentPlaceHolder ID="Foo" runat="server">
    </asp:ContentPlaceHolder>
    <!-- page content -->
    <asp:ContentPlaceHolder ID="Bar" runat="server">
    </asp:ContentPlaceHolder>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud) 内容页
<asp:Content ID="Top" ContentPlaceHolderID="Foo" runat="server">
  <!-- content -->
</asp:Content>
<asp:Content ID="Bottom" ContentPlaceHolderID="Bar" runat="server">
  <!-- content repeated -->
</asp:Content>
Run Code Online (Sandbox Code Playgroud)

保养

如您所知,在代码中重复一些事情通常并不好.它会产生维护问题.以下是我想要做的,但由于重复的id属性,显然不会起作用:

母版页
<html>
  <body>
    <asp:ContentPlaceHolder ID="Foo" runat="server">
    </asp:ContentPlaceHolder>
    <!-- page content -->
    <asp:ContentPlaceHolder ID="Foo" runat="server">
    </asp:ContentPlaceHolder>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud) 内容页
<asp:Content ID="Top" ContentPlaceHolderID="Foo" runat="server">
  <!-- content (no repetition) -->
</asp:Content>
Run Code Online (Sandbox Code Playgroud)

可能?

有没有办法使用asp.net webforms做到这一点?解决方案不一定必须与上述内容相似,只需要以相同的方式工作.

笔记

我在Visual Studio 2008中使用asp.net 3.0

asp.net master-pages contentplaceholder

10
推荐指数
3
解决办法
3409
查看次数

asp:ImageButton没有触发onclick事件

我有一个页面,它使用母版页,几个RequiredFieldValidators和Web Toolkit自动完成扩展程序.以下代码仅显示页面的最小值:

<%@ Page Language="C#" 
    AutoEventWireup="true"  
    CodeFile="Login.aspx.cs" 
    MasterPageFile="~/master.master" 
    Inherits="Login" %>

<asp:Content id="Content1" 
    contentplaceholderid="ContentPlaceHolder1" 
    runat="server">
    <asp:UpdatePanel ID="pnlUpdate" runat="server">
        <ContentTemplate>
            <div>
                <asp:ImageButton class="submitButton" 
                    imageurl="images/button_submit.gif" 
                    id="btnSubmit" 
                    runat="server" 
                    onclick="btnSubmit_ServerClick"/>
            </div>
        </ContentTemplate>
    </asp:UpdatePanel>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)

代码隐藏:

protected void btnSubmit_ServerClick
      (object sender, ImageClickEventArgs e)
{
    //breakpoint here does not get hit
}
Run Code Online (Sandbox Code Playgroud)

<form runat="server">标签是在母版页.上面的代码不会触发onclick事件.如果我删除母版页并向页面添加表单标记,它就可以工作.是否不支持母版页中的表单标记,或者这应该以某种方式工作? alt text http://digitalcopy.warnerbros.com/images/mainmenu.gif?provider=00079&disc=03403AAA-1D20-47F2-91FA-5EE632832659

asp.net webforms master-pages onclick imagebutton

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

在页面中查找控件

HTML

<body>
    <form id="form1" runat="server">    
       <asp:Button runat="server" ID="a" OnClick="a_Click" Text="apd"/>    
    </form>
</body>
Run Code Online (Sandbox Code Playgroud)

protected  void a_Click(object sender,EventArgs e)
{
    Response.Write(((Button)FindControl("a")).Text);

}
Run Code Online (Sandbox Code Playgroud)

这段代码工作正常.

但是,这段代码:

HTML

 <%@ Page Title="" Language="C#" MasterPageFile="~/Student/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Student_Default" %>


<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <asp:Button runat="server" ID="a" OnClick="a_Click" Text="andj"/>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)

protected void a_Click(object sender, EventArgs e)
{
    Response.Write(((Button)FindControl("a")).Text);
}
Run Code Online (Sandbox Code Playgroud)

此代码无效并FindControl返回Null- 为什么会这样?

FindControl方法适用于简单的页面,但在母版页中,它不起作用吗?

将ID a更改为ctl00_ContentPlaceHolder1_a- 如何找到控件?

c# asp.net master-pages

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

如何在用户选择导航栏项时将其设置为活动状态?

我是一个新的ASP.NET Web Forms开发人员,并试图将Twitter Bootstrap与Master Page一起使用.当用户选择导航栏项时,我正在努力将其设置为活动状态.我按照本教程创建了我的简单母版页,关于如何在ASP.NET中使用Twitter Bootstrap.

这是我的母版页的代码:

<%@ Master Language="VB" CodeFile="MasterPage.master.vb" Inherits="MasterPage" %>

<!DOCTYPE html>

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

    <link href="css/bootstrap.css" rel="stylesheet" type="text/css" />

    <asp:ContentPlaceHolder id="head" runat="server">
    </asp:ContentPlaceHolder>

</head>
<body>
    <form id="form1" runat="server">
    <div>
        <div class="container">
            <div class="row-fluid">
                <div class="span12">
                    <div class="page-header">
                        <h1>Hello... My First Website with Twitter Bootstrap</h1>
                    </div>
                </div>
            </div>
            <div class="row-fluid">
                <div class="span3">
                    <ul class="nav nav-list">
                        <li class="nav-header">Navigation</li>
                        <li class="active"><a href="Default.aspx">ASP.NET</a></li>
                        <li><a href="Default2.aspx">Java</a></li>
                        <li><a href="#">VB.Net</a></li>
                        <li><a href="#">C#</a></li>
                    </ul> 
                </div>
                <div class="span9">
                    <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"> …
Run Code Online (Sandbox Code Playgroud)

asp.net master-pages navbar twitter-bootstrap

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

如何在ASP.NET MVC中传递页面的元标记?

我在过去几天玩ASP.NET MVC并且能够构建一个小站点.一切都很好.

现在,我需要通过ViewData传递页面的META标签(标题,描述,关键字等).(我正在使用母版页).

你是如何处理这个的?先感谢您.

asp.net-mvc master-pages

9
推荐指数
2
解决办法
7089
查看次数

我可以动态更改嵌套母版页的主页吗?

好的,所以我们都知道在页面的OnPreInit事件中动态更改母版页.

但是嵌套母版怎么样?我可以更换主人的主人吗?

MasterPage类中没有公开OnPreInit事件.

有任何想法吗?

asp.net master-pages

9
推荐指数
1
解决办法
5620
查看次数

ASP.Net以编程方式更改MasterPage

我在ASPX方面有以下代码:

<%@ Page Language="C#" MasterPageFile="~/masterpages/standard.Master" .... %>
<%@ MasterType VirtualPath="~/masterpages/standard.Master" %>
Run Code Online (Sandbox Code Playgroud)

我使用VirtualPath访问我的MasterPage中的属性.到现在为止还挺好.

但是,现在我必须以编程方式更改主页.我知道要更改母版页,我必须在page_init上执行:

Page.MasterPageFile = "~/masterpages/myNewMasterPage.Master";
Run Code Online (Sandbox Code Playgroud)

但我不知道如何更改VirtualPath.

c# asp.net master-pages

9
推荐指数
1
解决办法
7699
查看次数

以编程方式使用Web表单母版页作为ASP.Net MVC视图的母版页

我们有一个运行的解决方案包含许多web forms具有相同母版页的应用程序,我们为母版页及其控件创建了一个类库项目,并将其作为dll每个Web表单应用程序内部引用并以编程方式分配母版页

现在我们将为我们的解决方案添加两个新应用程序,但我们决定ASP.Net MVC 3用于构建这些新应用程序.

问题是,我们必须为新应用程序使用相同的母版页,那么我们如何使用代码为我们的视图设置母版页?

注意记住我们的母版页是一个类库项目.

.net webforms master-pages asp.net-mvc-3

9
推荐指数
1
解决办法
4349
查看次数