[問題] 如何在網頁局部更新完成後,觸發JS函式?

看板C_Sharp (C#)作者 (王建民)時間13年前 (2012/05/04 12:42), 編輯推噓0(0013)
留言13則, 3人參與, 最新討論串1/1
吾人使用ASP.NET撰寫程式 1.<html部份(pagename.aspx)> <asp:Button ID="btn1" runat="server" Text="點我" onclick="btn1_Click" /> <asp:textbox ID="txt1" runat="server" /> 上方2個伺服器控項透過updatepanel包覆 2.<伺服器原碼(pagename.aspx.cs)> protected void btn1_Click(object sender, EventArgs e) { 去資料庫存取數據,並更新至txt1 } 3.<script type="text/javascript"> function action() { 依據txt1取得的數據,更新頁面上的資料(google map程序) } 原先上面(2)及(3)兩個步驟,我透過2個按鈕程序來完成, 第1個鈕就是上面的btn1,用以局部更新取得資料, 第2個鈕就是做function action(),依據取得的數據,在網頁上做出回應。 但業主希望能運用一個鈕就完成上述步驟。 我則非常困頓於,如果運用 btn1.attribute.add("onclick","javascript:action()"); 的方式將javascript:action()加載回應於btn1上, 會先執行action(),再執行頁面局部更新取得數據的動作, 如此一來,action()函數即未能取得ajax的更新數據用以執行動作。 如何能夠將上述2個順序調換?望板上先進不吝賜教。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.61.67

05/04 13:06, , 1F
js function call寫到ScriptManager的RegisterStartupScript
05/04 13:06, 1F

05/04 15:10, , 2F
我透過1F提的關鍵字找到這個網頁
05/04 15:10, 2F

05/04 15:11, , 4F
581203.html (不會縮)
05/04 15:11, 4F

05/04 15:12, , 5F
後來發現順序並不是問題 而是寫一段JS碼
05/04 15:12, 5F

05/04 15:13, , 6F
在客戶端定時(例如每隔數秒)執行由AJAX獲得的資料庫資訊
05/04 15:13, 6F

05/04 15:13, , 7F
並清空之
05/04 15:13, 7F

05/07 16:18, , 8F
把updatepanel拿掉,然後page繼承ICallbackEventHandler
05/07 16:18, 8F

05/07 16:19, , 9F
介面實做GetCallbackResult跟RaiseCallbackEvent兩個方法
05/07 16:19, 9F

05/07 16:24, , 10F
然後用ClientScript.GetCallbackEventReference產生
05/07 16:24, 10F

05/07 16:25, , 11F
Callback的script,然後用RegisterClientScriptBlock
05/07 16:25, 11F

05/07 16:27, , 12F
將script註冊到頁面,最後再用button去呼叫剛剛註冊的
05/07 16:27, 12F

05/07 16:27, , 13F
function,應該就能達成單一動作就能取得資料並刷新頁面
05/07 16:27, 13F
文章代碼(AID): #1FeruYOe (C_Sharp)
文章代碼(AID): #1FeruYOe (C_Sharp)