我是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
我知道它会进入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>
正如我所说,我知道触发器有效,因为我在调用代码时已经完成了代码。我知道你还需要一个ScriptManager,我在Site.Master文件中的form元素内部(我真的只是在默认模板中插入了东西。它只是一个概念证明项目)。
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
从我在网上找到的所有文章中,这应该是我所需要的。一篇文章提到必须使用Web.Config做事,但它说VS 2005并且我使用2010.它提到你在2008年没有必要改变任何东西,所以我认为2010年也是如此。我错过了什么,我需要更新标签?
答案 0 :(得分:3)
您可以尝试删除该部分。
<Triggers>
<asp:AsyncPostBackTrigger ControlID="submitbutton" EventName="click" />
</Triggers>
然后通过将ChildrenAsTriggers =“true”添加到其中来更改UpdatePanel。
<asp:UpdatePanel ID="UpdatePanelSettings" runat="server" UpdateMode="Always" ChildrenAsTriggers="true" >
理论上,这应该与上面的方式完全相同,但只是试图帮助你调试它。
答案 1 :(得分:3)
我暂时没有使用它,但你可能需要明确地调用:
UpdatePanelSettings.Update()
在你的命令结束时。
无论如何都试一试。
答案 2 :(得分:1)
1)res是否可能是两个空白项目?
2)是否还有其他代码触及两个标签(例如表单加载时)?