看板 C_Sharp 關於我們 聯絡資訊
吾人使用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
ssccg:js function call寫到ScriptManager的RegisterStartupScript 05/04 13:06
Eleganse:我透過1F提的關鍵字找到這個網頁 05/04 15:10
Eleganse:581203.html (不會縮) 05/04 15:11
Eleganse:後來發現順序並不是問題 而是寫一段JS碼 05/04 15:12
Eleganse:在客戶端定時(例如每隔數秒)執行由AJAX獲得的資料庫資訊 05/04 15:13
Eleganse:並清空之 05/04 15:13
Rexelxyz:把updatepanel拿掉,然後page繼承ICallbackEventHandler 05/07 16:18
Rexelxyz:介面實做GetCallbackResult跟RaiseCallbackEvent兩個方法 05/07 16:19
Rexelxyz:然後用ClientScript.GetCallbackEventReference產生 05/07 16:24
Rexelxyz:Callback的script,然後用RegisterClientScriptBlock 05/07 16:25
Rexelxyz:將script註冊到頁面,最後再用button去呼叫剛剛註冊的 05/07 16:27
Rexelxyz:function,應該就能達成單一動作就能取得資料並刷新頁面 05/07 16:27