2011-06-22 140 views
0

我在其中有一個UpdatePanel一個背景顏色爲黃色的文本框和文本框的文本更改觸發器,一切正常,除了背景顏色恢復爲白色時,我寫了一些文本文本框然後集中在其他地方。UpdatePanel重置文本框背景顏色

這是什麼造成的?謝謝。

使用asp.net 4.0

這裏是asp.net標記:

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
     <span> 
      <asp:TextBox ID="sticky" runat="server" AutoPostBack="true" 
       Text='<%# Bind("sticky") %>' TextMode="MultiLine" 
       OnTextChanged="cSticky" /> 
     </span> 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="sticky" EventName="TextChanged" /> 
    </Triggers> 
</asp:UpdatePanel> 

這裏是CSS:

#StickyDiv textarea 
{ 
height:170px; 
width:185px; 
resize:none; 
margin-top:1px; 
border:none; 
font-family:Comic Sans MS; 
font-size:1.2em; 
padding:3px; 
line-height:1.1em; 
} 

這裏是jQuery的:

$(function() { 
    $("#StickyDiv textarea:even").css("background-color","#ffff95"); 
    $("#StickyDiv textarea:odd").css("background-color", "#fe8ab9"); 
}); 
+1

請添加代碼,包括影響你的控件的javascript和css。 – Aristos

回答

0

你的問題是,當你在阿賈克斯面板做了更新您的jQuery是不叫。如果文本被更改,則將該框更新爲黃色,而不是調用JavaScript,因爲它在面板外部呈現。爲了解決這個問題,你可以在codebehide中註冊腳本,例如:

ScriptManager.RegisterClientScriptBlock(Page,typeof(string),"JavaScriptCall",script.ToString(), false); 
+0

謝謝,偉大的作品 – Wahtever

0

我在下面的例子中做過mple

在ASPX文件

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
    </asp:ScriptManager> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
      <ContentTemplate> 
       <asp:TextBox ID="TextBox1" runat="server" BackColor="Yellow" AutoPostBack="true" OnTextChanged="textChanged"></asp:TextBox> 
       <br /> 
       <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> 
      </ContentTemplate> 
     </asp:UpdatePanel> 

在代碼隱藏文件

protected void textChanged(object sender, EventArgs e) 
    { 
     TextBox1.BackColor = System.Drawing.Color.Yellow; 
     Label1.Text = TextBox1.Text; 
    } 
+0

但我使用jquery添加兩個不同的背景,因爲我有幾個文本框 – Wahtever

+0

您可以對每個文本框使用相同的方法。爲每個文本框使用onTextChanged =「textChanged」..在使用Textbox1.Backcolor使用This.BackColor代碼...我認爲這可能會解決您的問題 – Govind