遇到神奇的情況...
我檔案庫的介面,左邊是樹狀圖,右邊是表格,這兩者外面用一個UpdatePanel包住,因為按樹狀圖上面的東西後需要更新右邊的表格,不希望它是full postback 不然會一直閃。
然後因為介面的需要,我把右邊的表格放進一個Panel (Panel_File),因為一開始進入的畫面要看到另一個主要Panel的內容(Panel_Main),假如按下左邊的檔案樹,才會隱藏Panel_Main,顯示Panel_File。所以一開始就設定 Panel_File.Visible = "False"
狀況來了,現在我在 Panel_File裡面的元件前台頁面有包含javascript,實際在執行的時候卻發現根本沒有載入,以至於無法抓到 javascript 的 function ! 研判是因為一開始 Panel_File.Visible = "False" ,程式送出HTML結果時這一塊完全不會載入,但是當後面的流程使Panel_File.Visible = "True" 之後,卻因為它是在 UpdatePanel 裡面,所以只載入部分的更新 !?
----------------------
這搞了我好久,後來想到一個辦法 : 不要用Panel,改用div
<div runat="server" id="div_file" style="display:none">
</div>
這樣就解決了! 因為這樣做,在一開始依然會送出div_file內所有內容,但是瀏覽器顯示時會依照style="display:none"再把它隱藏起來。需要顯示的時候就這樣:
div_file.Style.Add("display", "block");