开发者

How to update a control outside of an updatepanel?

开发者 https://www.devze.com 2022-12-31 19:46 出处:网络
I am going to show some text in a TextBox, which is located outside of an updatepanel, after checking a CheckBox but I cannot make it work. please help m开发者_如何学运维e out ?

I am going to show some text in a TextBox, which is located outside of an updatepanel, after checking a CheckBox but I cannot make it work. please help m开发者_如何学运维e out ?

Here is my code:

<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" />

Code Behind:

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

Thanks in advance :D

P.S. As you might have guessed, I have resembled my problem and that is why I don't want to put the TextBox in the UpdatePanel


I put the TextBox in another UpdatePanel and then called the Update method:

Here is my new code:

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

Code Behind:

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

Hope this helps


The textbox has to be in update panel also.

*Edit:

I am sorry I didn't read your question properly. Perhaps write a javascript function, and call the function from codebehind?


I know its been a while since this was asked, but here is what I did. Like @bla said write a javascript function and call it from code behind.

So in your checked changed call this. The changeText is a javascript function on your page in the header or in a script file.

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

Sample Javascript. Just gets called when checked changed event fires from code behind.

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

Hope this helps someone.

0

精彩评论

暂无评论...
验证码 换一张
取 消