在UpdatePanel中更改文本

时间:2015-02-15 21:06:39

标签: c# asp.net asp.net-ajax updatepanel

我是ASP.NET新手。这是我的代码:

 <asp:UpdatePanel runat="server" UpdateMode="Conditional">
        <ContentTemplate>
            <asp:Button Text="Change" runat="server" ID="BtnChangeText" OnClick="BtnChangeText_OnClick"/>
            <asp:Label runat="server" ID="LblTest" Text="Change me!"></asp:Label>        
        </ContentTemplate>          
 </asp:UpdatePanel>

这是我的服务器代码:

    protected void BtnChangeText_OnClick(object sender, EventArgs e)
    {
        LblTest.Text = "Hello World!";
    }

为什么不起作用?我该怎么做这项工作?

提前感谢!

2 个答案:

答案 0 :(得分:2)

</ContentTemplate>

之后添加此内容
<Triggers>         
  <asp:AsyncPostBackTrigger ControlID="Change" EventName="Click" /> 
</Triggers> 

答案 1 :(得分:0)

您已将 updateMode属性设置为Conditional,因此不会自动刷新updatePanel(因为这是默认设置)!!

Simpel解决方案将其设置回Always

MSDN UpdateMode

始终
UpdatePanel控件的内容将针对源自页面的所有回发进行更新。这包括异步回发。

条件
UpdatePanel控件的内容在以下条件下更新:

  • 如果显式调用UpdatePanel控件的Update方法。

  • 如果通过使用UpdatePanel控件的Triggers属性将控件定义为触发器并导致回发。在此方案中,控件是更新面板内容的显式触发器。触发器控件可以位于定义触发器的UpdatePanel控件的内部或外部。

  • 如果ChildrenAsTriggers属性设置为true,则UpdatePanel控件的子控件会导致回发。在此方案中,UpdatePanel控件的子控件是用于更新面板的隐式触发器。嵌套UpdatePanel控件的子控件不会导致更新外部UpdatePanel控件,除非它们被明确定义为触发器。

有关详细信息,请参阅MSDN