| 導購 | 订阅 | 在线投稿
分享
 
 
 

JavaScript 調用 Asp.Net 服務器端的事件

2008-09-09 07:29:14  編輯來源:互聯網  简体版  手機版  移動版  評論  字體: ||

可以用以下變通的方法實現用JavaScript調用服務器端的事件方法

2 1、增加如下JavaScript方法

3 這個就是將Asp.Net 中生成的腳本Copy過來,嘿嘿,很賊哦。

4 function __doPostBack(eventTarget, eventArgument)

5 {

6 var theform;

7 if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1)

8 {

9 theform = document.Form1;

10 }

11 else

12 {

13 theform = document.forms["Form1"];

14 }

15 theform.__EVENTTARGET.value = eventTarget.split("$").join(":");

16 theform.__EVENTARGUMENT.value = eventArgument;

17 theform.submit();

18 }

19

20 //以下就是要從JavaScript中通知服務器端,你該幹活了

21 function NotifyServer()

22 {

23 //.可以做一些設置,判斷

24

25 Button1是服務器控件的ID,'abc' 可以自己設置,這個我需要給服務器傳遞一些消息數據,平時直接用'即可

26 __doPostBack('Button1','abc')

27 }

28

29 2、aspx 頁面

30 要增加 以下兩個隱藏字段

31 <input type="hidden" name="__EVENTTARGET">

32 <input type="hidden" name="__EVENTARGUMENT">

33

34 <asp:Button id="Button1" runat="server" Text="Button" Visible="False"></asp:Button>

35

36 這裏就是要執行Button1 的後台代碼,同時要將他的Visible 設置成 False ,(雖然資料說 不能將Enable 設置成False,但是我試了一下 將Enabled設置成False還是可以用的

37

38 同時增加一個

39 <input type="button" id="but" onclick="NotifyServer()" value="ServerExecute"> ,執行服務器代碼

40

41 3、aspx.vb 頁面代碼

42 Response.Write("alert('" & Request("__EVENTARGUMENT").ToString() & "'"); ")

43 這裏的Request("__EVENTARGUMENT").ToString() 就是'abc'的內容

44

45 4、注意事項

46 用此種方法,頁面中不能有AutoPost=True 的服務器控件,因爲有AutoPost=True的控件的頁面系統會自動生成以上的代碼(2個hidden控件,還有一個__doPostBack函數),如果你的頁面中 有AutoPost=True的服務器控件,那麽你不需要加以上的代碼(2個hidden控件,還有一個__doPostBack函數),直接用__doPostBack函數吧

可以用以下變通的方法實現用JavaScript調用服務器端的事件方法 2 1、增加如下JavaScript方法 3 這個就是將Asp.Net 中生成的腳本Copy過來,嘿嘿,很賊哦。 4 function __doPostBack(eventTarget, eventArgument) 5 { 6 var theform; 7 if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) 8 { 9 theform = document.Form1; 10 } 11 else 12 { 13 theform = document.forms["Form1"]; 14 } 15 theform.__EVENTTARGET.value = eventTarget.split("$").join(":"); 16 theform.__EVENTARGUMENT.value = eventArgument; 17 theform.submit(); 18 } 19 20 //以下就是要從JavaScript中通知服務器端,你該幹活了 21 function NotifyServer() 22 { 23 //.可以做一些設置,判斷 24 25 Button1是服務器控件的ID,'abc' 可以自己設置,這個我需要給服務器傳遞一些消息數據,平時直接用'即可 26 __doPostBack('Button1','abc') 27 } 28 29 2、aspx 頁面 30 要增加 以下兩個隱藏字段 31 <input type="hidden" name="__EVENTTARGET"> 32 <input type="hidden" name="__EVENTARGUMENT"> 33 34 <asp:Button id="Button1" runat="server" Text="Button" Visible="False"></asp:Button> 35 36 這裏就是要執行Button1 的後台代碼,同時要將他的Visible 設置成 False ,(雖然資料說 不能將Enable 設置成False,但是我試了一下 將Enabled設置成False還是可以用的 37 38 同時增加一個 39 <input type="button" id="but" onclick="NotifyServer()" value="ServerExecute"> ,執行服務器代碼 40 41 3、aspx.vb 頁面代碼 42 Response.Write("alert('" & Request("__EVENTARGUMENT").ToString() & "'"); ") 43 這裏的Request("__EVENTARGUMENT").ToString() 就是'abc'的內容 44 45 4、注意事項 46 用此種方法,頁面中不能有AutoPost=True 的服務器控件,因爲有AutoPost=True的控件的頁面系統會自動生成以上的代碼(2個hidden控件,還有一個__doPostBack函數),如果你的頁面中 有AutoPost=True的服務器控件,那麽你不需要加以上的代碼(2個hidden控件,還有一個__doPostBack函數),直接用__doPostBack函數吧
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
王朝網路微信公眾號
微信掃碼關註本站公眾號 wangchaonetcn
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有