2016-07-15 4 views
0

Я изменяю цвет окна Combo, если у него есть значение, отличное от первого значения. (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"; 
 
     }

На этой странице есть кнопка, один раз нажать на том, что он перезагружает страницу. Я смог сохранить ценность, используя ViewStates.

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

Но задний цвет вернулся к умолчанию (белый), мне тоже нужно его сохранить. Что я могу сделать для этого?

ответ

1

Добавьте к этому тело тега:

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

Это должно делать то, что вы хотите.

Если вы используете JQuery, сделайте следующее:

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

Если есть больше чем один комбо на странице? –

+1

В этом случае вы можете дать им общее имя класса css и использовать следующий jQuery для их получения: 'jQuery ('. Common_class_name'). Each (function() {ChangeBackColor (this)});' – kennasoft

1

в вашем значении загрузки страницы в коде позади, проверьте выбранное значение выпадающего списка и установите его на красный при определенных условиях.

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

В обработчике btnUpdate_Click (или в page_preRender) добавить строку.

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

Если вы делаете это в page_preRender, то это хорошая идея, чтобы обернуть эту строку в

if(page.IsPostBack({ 
    //ScriptManager... 
} 
Смежные вопросы