台灣最大程式設計社群網站
線上人數
1909
 
會員總數:246318
討論主題:189850
歡迎您免費加入會員
討論區列表 >> ASP.NET >> Control為NULL???
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
Control為NULL???
價值 : 50 QP  點閱數:821 回應數:9
樓主

精載
初學者
10 69
1020 101
發送站內信

請問我在專案建一WEBFORM頁面(簡稱F)和.CS CLASS(簡稱C),在F畫面中放置一控制向Label。
專案按RUN時一開始載入F呼叫C連SERVICE,經過運算SERVICE會CALLBACK回C中一方法呼叫F於Label顯示某字串
大致流程:F-->C-->SERVICE運算後CALLBACK-->C-->F(透過Label顯示字串)

問題為我的控制向LABEL為空值無法.Text請問各位大大問題是???(我測試過在呼叫C前使用LABEL是正常的可Text顯示)




搜尋相關Tags的文章: [ Control為NULL??? ] ,
本篇文章發表於2020-12-01 14:04
1樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應

F-->C-->SERVICE運算後CALLBACK-->C-->F


Service是非同步嗎?

另外,WebForm要注意的是在什麼事件去觸發以上的程序?
這個事件的先後,與WebForm的生命週期有關
由於您沒有貼出相關的程式碼
無從判斷您在什麼事件觸發相關的程式
甚至控制項是預先安排在aspx,還是在CodeFile裡面動態產生也不清楚

建議您把相關資訊提供清楚,才能夠判斷出您的問題出在哪
^.^a
本篇文章回覆於2020-12-02 11:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

精載
檢舉此回應
WEB是在Page_Load觸發呼叫SERVER.而我是採用WCF的雙工服務
本篇文章回覆於2020-12-08 13:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
您有動態產生物件嗎?

只能從您的描述去想像,沒有看到Code,就只能猜測
很難給您貼切的答案

如果現有的Code不方便貼出
您可以另外模擬,用不同專案,相同環境弄一個,再把Code貼出來
這樣比較容易從程式碼裡面看到問題的所在

^.^a
本篇文章回覆於2020-12-09 09:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

精載
檢舉此回應
我沒動態產生.我附上CODE

起始頁面,一載入CODE CLASS.CS的onLine()呼叫SERVER,之後SERVERCALLBACL後再由CS呼叫頁面ShowMessage()顯示回傳訊息
,ShowMessage()的Label2是在ASPX頁面一開始就拉入的;我剛詳細看CODE應該是我呼叫時重新NEW WebForm的關係,但這樣我有疑問我該如何呼叫原本的WebForm使用Label2???(傳this.page到某變數並在回CALL時使用此變數回CALL嗎?)

aspx.cs



CLASS.CS

本篇文章回覆於2020-12-09 14:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

精載
檢舉此回應
經測試確實呼叫CS onLine傳入this,然後使用接收的變數回CALL就可使用Label2,但現在問題來了我如何宣告一變數可以接受不同WebForm,並使用此變數回CALL

WebForm1.aspx.cs



class.cs

本篇文章回覆於2020-12-09 15:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
不懂您為何要把webForm傳入Service中

Service應該不必知道呼叫的是誰,呼叫的物件是什麼,與呼叫端應該要隔離開來,彼此不要有任何相關
只須接受傳入必要使用的參數(資料),經過運算後,傳回相關的結果(資料)

呼叫端,在呼叫後,取得資料,再由呼叫端自己來處理相關得到結果該處理什麼

這樣該Service才能服務各式各樣不同的呼叫


^.^a
本篇文章回覆於2020-12-09 18:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

精載
檢舉此回應
我的想法是寫一共通的CLASS檔,只要呼叫SERVIVER都呼叫這支CLASS,而SERVER在運算過程"中"(這裡是強調"過程中"而不是運算完回傳)會CALLBACK回CLASS,這時CLASS接到SERVER的CAllBACK,會由CALLBACK回CALL呼叫的webForm的CALLBACK方法做前端運算
本篇文章回覆於2020-12-10 08:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
最有價值解答

topcat
捐贈 VP 給 topcat 檢舉此回應
您這看起來就像是自己在處理非同步的動作(CallBack印象中在.NET Framework 1.X的時代,用的非同步方法)
但實際撰寫非同步又沒有那麼麻煩

呼叫的Client端只要透過await的宣告
讓他呼叫完後,不用等待後續的結果,其他的部分可以繼續下去
自己的部分則會等到收到async處理好的結果,再啟動自己的部分依據結果繼續執行

不知道您要這樣設計,是否有什麼特別的用意
要自己硬弄一套自己的機制?
為何不用現在機制已經有的【async / await】來處理非同步的需求

比較建議您去研究一下async/await的寫法
不建議您自己搞一套別人沒有的機制
您參考看看

^.^a

本篇文章回覆於2020-12-10 10:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

精載
檢舉此回應
謝謝大大,其實這是我測試專案的想法拉。原來早已有相關技術存在謝謝告知,我來學習研究一下async/await的寫法
本篇文章回覆於2020-12-14 13:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.