Как обновить элемент управления за пределами панели обновления? - PullRequest
3 голосов
/ 19 мая 2010

Я собираюсь показать некоторый текст в TextBox, который находится за пределами панели обновления, после проверки CheckBox, но я не могу заставить его работать. пожалуйста, помогите мне?

Вот мой код:

<asp:UpdatePanel runat="server" ID="uplMaster">
    <ContentTemplate>
        <asp:CheckBox ID="cbShowText" runat="server" Text="Show Some Text" AutoPostBack="true"
            OnCheckedChanged="cbShowText_CheckedChanged" />
    </ContentTemplate>
</asp:UpdatePanel>
<asp:TextBox ID="txtBox" Text="Empty" runat="server" />

Код сзади:

    protected void cbShowText_CheckedChanged(object sender, EventArgs e)
    {
        txtBox.Text = "Some Text";
    }

Заранее спасибо: D

P.S. Как вы уже догадались, я напомнил мою проблему, и поэтому я не хочу помещать TextBox в UpdatePanel

Ответы [ 3 ]

20 голосов
/ 22 мая 2010

Я поместил TextBox в другую UpdatePanel и затем вызвал метод Update:

Вот мой новый код:

    <asp:UpdatePanel runat="server" ID="uplMaster" UpdateMode="Always">
    <ContentTemplate>
        <asp:CheckBox ID="cbShowText" runat="server" Text="Show Some Text" AutoPostBack="true"
            OnCheckedChanged="cbShowText_CheckedChanged" />
    </ContentTemplate>
   </asp:UpdatePanel>
   <asp:UpdatePanel runat="server" ID="uplDetail" UpdateMode="Conditional">
       <ContentTemplate>
           <asp:TextBox ID="txtBox" Text="Empty" runat="server" />
       </ContentTemplate>
   </asp:UpdatePanel>

Код сзади:

        protected void cbShowText_CheckedChanged(object sender, EventArgs e)
        {
           txtBox.Text = "Some Text";
           uplDetail.Update();
        }

Надеюсь, это поможет

2 голосов
/ 19 мая 2010

Текстовое поле также должно быть на панели обновления.

* Edit:

Извините, я не правильно прочитал ваш вопрос. Возможно, напишите функцию javascript и вызовите функцию из кодового кода?

1 голос
/ 21 августа 2015

Я знаю, что прошло много времени с тех пор, как об этом спросили, но вот что я сделал. Как сказал @bla, напишите функцию javascript и вызовите ее из кода.

Так что в вашем проверенном измененном вызове это. ChangeText - это функция javascript на вашей странице в заголовке или в файле скрипта.

protected void cbShowText_CheckedChanged(object sender, EventArgs e)
{
    ScriptManager.RegisterStartupScript(this, GetType(), "Show Different Text", "changeText();", true);
}

Пример Javascript. Просто вызывается, когда проверено измененное событие запускается из кода позади.

<script type="text/javascript">
    function changeText() {
        var txt= document.getElementById('<%= txtBox.ClientID %>');
        var chk = document.getElementById('<%= cbShowText.ClientID %>');
        if (chk.checked === true) {
            txt.Text = "Something";
        } else {
            txt.Text = "Somethingelse";
        }
    }
</script>

Надеюсь, это кому-нибудь поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...