给公司一个业务写流程页面,并提供数据查询时碰到下面错误。
当时一看:啥?啊?啊哈?dopostback不是asp.net框架内封装的一个函数么?未定义?什么鬼?asp.net易学难精?bug?一万个想法。一通baidu,google,最后都说是浏览器版本的问题。但后面经过多方测试发现并不是。居然只是因为我在notepad++上写html代码是没有写<form>控件,就直接复制到asp.net页面上去了,导致出现了这个错误。
为什么没有form控件就出现这个错误呢,就要从dopostback这个微软封装的函数说起了
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
上面是该函数的定义:两个参数 第一个参数为 控件ID,第二个参数提供了在引发页面PostBack事件时所带的额外参数
看上面的函数定义可以知道,这里面最后的有一个表单提交,猜想这就能解释以上的错误了。