我试图从自定义事件更改标签上的文本。当我通过按钮点击事件(Button1_Click)更新文本时,一切正常。但是,当我尝试更新自定义事件(ArReceiver_OnArDataUpdate)中的相同标签时,什么都不会发生。 ArReceiver_OnArDataUpdate正在被正确触发。ASP.NET在自定义事件中更改标签文本
为什么我的事件的反应与按钮单击事件不同?我需要做什么才能让我的活动有效?
这是一个开箱即用的VS2013网络项目。下面的代码更好地说明:
代码背后:
namespace WinReceiver
{
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
ArReceiver.OnArDataUpdate += ArReceiver_OnArDataUpdate;
}
void ArReceiver_OnArDataUpdate(object sender, ArEventArgs e)
{
labelVoltage.Text = "Reset";
UpdatePanel1.Update();
}
protected void Button1_Click(object sender, EventArgs e)
{
labelVoltage.Text = "Button Clicked";
UpdatePanel1.Update();
}
}
}
Default.aspx的:(本的Site.Master默认拥有的ScriptManager它)
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Label ID="labelVoltage" runat="server" Text="..."></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
编辑: 我做发现this question,说这是不可能的,但有人可以解释为什么这可能是不可能的?我也可以刷新页面,但是当我尝试Respone.Redirect时,我收到了异常。
由于点击事件导致回发,这就是点击事件导致按钮标签改变的原因。有问题的事件不会这样做(这是一个猜测,因为我不熟悉这个事件)。您可以使用signalR,AJAX长轮询或其他技术来使服务器事件更新客户端,但我认为您的解决方案有点过于简单,无法按预期工作。 – SpaceBison 2014-09-29 15:57:47