您现在的位置:首页 >> 前端 >> 内容

回发或回调参数无效

时间:2013/12/2 14:03:50 点击:

  核心提示:写代码时出现一个很常见的问题,回发或回调参数无效. 前台代码如下asp:Label ID='Label1' runat='server' Text='Label'>学号请输入1或2;姓名请输入小红或小...

写代码时出现一个很常见的问题,回发或回调参数无效.

回发或回调参数无效

前台代码如下

 

<asp:Label ID="Label1" runat="server" Text="Label">学号请输入1或2;姓名请输入小红或小蓝

查询

前台界面如下:

回发或回调参数无效

代码很简单,不复杂,但是就是不停的报错.如果把EnableEventValidation设置为"false",不报错,但是linkbutton不管用了.后来发现查询还是管用的,前提是没有点击单选框,直接输入文本,点击查询是可以查询出数据的.但是如果学号,姓名单选框,点击任意一个之后,查询就不管用了.

网上说出现这个问题,无非是这几个方面.

一 是 Form嵌套,一个页面只能有一个Form,仔细检查代码就可以解决。
二 是 在下拉菜单中使用ajax,常见于省市联动菜单,可能是由于在aspx页面赋给了下拉菜单初始Item值,在事件回发时提示该错误,将下拉菜单初始Item值删除,在绑定事件中添加Item项。
三 是 if (!Page.IsPostBack)
四 是 DropDownList 控件的ListItem 的Value 属性包含汉字.只要将Value 改为英文或数字的就行了。

但是以上这几个要么我不符合,要么改了也没效果.而且使用了ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证还是没用.

最后把代码在新建的一个页面中发现能够执行,前台是重新拖控件整的,后台基本完全复制粘贴过去的.所以问题出现在前台.最后发现

 
 
 

单选框的GroupName和Table的ID是同样的,都是tbTest,修改源代码中的GroupName为tbTest1,代码正确执行.而且EnableEventValidation也不用设置为false就可以正常执行.

解决完问题,发现问题非常非常简单,但是它却花费了我N久N久的时间.我想我以后再也不会给GroupName起名起的和ID重复的,纯粹是我太懒了,起个名懒得想.而且我的窗体名和解决方案是一样的,这个尽管没有什么影响,但是以后还是注意点吧.

作者:网络 来源:不详