回发后保持控制颜色

时间:2016-07-15 16:44:54

标签: javascript jquery html asp.net

如果组合框的值不是第一个值,我会改回颜色。 (selectedindex = 0)

 <asp:DropDownList ID="ddlActive" runat="server" onchange="ChangeBackColor(this);">

js改变颜色;

&#13;
&#13;
function ChangeBackColor(source) {
            if (source.selectedIndex > 0)
                source.style.backgroundColor = "LightGreen";
            else
                source.style.backgroundColor = "White";
        }
&#13;
&#13;
&#13;

在该页面上有一个按钮,一旦点击它就会重新加载页面。我能够使用ViewStates保留价值。

<asp:Button ID="btnUpdate" runat="server" Text="Update" CssClass="btn"
                                                    OnClick="btnUpdate_Click" />

但是背面颜色已经恢复到默认状态(白色),我也需要保留它。我能做些什么呢?

3 个答案:

答案 0 :(得分:1)

在后面的代码中的页面加载事件中,验证下拉列表的选定值并在某些条件下将其设置为红色。

protected void Page_Load(object sender, EventArgs e)
{
    if(ddl.selectedvalue != "whatever")
         ddl.BackColor = function_that_return_a_color();
}

答案 1 :(得分:1)

将其添加到body标签:

<body onload="ChangeBackColor(document.getElementById(dropdownID))">

那应该做你想要的。

如果您使用的是jQuery,请执行:

<script>
    jQuery(function(){
        ChangeBackColor(jQuery('#dropdownID'));
    });
</script>

答案 2 :(得分:1)

btnUpdate_Click(或page_preRender)处理程序添加行。

ScriptManager.RegisterStartupScript(this, this.GetType(), "ddlActiveColor",
   "ChangeBackColor(document.getElementById('" + ddlActive.ClientID + "'));", true);

如果你在page_preRender中这样做,那么最好将这个字符串包装成

if(page.IsPostBack({
   //ScriptManager...
}