UpdatePanel сбросил цвет фона текстового поля - PullRequest
0 голосов
/ 22 июня 2011

У меня есть 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 голосов
/ 22 июня 2011

Ваша проблема в том, что когда вы делаете обновление на панели ajax, ваш jquery не вызывается. Если текст изменяется, вы меняете поле на желтый и не вызываете javascript, потому что он отображается вне вашей панели. Чтобы это исправить, вы можете зарегистрировать скрипт в вашем коде, например:

ScriptManager.RegisterClientScriptBlock(Page,typeof(string),"JavaScriptCall",script.ToString(), false);
0 голосов
/ 22 июня 2011

Я сделал в следующем примере

в файле 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>

В файле Codebehind

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