今天在测试项目时,发现一个Button按钮,不管怎么点击,都触发不了__doPostBack函数,实现不了回发。仔细检查前后台代码,也未发现异常。突然在鼠标划过该按钮时,发现该按钮执行的JavaScript竟然是javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$Search1$lbtn_search", "", true, "", "", false, true)),而不是我们所熟悉的javascript:__doPostBack('ctl00$Search1$lbtn_search','')。我想,问题应该就是出在这里了。
那么倒底WebForm_DoPostBackWithOptions是什么呢?它为什么会出现呢?
原来,在asp.net 2.0中,微软使用了WebForm_DoPostBackWithOptions函数代替了以前版本所使用的__doPostBack函数。但也不是所有的情况都有替代,只有满足以下条件的时候,WebForm_DoPostBackWithOptions才会出现。
1,Button控件设置了PostBackUrl属性。
2,未对控件设置CausesValidation="false"属性,按钮启用了验证机制,所以自动启用了WebForm_DoPostBackWithOptions函数进行数据验证。
小编的问题就属于上面第二种,设置CausesValidation="false"后,问题解决。
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf】
打赏
扫码打赏,您说多少就多少