JavaScript 调用 Asp.Net 服务器端的事件

王朝asp·作者佚名  2008-09-09
窄屏简体版  字體: |||超大  

可以用以下变通的方法实现用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函数吧

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航