UpdatePanel重置文本框背景颜色

时间:2011-06-22 10:22:20

标签: asp.net textbox 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");
});

2 个答案:

答案 0 :(得分:0)

我在以下示例中做了

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;
    }

答案 1 :(得分:0)

您的问题是,当您在ajax面板中执行更新时,不会调用jquery。如果文本被更改,您将该框更新为黄色而不是调用javascript,因为它是在面板外呈现的。要解决此问题,您可以在代码隐藏中注册脚本,如:

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