我有一组ASPX页面,其中每个页面都有不同的标题,但我想为没有标题的页面设置默认标题。默认标题必须是可配置的。
答案 0 :(得分:12)
如果这是经典的ASP.NET(而不是MVC)并且您使用的是MasterPage
,那么您可以在Page_Load
中的MasterPage
事件中设置默认标题:
protected void Page_Load(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(Page.Title))
{
Page.Title = ConfigurationManager.AppSettings["DefaultTitle"]; //title saved in web.config
}
}
答案 1 :(得分:5)
你可以这样做:
将aspx标头设置为类似
<HEAD>
<TITLE ID=CaptionHere RUNAT="server"></TITLE>
</HEAD>
在后面的代码中把这个放在页面加载事件中:
if(!IsPostBack)
{
myCaption.InnerHtml = "Hope this works!"
}
我希望这会对你有所帮助
答案 2 :(得分:2)
我遇到了类似的问题,这些解决方案都不适合我。问题源于页面的订单控制事件触发。在我的例子中,我有一些代码需要在Page_load事件中(这是因为这是我们有一个Request对象可以使用的第一个事件)。该代码还需要在可以设置标题之前运行。我网站中的其他页面只能在页面Ctor中设置所需的标题,但由于此页面需要首先询问响应对象以获取信息,因此这是一个问题。这样做的问题是,当我们到达Page_load事件时,母版页已经创建了页眉部分,而我在主页面中不想要垃圾,这只是我网站上单个页面所必需的。我克服这个问题的简单方法是在页面的内容部分插入一些内嵌的javascript:
<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要求,所以如果你试图避免这种情况,那么这对你不起作用。
答案 3 :(得分:1)
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;
}
这很有用
答案 4 :(得分:0)
在您的母版页代码中,您可以设置[this.Title = "Whatever";]
,也可以在HTML中指定默认标题。
答案 5 :(得分:0)
我想和您一样更改主页的标题。 在包含所有主页代码的主机的主文件中,名称可能在不同的网站上有所不同。 打开它,然后在标题标签中寻找标题标签。 如下,您可以根据自己的喜好更改它。如果您想在标题下写一些东西,例如我在页面Irpolymer上所做的,则必须添加
标记并编写所需的文本,然后可以对其进行样式设置或更改其样式大小,然后保存。在进行更改之前,请考虑对服务进行备份,以便在出现问题时可以还原站点。
<head runat="server">
<title>Untitled Page</title>
<p>something you want</p>
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head>