js 调用服务端按钮OnClick事件 出错

ajaxtop 2010-06-09 05:30:34
js:
document.getElementById("po").click();

页面:
<asp:ImageButton ID="po" ImageUrl="~/images/pp/find.gif"
runat="server" onclick="popups_Click" style=" visibility:hidden;"/>

.cs后置类
protected void popups_Click(object sender, ImageClickEventArgs e)
{

}
如上:
此页面上有ajax控件
含一个UpdatePanel
最初此页面正常

后有一次更新页面时 又加入两个UpdatePanel
测试运行正常

一天下午,做测试
突然发现报sys.webforms.pagerequestmanagerservererrorexception 12030 12031

我打断点调试发现出错地方:
js:
document.getElementById("po").click();
alert(document.getElementById("po").click());此时弹出框上显示undefined

不解
为什么点击事件会没有定义,请各位帮忙指点!


非常感谢!

...全文
1038 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
tingting610 2010-08-10
  • 打赏
  • 举报
回复
<script>alert("type")</script>
zekelove 2010-06-10
  • 打赏
  • 举报
回复
把ajax的控件删了 试试~
ajaxtop 2010-06-10
  • 打赏
  • 举报
回复
[Quote=引用 37 楼 zhf1206 的回复:]

把ajax的控件删了 试试~
[/Quote]


这个方法已试过,不起作用的
ajaxtop 2010-06-10
  • 打赏
  • 举报
回复
[Quote=引用 36 楼 ss7878520 的回复:]

别用imagebutton呗,换一个别的控件试一下
[/Quote]

嗯,我换了六七个可以激发事件的控件,都不行

我找到原因了。我这个页面上原来放了ajax控件

它会对服务端控件进行管理,而且进行的是不稳健管理

页面功能多,逻辑复杂。在加上脚本很多。很容易发生
scriptManager的异常。但是错误之处却不在于其,而是别的地方引起
ss7878520 2010-06-09
  • 打赏
  • 举报
回复
别用imagebutton呗,换一个别的控件试一下
ajaxtop 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 34 楼 wangchaozhong 的回复:]

你右击查看源码看看你那个控件的ID是不是你输的那个
[/Quote]


谢谢提醒
<input type="image" name="po" id="po" src="../../images/pp/find.gif" style="border-width:0px; visibility:hidden;" />这个按钮的click事件确实没有

所以报的那个错也是对的undefined
超维电脑科技 2010-06-09
  • 打赏
  • 举报
回复
你右击查看源码看看你那个控件的ID是不是你输的那个
ajaxtop 2010-06-09
  • 打赏
  • 举报
回复
多谢各位的顶力相助。打扰大家这么长时间。这个问题,不能在放这里讨论了,这肯定是因为页面脚本不合理所致。其实大家说过的方法,我都很认真的一个一个试过。都没有效果。我打算花四五个小时,在重新把这个页面修改一次。

再次诚心感谢各位好朋友!
谢谢大家。

结。结。结。
ajaxtop 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 koukoujiayi 的回复:]

看了30楼,说明不是updatePanel问题哦!!
[/Quote]


嗯,我后来其实做的修改就是把两个下拉框(这两个下拉框里面选项太多)改成点一个按钮然后弹出窗体选择返回值 这种效果。而且我怕是会出现类似错误,很很细心的改完。当时改完我做过测试没有问题


然后有一个下午,我去在做测试时发现错误
直到现在,我历时四五个小时,花在这个问题上,搞不定,很是头痛
koukoujiayi 2010-06-09
  • 打赏
  • 举报
回复
看了30楼,说明不是updatePanel问题哦!!
ajaxtop 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 wuyq11 的回复:]

删除AJAX控件,是否正确
12030
http://support.microsoft.com/default.aspx?scid=kb;EN-US;193625
[/Quote]



刚刚做了下测试,我去了updatePanel仍有此问题。我在做一个入库的界面,业务比较复杂
用到了脚本的ajax方法,也用到了ajax控件。而且这个页面是主从表关系,我用客户端脚本把
要存的数据存放到页面,页面无刷,用户确定后存入数据库

而且在入库的时候要分不同物资,走不同工作流,还要在这个页面上实现按合同入库

有点伤了
koukoujiayi 2010-06-09
  • 打赏
  • 举报
回复
还有既然Page_ClientValidate()通不过,
就说明你页面有地方进行了验证,
也可试试把所有的有关控件的CausesValidation属性设置为false!!

总觉的你这个问题蹊跷!
koukoujiayi 2010-06-09
  • 打赏
  • 举报
