【转】DataList控件里添加Button,运行点击出现“回发或回调参数无效”的解决办法

简介: DataList控件里添加Button,运行点击出现“回发或回调参数无效”的解决办法 2009-04-23 21:21 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。
DataList控件里添加Button,运行点击出现“回发或回调参数无效”的解决办法
2009-04-23 21:21

回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。

用LinkButton就不会出现这样的情况,大多都是把EnableEventValidation="false",但设置成false会让Button无反应,而且还没有局部的EventValidation,所以把EnableEventValidation设置成false不是首选解决办法。

异常的出现都是“出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件”这句话所描述的原因,所以我觉得,只要给这些“不明”的Button给予“身份”,大概就能解决这个问题了

举个例子吧,有如下一个DataList

< asp:DataList ID = " DataList1 " runat = " server " OnItemDataBound = " DataList1_ItemDataBound "
                 OnItemCommand
= " DataList1_ItemCommand " >
                
< ItemTemplate >
                    
< asp:Button ID = " Button1 " runat = " server " Text = ' <%# Eval("CompanyName") %> ' OnClick = " Button1_Click " CommandName = " test " />
                
</ ItemTemplate >
</ asp:DataList >

通过在Datalist对数据进行DataBind的时期对各Item的Button控件进行PostBackOptions的设置(就是给予这些Button“身份”),例子如下:

protected void DataList1_ItemDataBound( object sender, DataListItemEventArgs e)
     {
        
if (e.Item.ItemType == ListItemType.Item ||
              e.Item.ItemType
== ListItemType.AlternatingItem)
         {
             PostBackOptions pbo
= new PostBackOptions(e.Item.FindControl( " Button1 " ));
             pbo.ActionUrl
= " dl.aspx?page= " + e.Item.ItemIndex.ToString();   // 回发的目标 URL
             pbo.PerformValidation = true ;   // 指示在回发事件发生之前是否需要在客户端进行验证
             pbo.AutoPostBack = false ;
             pbo.RequiresJavaScriptProtocol
= true ;   // 指示是否为客户端脚本生成了 javascript: 前缀
             ((Button)e.Item.FindControl( " Button1 " )).PostBackUrl = Page.ClientScript.GetPostBackEventReference(pbo);    // 给予Button“身份”
         }
     }
用上面的方法都不影响Button的Click事件和DataList的ItemCommand事件。
相关文章
|
3月前
|
开发者
在用户关闭页面时,提示用户有内容未保存-论onbeforeunload事件的用法
在用户关闭页面时,提示用户有内容未保存-论onbeforeunload事件的用法
21 0
|
9月前
element ui 上传图片之后跳转、刷新、保存,预览和删除丢失问题
这问题困惑了我好久,在官方的element ui 的组件库中,直接拿来使用的话,只有当前显示效果,一旦刷新页面或者保存之后,就会丢失,预览和删除功能。当保存后,保存到后端接口,再次查看,图片是能渲染出来,但是由于保存页面刷新,随之整个上传过程失败,而查看所拿到的图片只是一张静态图片,要想再次预览和查看,需要重新选中上传
134 0
|
Java
绑定监听事件的按钮运行结果错误原因及其解决方案
既然是窗口大小和按钮大小相同,那么一定是设置宽高的代码出现了问题,由于我们要使得代码冗余度降低,所以把按钮对象建在类中,所以在本类中的 this 关键字代表的就是JFrame窗体的大小,而不是按钮的大小
99 0
绑定监听事件的按钮运行结果错误原因及其解决方案
|
缓存
Element 通知组件 Notification 支持同类型的提示信息只弹出一次!!!
Element 使用闭坑指南 • ElementUI 为 DatePicker 日期选择器组件添加前缀说明文字 • 生成以周统计的表头,跨月份的周算在后一个月 • Element Table 可以实现哪些常见的有用的功能 • Element UI Loading 加载组件动态变更 text 值(加载文案)
844 0
Element 通知组件 Notification 支持同类型的提示信息只弹出一次!!!
|
小程序 JavaScript 前端开发
小程序使用this.setData()来做删除无刷新
小程序使用this.setData()来做删除无刷新
105 0
|
JavaScript 前端开发
页面一刷新让文本框自动获取焦点-- 和自定义v-focus指令
页面一刷新让文本框自动获取焦点-- 和自定义v-focus指令
|
JavaScript 前端开发
【Layui】关于做了分页后点击删除按钮无效(或者在任何框架点击一个按钮无效解决方案)
【Layui】关于做了分页后点击删除按钮无效(或者在任何框架点击一个按钮无效解决方案)
258 0
【Layui】关于做了分页后点击删除按钮无效(或者在任何框架点击一个按钮无效解决方案)
|
监控 JavaScript
页面如何获取checkbox选中的多个值?
页面如何获取checkbox选中的多个值?
198 0
页面如何获取checkbox选中的多个值?
|
前端开发 Java 数据库连接
checkbox选中并通过ajax传数组到后台接收
这次讲的是通过复选框,选中,点击提交,并将值chuan到后台controller。这个应用是比较广的,什么批量修改,批量添加,授权管理等等,都用到这个。其实这个还是挺简单的,并没有想象中的那么难,但我看到不少朋友在此处受挫,当然曾经的我也是如此。
2209 0