如果组合框的值不是第一个值,我会改回颜色。 (selectedindex = 0)
<asp:DropDownList ID="ddlActive" runat="server" onchange="ChangeBackColor(this);">
js改变颜色;
function ChangeBackColor(source) {
if (source.selectedIndex > 0)
source.style.backgroundColor = "LightGreen";
else
source.style.backgroundColor = "White";
}
&#13;
在该页面上有一个按钮,一旦点击它就会重新加载页面。我能够使用ViewStates保留价值。
<asp:Button ID="btnUpdate" runat="server" Text="Update" CssClass="btn"
OnClick="btnUpdate_Click" />
但是背面颜色已经恢复到默认状态(白色),我也需要保留它。我能做些什么呢?
答案 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...
}