手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >关于前台调用后台事件__doPostBack函数
关于前台调用后台事件__doPostBack函数
摘要:这里需要提一下的是,asp.net编程提供了服务端控件和客户端控件的说法,其实还是脱离不了HTML的本质,客户端和服务端需要交互必须要提交,...

这里需要提一下的是,asp.net编程提供了服务端控件和客户端控件的说法,其实还是脱离不了HTML的本质,客户端和服务端需要交互必须要提交,提交有两种方式get和post,get就是通过向服务端发送连接地址,服务端通过地址的参数来获得信息的,一般这些参数都是明文,能在浏览器地址栏看到。而post是通过表单的input等元素提交到服务端的页面的,这些数据一般是看不到的。asp.net的服务端控件其实就是对一般的HTML控件做了个包装,大体是通过隐藏控件提供控制的参数的。

这里介绍一个常用的函数_doPostBack,这个函数如果如果是ASP.Netrender出来的页面就是自动产生这个函数,比如有带autopostback属性的控件,且其属性为true的页面,带编辑列的datagrid页面。

__doPostBack是通过__EVENTTARGET,__EVENTARGUMENT两个隐藏控件向服务端发送控制信息的,__EVENTTARGET为要调用控件的名称,如果要调用的控件是子控件,用''$'或':'分割父控件:子控件,__EVENTARGUMENT是调用事件时的参数

下面演示下如何调用后台事件:

1.新建工程

2.拖入一个服务端Button1,一个DropDownList1和一个客户端Button

3.设置DropDownList1的AutoPostBack属性为True,Button1的Visible为False

4.双击Button1,在事件里写下Response.Write("hello:");

5.页面的HTML里找到客户端Button,写入onclick="__doPostBack('Button1','')"

6.编译,运行,点击Button是不是出现了"Hello"

7.查看源代码,发现里面多了下面行

复制代码 代码如下:

<scriptlanguage="javascript">

<>

</script>

以及两个隐藏控件

复制代码 代码如下:

<inputtype="hidden"name="__EVENTTARGET"value=""/>

<inputtype="hidden"name="__EVENTARGUMENT"value=""/>

值得注意的是,_doPostPack的第一个参数是大小写不敏感的

细心的人会发现,在__doPostBack里,提交调用的是theform.submit(),这样就导致对Form的onsubmit事件校验失效了,幸好这个问题在asp.net2.0已经修复了。这里提供一个替换的解决办法,在Form的最下面插入下面的代码,这段代码在保证不管是不是render出来的页面均有效

复制代码 代码如下:

<scriptlanguage="javascript">

<>

</script>

【关于前台调用后台事件__doPostBack函数】相关文章:

如何将数据绑到gridview然后导成excel

asp.net下linkbutton的前后台使用方法

Asp.net中的mail的发送

xenocode代码混淆加密的操作步骤

浏览器窗口滚动加载数据采用异步形式从后台加载数据

SQL Server 2005 RTM 安装错误 :The SQL Server System Configuration Checker cannot be executed due to

获取当前url

c# Random快速连续产生相同随机数的解决方案

asp.net下cookies的丢失和中文乱码

用CSS实现图片倾斜 只支持IE

精品推荐
分类导航