回复
你的ImageButton可能放在是在UpdatePanel里面!
先放到UpdatePanel外试试!
以确定是否是UpdatePanel所致!
ajaxtop 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 koukoujiayi 的回复:]

引用 23 楼 ajaxtop 的回复:
引用 21 楼 koukoujiayi 的回复:

js中加以下试试!!
if (Page_ClientValidate()) {
document.getElementById("po").click();
{
document.getElementById("po").click();
{
缺少对象

怎么可能!!
Page_……
[/Quote]


刚可能没说明白,我在前面回复过,就是因为那个按钮的click事件没有通过验证。所以如果我要加上刚那个通过。


var a=document.getElementById("<%=po.ClientID%>");
alert(a);//这里是Object
if(Page_ClientValidate())//这里就没走,就是说没有通过Page_ClientValidate()=false
{
var a=document.getElementById("<%=po.ClientID%>");
alert(a);
alert(a.click());
}
//然后报错说,缺少对象

koukoujiayi 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 ajaxtop 的回复:]
引用 21 楼 koukoujiayi 的回复:

js中加以下试试!!
if (Page_ClientValidate()) {
document.getElementById("po").click();
{
document.getElementById("po").click();
{
缺少对象
[/Quote]
怎么可能!!
Page_ClientValidate()是判断页面所有检查通过!!
不可能有错!!
wuyq11 2010-06-09
  • 打赏
  • 举报
回复
ajaxtop 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 hejiasoft 的回复:]

document.getElementById("<%=po.ClientID%>").click();此为正解
[/Quote]


这行代码本身没有错误

是因为我现在页面里面的ajax控件,或是其它能导致按钮验证,或是其它原因所致

我只想知道,document.getElementById("<%=po.ClientID%>").click();会报undefinde
ajaxtop 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 koukoujiayi 的回复:]

js中加以下试试!!
if (Page_ClientValidate()) {
document.getElementById("po").click();
{
[/Quote]


缺少对象
hejiasoft 2010-06-09
  • 打赏
  • 举报
回复
document.getElementById("<%=po.ClientID%>").click();此为正解
koukoujiayi 2010-06-09
  • 打赏
  • 举报
回复
js中加以下试试!!
if (Page_ClientValidate()) {
document.getElementById("po").click();
{
加载更多回复(20)
什么是SWFUpload?   SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而超越传统标签的文件上传模式。 [编辑本段]SWFUpload的主要特点   * 可以同时上传多个文件;   * 类似AJAX的无刷新上传;   * 可以显示上传进度;   * 良好的浏览器兼容性;   * 兼容其他JavaScript库 (例如:jQuery, Prototype等);   * 支持Flash 8和Flash 9;   SWFUpload不同于其他基于Flash构建的上传工具,它有着优雅的代码设计,开发者可以利用XHTML、CSS和JavaScript来随心所欲的定制它在浏览器下的外观;它还提供了一组简明的JavaScript事件,借助它们开发者可以方便的在文件上传过程中更新页面内容来营造各种动态效果。   在使用SWFUpload之前,请确认你具备一定的JavaScript和DOM知识。在实际开发中,大部分的错误都是由于错误的设置和低劣的Event Handlers处理程序所造成的。 [编辑本段]文档中文翻译   http://www.v-sky.com/doc/swfupload/v2.1.0/Documentation.html [编辑本段]效果演示   * Classic Form Demo http://demo.swfupload.org/formsdemo ;   * Features Demo http://demo.swfupload.org/featuresdemo ;   * Application Demo http://demo.swfupload.org/applicationdemo ;   * v1.0.2 Plugin Demo http://demo.swfupload.org/v102demo ; [编辑本段]选择合适的Flash控件   在发行包(SWFUpload v2)中含有2个版本的Flash控件(swfupload_f8.swf 与wfupload_f9.swf),其中第一个版本拥有最佳的兼容性,但是为此损失了部分功能;而第二个版本提供了一些附加的功能但是损失了兼容性。 [编辑本段]SWFUpload的初始化与配置   首先,在页面中引用SWFUpload.js ,如      然后,初始化SWFUpload ,如   var swfu;   window.onload = function () {   swfu = new SWFUpload({   upload_url : "http://www.swfupload.org/upload.php",   flash_url : "http://www.swfupload.org/swfupload_f9.swf", file_size_limit : "20480"   });   };   以下是一个标准的SWFUpload初始化设置所需的参数,你可以根据需要自己进行删减:   {   upload_url : "http://www.swfupload.org/upload.php", 处理上传请求的服务器端脚本URL   file_post_name : "Filedata", 是POST过去的$_FILES的数组名   post_params : {   "post_param_name_1" : "post_param_value_1",   "post_param_name_2" : "post_param_value_2",   "post_param_name_n" : "post_param_value_n"   },   file_types : "*.jpg;*.gif", 允许上传的文件类型   file_types_description: "Web Image Files", 文件类型描述   file_size_limit : "1024", 上传文件体积上限,单位MB   file_upload_limit : 10, 限定用户一次性最多上传多少个文件,在上传过程中,该数字会累加,如果设置为“0”,则表示没有限制   file_queue_limit : 2, 上传队列数量限制,该项通常不需设置,会根据file_upload_limit自动赋值   fl
XML越来越热,关于XML的基础教程网络上也随处可见。可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:XML到底有什么用,我们是否需要学习它?我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章。首先有两点是需要肯定的:   第一:XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解,等待只会让你失去机会;   第二:新知识肯定会有很多新概念,尝试理解和接受,您才可能提高。不要害怕和逃避,毕竟我们还年轻。   本文共分五大部分。分别是XML快速入门,XML的概念,XML的术语,XML的实现,XML的实例分析。最后附录介绍了XML的相关资源。作者站在普通网页设计人员的角度,用平实生动的语言,向您讲述XML的方方面面,帮助你拨开XML的神秘面纱,快速步入XML的新领域。 • 第一章:XML快速入门 • 一. 什么是XML? • 二. XML是新概念吗? • 三. 使用XML有什么好处? • 四. XML很难学吗? • 五. XML和HTML的区别 • 六. XML的严格格式 • 七. 关于XML的更多 • 第二章:XML概念 • 一. 扩展性 • 二. 标识 • 三. 语言 • 四. 结构化 • 五. Meta数据 • 六. 显示 • 七. DOM • 第三章:XML的术语 • 导言 • 一.XML文档的有关术语 • 二.DTD的有关术语 • 第四章:XML的语法 • 一.XML语法规则 • 二.元素的语法 • 三.注释的语法 • 四.CDATA的语法 • 五.Namespaces的语法 • 六.entity的语法 • 七.DTD的语法 • 第五章:XML实例解释 • 一.定义新标识 • 二.建立XML文档 • 三.建立相应的HTML文件 • 第六章:XML相关资源 五. XML和HTML的区别 XML和HTML都来自于SGML,它们都含有标记,有着相似的语法,HTML和XML的最大区别在于:HTML是一个定型的标记语言,它用固有的标记来描述,显示网页内容。比如表示首行标题,有固定的尺寸。相对的,XML则没有固定的标记,XML不能描述网页具体的外观,内容,它只是描述内容的数据形式和结构。 这是一个质的区别:网页将数据和显示混在一起,而XML则将数据和显示分开来。 我们看上面的例子,在myfile.htm中,我们只关心页面的显示方式,我们可以设计不同的界面,用不同的方式来排版页面,但数据是储存在myfile.xml中,不需要任何改变。 (如果你是程序员,你会惊讶的发现,这与模块化面向对象编程的思想极其相似!其实网页何尝不是一种程序呢?) 正是这种区别使得XML在网络应用和信息共享上方便,高效,可扩展。所以我们相信,XML做为一种先进的数据处理方法,将使网络跨越到一个新的境界。 六. XML的严格格式 吸取HTML松散格式带来的经验教训,XML一开始就坚持实行"良好的格式"。 我们先看HTML的一些语句,这些语句在HTML中随处可见: 1. sample 2.sample 3.sample 4.samplar 在XML文档中,上述几种语句的语法都是错误的。因为: 1.所有的标记都必须要有一个相应的结束标记; 2.所有的XML标记都必须合理嵌套; 3.所有XML标记都区分大小写; 4.所有标记的属性必须用""括起来; 所以上列语句在XML中正确的写法是 1. sample 2.sample 3.sample 4.samplar   另外,XML标记必须遵循下面的命名规则: 1.名字中可以包含字母、数字以及其它字母; 2.名字不能以数字或"_" (下划线) 开头; 3.名字不能以字母 xml (或 XML 或 Xml ..) 开头; 4.名字中不能包含空格。 在XML文档中任何的差错,都会得到同一个结果:网页不能被显示。各浏览器开发商已经达成协议,对XML实行严格而挑剔的解析,任何细小的错误都会被报告。你可以将上面的myfile.xml修改一下,比如将改为,然后用IE5直接打开myfile.xml,会得到一个出错信息页面: XML轻松学习手册 ajie

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