作者Eleganse (王建民)
看板C_Sharp
标题[问题] 如何在网页局部更新完成後,触发JS函式?
时间Fri May 4 12:42:08 2012
吾人使用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
1F:→ ssccg:js function call写到ScriptManager的RegisterStartupScript 05/04 13:06
2F:→ Eleganse:我透过1F提的关键字找到这个网页 05/04 15:10
4F:→ Eleganse:581203.html (不会缩) 05/04 15:11
5F:→ Eleganse:後来发现顺序并不是问题 而是写一段JS码 05/04 15:12
6F:→ Eleganse:在客户端定时(例如每隔数秒)执行由AJAX获得的资料库资讯 05/04 15:13
7F:→ Eleganse:并清空之 05/04 15:13
8F:→ Rexelxyz:把updatepanel拿掉,然後page继承ICallbackEventHandler 05/07 16:18
9F:→ Rexelxyz:介面实做GetCallbackResult跟RaiseCallbackEvent两个方法 05/07 16:19
10F:→ Rexelxyz:然後用ClientScript.GetCallbackEventReference产生 05/07 16:24
11F:→ Rexelxyz:Callback的script,然後用RegisterClientScriptBlock 05/07 16:25
12F:→ Rexelxyz:将script注册到页面,最後再用button去呼叫刚刚注册的 05/07 16:27
13F:→ Rexelxyz:function,应该就能达成单一动作就能取得资料并刷新页面 05/07 16:27