我的aspx页面定义如下:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" language='javascript'>
function changecolor() {
var lbl = document.getElementById('lblDisplayDate');
lbl.style.color = 'red';
};
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="lblDisplayDate" runat="server"
Text="Label"></asp:Label><br />
<asp:Button ID="btnPostBack2" runat="server"
Text="Register Client Block Script"
onclick="btnPostBack2_Click" />
</div>
</form>
这是btnPostBack2点击事件:
protected void btnPostBack2_Click(object sender, EventArgs e)
{
if (!ClientScript.IsClientScriptBlockRegistered("JSScriptBlock"))
{
ClientScript.RegisterClientScriptBlock(this.GetType(),
"JSScriptBlock",
"changecolor();",
true);
}
}
即使我将脚本放在一个函数中来改变颜色,它仍然没有这样做,如果函数已经包含在脚本标记中,为什么我需要将脚本标记添加到true?
lblDisplayDate位于Page Load中,在每次页面重新加载时将其设置为当前时间。
答案 0 :(得分:0)
更改此行:
var lbl = document.getElementById('lblDisplayDate');
为:
var lbl = document.getElementById('<%= lblDisplayDate.ClientID %>');
此外,这可能不是你想要它做的事情。尝试添加:
OnClientClick="changecolor()"
到您的<asp:Button />
代码。
编辑此时我对你究竟想要完成的事情感到很困惑......
如果您只想更改标签的颜色而不回复,请使用onclick处理程序将<asp:Button />
更改为正常<input type="button" />
并调用您的脚本,如下所示:
<input type="button" ... onclick="changeColor();" />
如果您想在回发时更改标签的颜色,那么只需在代码隐藏中更改标签的背景,如下所示:
protected void btnPostBack2_Click(object sender, EventArgs e)
{
/* ... other stuff goes here ... */
lblDisplayDate.BackColor = Color.Red;
/* ... other stuff goes here ... */
}
答案 1 :(得分:0)
我不明白你想在颜色变化上做“RegisterStartupScript和RegisterClientScriptBlock”。当你想从后面的代码中添加javascript时应该使用这些,但是看到你已经在aspx页面中写出了它,它的使用毫无意义。
答案 2 :(得分:0)
检查一下。我已经修改了你的代码并且它现在正常工作,没有回发。
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
<script type="text/javascript" language='javascript'>
function changecolor() {
var lbl = document.getElementById('lblDisplayDate');
lbl.style.color = 'red';
};
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="lblDisplayDate" runat="server"
Text="Label"></asp:Label><br />
<asp:Button ID="btnPostBack2" runat="server"
Text="Register Client Block Script"
OnClientClick="changecolor(); return false" />
</div>
</form>
</body>
</html>
希望这会有所帮助