UpdatePanel内的ASP.NET标签未更新

The*_*i.9 7 asp.net ajax updatepanel asp.net-ajax

我是ASP.NET的新手,我正在尝试使用在按下按钮时抓取的一些信息来更新Label.调用click函数并返回正常(我调试并逐步完成整个过程).唯一不起作用的是我设置我正在尝试更新的标签的文本.

这是在按钮单击时调用的函数:

Protected Sub submitbutton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles submitbutton.Click
        Dim res As String() = query(email1.Text)
        If Not res Is Nothing Then
            url1.Text = res(0)
            date1.Text = res(1)
        End If

    End Sub
Run Code Online (Sandbox Code Playgroud)

我知道它进入if并尝试设置文本但客户端没有任何反应.

这是我有的UpdatePanel:

<asp:UpdatePanel ID="UpdatePanelSettings" runat="server" UpdateMode="Always"  >
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="submitbutton" EventName="click" />
        </Triggers>
        <ContentTemplate>
            <table>
                <tr>
                    <td>Emails</td><td>Url Parsed</td><td>Date Created</td>
                </tr>
                <tr>
                    <td>
                        <asp:TextBox runat="server" ID="email1" Width="300" />
                    </td>
                    <td>
                        <asp:Label runat="server" ID="url1" Text="-" />
                    </td>
                    <td>
                        <asp:Label runat="server" ID="date1" Text="-" />
                    </td>
                </tr>
                <tr>
                    <td colspan="3"><asp:Button ID="submitbutton" runat="server" Text="Submit" /></td>
                </tr>
            </table>
        </ContentTemplate>
    </asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)

正如我所说,我知道触发器有效,因为我在调用代码时已经完成了代码.我知道你还需要一个ScriptManager,我在Site.Master文件中的form元素内部(我真的只是在默认模板中插入了东西.它只是一个概念验证项目).

<form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
Run Code Online (Sandbox Code Playgroud)

从我在网上找到的所有文章中,这应该是我所需要的.一篇文章提到不得不用Web.Config做事,但它说对于VS 2005而我正在使用2010.它提到你在2008年没有必要改变任何东西,所以我认为2010年的情况也是如此.我错过了什么,我需要更新标签?

Mel*_*igy 3

我已经有一段时间没有使用这个了,但是您可能需要显式调用:

UpdatePanelSettings.Update()
Run Code Online (Sandbox Code Playgroud)

在你的命令结束时。

无论如何,请尝试一下。

  • @The.Anti.9 - ScriptManager 上有一个 [AsyncPostBackTimeout](http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.asyncpostbacktimeout.aspx) 属性,默认为 90秒。将此更新为您所需的超时。 (3认同)