一、简单使用_doPostBack函数
_doPostBack这个前台函数的功能,主要是用于web控件的postback,它是通过__eventTraget,__eventArgument两个隐藏控件向服务端发送控制信息的。
__eventTraget:为要调用控件的名称,如果要调用的控件是子控件,用 '$' 或 ':' 分割父控件:子控件;
__eventArgument:调用事件时的参数;
__doPostBack最简单的使用方法:
1、在页面上划一个能产生 __doPostBack函数的控件。(并不是所有的web控件都是用__doPostBack产生事件回发),我个人喜欢用linkbutton,然后把text属性设为空值,如果隐藏控件的话,那么__doPostBack函数不会产生。
2、然后在你想要触发PostBack事件的控件ID,写入到如下函数调用中: __doPostBack('imgMap',''); 在这里imgMap是我要回发的控件。 3、现在就可以在一个前台事件里调用
__doPostBack('imgMap','');
4、在后台imgMap_Click事件中编写代码就行了
二、 doPostBack
在.NET中,所有的服务器控件提交到服务器的时候,都会调用__doPostBack这个函数,所以灵活运用这个函数对于我们的帮助还是很大的。 比如,在我们写程序的时候经常会需要动态的生成一些控件,最简单的方法就是通过一个字符串,比如string strButton = <input type =”button” ID=”button1”>,然后输出到页面,但是如果我们需要这个控件来执行一些服务器的功能,就比较困难了。这里我们就可以用过借用__doPostBack这个函数来完成。接下来我觉个例子来说明一下具体如何调用。 既然要在服务器端运行那么,我们可以声明一个不可见的LinkButton控件,那通常,我们希望一个控件不可见,通常都是把visible属性设为 false。但是在这里我们把LinkButton的Text属性设置为空,来实现这个LinkButton不可见(为什么要这么设置,而不是直接设置 visible属性,我会在下面说明),接下来我们可以在LinkButton里面写一些服务器端的代码。然后就是如何通过我们动态生成的客户端控件来调用LinkButton里面的功能,我们可以通过一个JavaScript函数来实现 function ExcuteOnServer() 接下去我们只需要在动态生成的这个Button控件的onclick事件中写上οnclick=”JavaScript:ExcuteOnServer();“,这样当我们点击这个动态生成的客户端控件的时候,他便会执行LinkButton中的代码。 这样便实现了动态生成的客户端控件提交到服务器端的功能。 最后要说一下的就是为什么希望LinkButton控件不可见的时候,不是通过visible属性来完成的。因为当我们把visible属性设置为 false的时候,浏览器在解析的时候,根本不会把这个控件放在页面上,也就是说这个控件是不存在的,所以我们在调用__doPostBack函数的时候,便会找不到控件。
三、__doPostBack(sender,args)函数基本使用方法
在项目中遇到很多地方需要做二次提交处理,经过研究和收集总结了客户端js利用__doPostBack(sender,args)函数来提交到服务器的方法。
__doPostBack(sender,args)
sender:提交的控件 args: 事件参数。一般赋空值。 web.aspx页面上放置任何一个控件:
<asp:button id="btnTest"/>
VB页面代码中在Page_Load中添加:
Me.GetPostBackEventReference(btnTest)
注意该语句不要放在 IF Not IsPostBack Then End IF 中。
C#中不需要上述步骤。
客户端调用js代码:__doPostBack("btnTest",""); 注意是双下划线。即可提交到服务器端。
调用该函数提交不会触发控件的任何js事件而直接进入服务器端。
可以利用该特性来做二次提交: 在button控件的Click事件中做一个标记利用hidden控件或其他方式保存一个Flag __doPostBack提交则无此Flag 服务器端则根据该Flag来判断是button提交还是__doPostBack提交。 注意在后台处理__doPostBack提交的逻辑中将Flag刷新 |
asp.net 页面中的_dopostback函数(转)
最新推荐文章于 2021-07-15 16:23:22 发布
2009年01月04日 星期日 02:58 P.M.