The*_*TXI 14 asp.net master-pages asp.net-ajax
我刚刚注意到,在我从UpdatePanel主页面内部执行asyncpostback后,我的页面标题将重置为标准的"Untitled Page" .从母版页内部回发期间(例如,当我单击母版页内的搜索框按钮时),标题不会丢失.
我假设通过使用不同的contentplaceholder专门设置文档标题我将避免这样的问题,但显然我错了.除了必须在ASPX页面的代码隐藏中明确设置标题之外还有其他我想念的东西(我希望避免使用下面设置的方式)吗?
这是我的页面的基本要点,即调用母版页(下面的母版页代码)
<asp:Content ID="Content1" ContentPlaceHolderID="title" Runat="Server">
    Page Title
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="head" Runat="Server">
    <script type="text/javascript">
        //random javascript validators
    </script>   
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="content" Runat="Server">
    <div class="title">
        Account Management
    </div>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            //Username + Password Set Form
        </ContentTemplate>       
    </asp:UpdatePanel>
</asp:Content>
这是母版页.ASP.NET AJAX ScriptManager首先放在<form>正文中的标记之后.
<head id="Head1" runat="server">
    <title>
        <asp:ContentPlaceHolder id="title" runat="server">
        </asp:ContentPlaceHolder>
    </title>
        //Stylesheet references
    <script type="text/javascript">
        //Random javascript functions
    </script>
    <asp:ContentPlaceHolder id="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
我们在其中一个网站上遇到了这个问题.
立即修复是在主页面代码隐藏page_load方法中重置标题.
显然,当ajax调用发生时,它将重新运行母版页.这导致我们的头衔消失了.
例如:
protected void Page_Load(object sender, EventArgs e) {
    this.Page.Title = "whatever title you have...";
}
一个更好的解决方法是删除MS updatepanel垃圾并开始使用JSON/jQuery,你实际上可以控制这些调用.
您是否反对使用内容页面的Title属性?
<%@ Page Title="Your Page Title" Language="vb" AutoEventWireup="false" MasterPageFile="~/MasterPages/...
您还可以在页面加载中以编程方式访问此...
| 归档时间: | 
 | 
| 查看次数: | 8194 次 | 
| 最近记录: |