[英]ASP.net can't update page from event handler
我在頁面上有一個鏈接按鈕,該按鈕的單擊事件的事件處理程序調用 object 上的一個方法,該方法反過來調用一個 Web 服務,當 Web 服務返回 object 時會在頁面上觸發一個事件和一個事件處理程序代碼隱藏更新頁面上的 label。 由於某種原因,label 不顯示該消息。
這一直讓我發瘋,我在谷歌上找不到任何關於它的信息。 任何幫助都會得到幫助。
正在異步調用 Web 服務,但線程被阻塞,直到它返回。 並且標簽預渲染事件在其文本由代理對象事件處理程序設置后被調用。
所有調用都發生在同一個線程上,我設置的任何值,而不僅僅是 label 文本,在預渲染事件觸發時,事件處理程序中的值都將恢復為之前的值。
這是正在發生的事情:
更新:
OP 在我發布此問題后更新了他的問題,以表明生命周期時間保持同步。 因此,相反,我將指出 ASP.Net 中的控件不是線程安全的,而是從后台使用的線程調用 webservice 完成事件以發出異步請求,而不是從源線程調用。 您應該在設置屬性時Invoke
控件。
你在你的 Page_Load 事件中有這個嗎?
if (Page.IsPostBack)
{
return;
}
如果沒有,label 可以在回發后重新初始化。
網絡服務是否異步運行? 頁面渲染后可能會觸發 web 服務完成事件? 您是否已調試以確保正在設置 label 值?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.