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

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函数吧
󰈣󰈤
日版宠物情人插曲《Winding Road》歌词

日版宠物情人2017的插曲,很带节奏感,日语的,女生唱的。 最后听见是在第8集的时候女主手割伤了,然后男主用嘴帮她吸了一下,插曲就出来了。 歌手:Def...

兄弟共妻,我成了他们夜里的美食

老钟家的两个儿子很特别,就是跟其他的人不太一样,魔一般的执着。兄弟俩都到了要结婚的年龄了,不管自家老爹怎么磨破嘴皮子,兄弟俩说不娶就不娶,老父母为兄弟两操碎了心...

 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
王朝网络微信公众号
微信扫码关注本站公众号 wangchaonetcn
 
  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味著赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有