我有一组 ASPX 页面,其中每个页面都有不同的标题,但我想为没有标题的页面设置默认标题。默认标题必须是可配置的。
6 回答
If this is classic ASP.NET (not MVC) and you are using MasterPage
then you can set default title in Page_Load
event in MasterPage
:
protected void Page_Load(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(Page.Title))
{
Page.Title = ConfigurationManager.AppSettings["DefaultTitle"]; //title saved in web.config
}
}
你可以这样做:
设置 aspx 标头是这样的
<HEAD>
<TITLE ID=CaptionHere RUNAT="server"></TITLE>
</HEAD>
在后面的代码中将其放入页面加载事件中:
if(!IsPostBack)
{
myCaption.InnerHtml = "Hope this works!"
}
我希望这能帮到您
我有一个类似的问题,这些解决方案都不适合我。问题源于页面的顺序控制事件触发。在我的例子中,我有一些代码需要在 Page_load 事件中(这是因为这是我们有一个 Request 对象可以使用的第一个事件)。该代码还需要在设置标题之前运行。我站点中的其他页面能够简单地在页面 Ctor 中设置所需的标题,但是因为该页面需要首先询问响应对象以获取信息,所以这是一个问题。这样做的问题是,当我们到达 Page_load 事件时,母版页已经创建了页眉部分,我不希望我的母版页中出现垃圾,而我的网站上只有一个页面才需要这些垃圾。
<asp:Content ID=BodyContent ContentPlaceHolderID=MainContent RunAt=Server>
<script type="text/javascript">
document.title='<%=Title%>';
</script>
... the rest of the content page goes here ...
</asp:Content>
有了这个,您就可以在 Page_Load 事件中自由设置标题,并且一旦下载了这行代码,它就会被设置。当然,我的网站已经有 JS 要求,所以如果你想避免这种情况,那么这对你不起作用。
protected void Page_Load(object sender, EventArgs e)
{
Page.Title = title();
}
private string title()
{
SqlConnection con = new SqlConnection(cs);
string cmdstr = "select * from title where id = 2";
SqlCommand cmd = new SqlCommand(cmdstr, con);
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
con.Open();
da.Fill(dt);
con.Close();
if (dt.Rows.Count > 0)
{
string title = dt.Rows[0]["title"].ToString();
}
return title;
}
这很有帮助
在您的母版页代码后面,您可以设置[this.Title = "Whatever";]
或指定 HTML 中的默认标题。
我想和你一样改变主页的标题。在您主机的主文件中,包含所有主页代码,不同网站上的名称可能不同。打开它,然后在标题标签内查找标题标签。如下,您可以根据自己的喜好进行更改。如果你想在标题下写一些东西,就像我在Irpolymer页面上所做的那样,你必须添加一个
标记并编写您想要的文本,然后您可以设置它的样式或更改其大小,然后保存。考虑在进行更改之前备份您的服务,以便在出现问题时可以恢复您的站点。
<head runat="server">
<title>Untitled Page</title>
<p>something you want</p>
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head>