C# 为什么标签不使用RegisterClientScriptBlock更改颜色?
我的aspx页面定义如下:C# 为什么标签不使用RegisterClientScriptBlock更改颜色?,c#,asp.net,javascript,C#,Asp.net,Javascript,我的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.getE
<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>
即使我将脚本放在一个函数中以更改颜色,它仍然没有这样做,如果函数已经包含在脚本标记中,为什么我需要将脚本标记添加为true
lblDisplayDate位于页面加载中,每次重新加载页面时,它都被设置为当前时间。更改此行:
var lbl = document.getElementById('lblDisplayDate');
致:
到您的
标签
编辑在这一点上,我很困惑你到底想实现什么
如果只想更改标签的颜色而不回发,请使用onclick处理程序将
更改为正常的
,然后调用脚本,如下所示:
<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 ... */
}
就像Sean已经说过的:在这种情况下,最好使用OnClientClick。OnClientClick将防止回发发生-它是使用javascript动态完成的。您所需要做的就是将其优先于javascript函数
我不明白你想做一个“RegisterStartupScript和RegisterClientScriptBlock”的颜色更改。当您想从代码后面添加javascript时,应该使用这些代码,但是看到您已经在aspx页面中写出了它,它的使用是毫无意义的。请查看此内容。我已经修改了你的代码,现在工作正常,没有回发
<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>
无标题页
函数changecolor(){
var lbl=document.getElementById('lblDisplayDate');
lbl.style.color='红色';
};
希望这有帮助
<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 ... */
}
<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>