易截截图软件、单文件、免安装、纯绿色、仅160KB

asp.net的postback机制:__doPostBack

__doPostBack
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
function __doPostBack(eventTarget, eventArgument)
{
           if (!theForm.onsubmit || (theForm.onsubmit() != false))
        {
           theForm.__EVENTTARGET.value = eventTarget;
           theForm.__EVENTARGUMENT.value = eventArgument;
           theForm.submit();
          }
}
因为最终呈现给浏览器的内容都是html内容,采用asp.net技术也不能例外.要实现webcontrol的postback机制.只能在原来的submit上做文章.ms呈现给我们的,就是这种精巧的思维!
我看到,asp.net现在页面上添加了两个hidden input,这两个input分别用来存放触发postback的control的ID和参数.这就是我们大部分人认识到的:
__doPostBack(obj1,obj2)的第一个参数是控件ID,第二个参数是postback的参数.然后就可以在后台用Request.Form["__EVENTTARGET"]和Request.Form["__EVENTARGUMENT"]取得控件ID和参数.
很简单就实现了看似很神奇,以为内部有什么高深的处理的过程!如此轻巧的实现了asp.net的postback机制,佩服佩服!只要我们看懂了上边的代码,对__doPostBack的使用就应该不是什么难事了.可以说__doPostBack就是这么简单的一回事.
不过,另外要注意的就是asp.net的webcontrols中,Button和ImgButton是异类,它们不是利用__doPostBack来实现postback的.为什么这样,可能因为Button在html中本来就是有触发submit事件的功能吧.asp.net不过是要令原来html中一些不能触发submit的东西submit,才弄出了__doPostBack来实现.对于原来就能submit的Button,又何必多此一举呢.(仅个人理解,未经验证!)
所以如果是Button的postback,在后台是不能用Request.Form["__EVENTTARGET"]和Request.Form["__EVENTARGUMENT"]取得控件ID和参数的.那么,怎么取呢?看代码:
取Button
foreach (string str in Request.Form)
{
  Control c = Page.FindControl(str);
  if


相关文档:

即将推出的ASP.NET Ajax Library...

 有很久一段时间我的BLOG上没有出现AJAX相关讯息了,主要当然是因为绝大部分的重心都放到了Silverlight身上(可预期的未来应该也会是如此)。
但由于工作上的需要,最近还是回头看了一下即将推出的ASP.NET Ajax Library...,顺便找了一下网络上的讯息,看这个态势我猜想应该不少ASP.NET开发人员忽略掉了这个其实已经bet ......

Flex与ASP.NET结合

1.将flex编译后的程序插入到asp.net页面
flex的最终输出就是一张网页+一个flash(.swf文件)
这么说你明白了吧,其实就是用他生成的网页的方式把那个.swf文件插入到你的asp.net页面就可以了。
假如你的flex3项目名字叫TestApp,最简单直接的办法就是,
把"bin-debug"目录下的:
TestApp.html
TestApp.swf
AC_OETags.js ......

ASP.NET与MySql的连接

1.数据连接方式
ASP.NET本身的数据访问ADO.NET不支持对于MySql的连接和查询,但是MySQL官网上均提供了多种ASP.NET连接到MySQL的方式:
(1)ODBC驱动的访问方式:mysql-connector-odbc-5.1.5-win32.msi,ODBC
(2)ADO.NET对于MySQL的访问方式:mysql-connector-net-6.2.2.zip
个人选用的是第二种,感觉方便,和.NET对S ......

ASP.NET遍历控件的几种方法

方法一:javascript法 function btnClear() { for(i=0;i /// 清空指定页面上所有的控件内容,包括TextBox,CheckBox,CheckBoxList,RadioButton,RadioButtonList。但是不清 /// 除如ListBox,DropDownList,因为这样的控件值对当前页面来说还可以用,一般这些控件里都是保存的字典数据。 /// Author:Kevin /// 日期:2004-12 ......

ASP.NET2005 设置GridView表头的背景图片


最近在做一个网站,显示数据时为了方便使用了GridView。虽然GridView显示数据的功能很强也很方便,但它的样式却并不美观。为了使GridView的显示样式美观一些,经常需要设置表头的背景,我总结出的方法如下:
方法一:
在GridView的OnRowDataBound事件中设置背景,代码如下:
protected void GridView1_RowDataBound(ob ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号