ASP.NET에서 MessageQueue의 ReceiveCompleted 이벤트를 처리 할 때 문제가 있습니다. 성공적으로 캐치하지만 페이지의 컨트롤에 적용된 모든 변경 사항은 적용되지 않습니다.ASP.NET 및 사용자 지정 이벤트 관련 문제
이 내가있어 무엇 :
.ASPX
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="False">
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<br />
<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
<asp:Timer ID="Timer1" runat="server" Interval="3000" ontick="Timer1_Tick">
</asp:Timer>
.CS
private static System.Messaging.MessageQueue queue;
private static String messageContent;
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
queue = new MessageQueue(@".\Private$\MyQueue");
queue.ReceiveCompleted += new ReceiveCompletedEventHandler(mq_ReceiveCompleted);
queue.BeginReceive();
}
protected void mq_ReceiveCompleted(object sender, System.Messaging.ReceiveCompletedEventArgs e)
{
System.Messaging.Message message = queue.EndReceive(e.AsyncResult);
message.Formatter = new System.Messaging.XmlMessageFormatter(new string[] { "System.String,mscorlib" });
Label1.Text = message.Body.ToString(); //Has no effect. The value updates without problem, but doesn't persist after finishing this method. And the Page doesn't refresh with this new value.
Label2.Text = DateTime.Now.ToString(); //Has no effect too.
Timer1.Interval = 99999; //And this one the same, no effect.
messageContent = message.Body.ToString(); //.. But the value stored in this variable does persist
queue.BeginReceive();
}
내가 그 바르 업데이트 실패하지 왜. 그것은 무의미 할 수도 있지만 ASP.NET에 익숙하지 않으므로 어떤 단서를 환영 할 것입니다.
미리 감사드립니다.
파블로
updatePanel 용 ScriptManager가 있습니까? – curtisk
그래, 내가 좋아하는 : asp : ScriptManager> \t ... asp : UpdatePanel> –
Pablo