点击后按钮颜色不会改变

时间:2014-04-21 12:07:18

标签: c# asp.net

我有一个名为Button1的按钮,我有以下代码隐藏:

string CS = ConfigurationManager.ConnectionStrings["EasyRozMoney_ConnectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(CS))
{
    con.Open();
    SqlCommand cmd = new SqlCommand("spTaskPerformed", con);
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.AddWithValue("@TaskId", lblTaskId.Text);
    cmd.Parameters.AddWithValue("@Email", Session["Email"].ToString());
    cmd.ExecuteNonQuery();
    Button1.BackColor = Color.Red;
    Button1.Enabled = false;
    lblTaskPerformed.Text = "Task Completed Successfully.";
}

其他一切正常。按钮也会被禁用,但它不会改变背景颜色。有什么建议吗?

3 个答案:

答案 0 :(得分:3)

更新

按钮上的内嵌样式会阻止背景颜色显示。

原因如下:

考虑以下ASPX代码:

<asp:Button runat="server" ID="Button1" Text="Click Me!" 
            style="background-color: yellow;"/>

这将呈现以下HTML:

<input type="submit" id="MainContent_Button1" value="Click Me!" 
       style="background-color: yellow;">

当我们在后面的代码中添加BackColor时,内嵌样式预先添加到元素的样式属性中。这产生了这个HTML:

<input type="submit" id="MainContent_Button1" value="Click Me!" 
       style="background-color:Red;background-color: yellow;">

因此它会插入红色,但原始颜色会立即覆盖它。

要解决此问题,请在ASPX中使用BackColor属性,而不是使用background-color内联样式标记。像这样:

<asp:Button ID="Button1" runat="server" Text="Submit" 
            BackColor="#CC6600" style="background-color:#CC6600;"/>

ASP.NET将知道在应用新颜色时如何正确覆盖它。

原始

如果 在JavaScript中执行此操作,您可以使用RegisterStartupScript向浏览器发送动态javascript代码,但我怀疑还有其他问题。

var script = "document.getElementById('" + Button1.ClientID + "').style.backgroundColor = 'red';";
ScriptManager.RegisterStartupScript(this, typeof(Page), "changecolor", script, true);

答案 1 :(得分:0)

你可以试试这个。它可能对你有帮助。我面临同样的问题,但我想改变文字。您可以使用此更改颜色。

Button1.Invoke(new System.Action(() => Button1.BackColor = Color.Red));

答案 2 :(得分:0)

这可能会有所帮助:

JavaScript的:

function changeColor(e) {
    e.style.color = "red";
    return false;
}

ASPX:

<asp:LinkButton ID="LinkButton1" OnClientClick="return changeColor(this);" 
                runat="server">LinkButton</asp:LinkButton>