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

您的问题是,当您在ajax面板中进行更新时,不会调用jquery。如果文本发生更改,则将框更新为黄色,并且不调用javascript,因为它是在面板外部呈现的。要解决此问题,您可以在代码库中注册脚本,如:

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

我在下面的示例中做了

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

最新更新