功能实现:“在DataList中单击ImageButton,显示产品图片的详细信息”
问题: 今早折腾着要在一个网站的首页显示新产品的图片,鉴于要横向显示大概十个新品图片,于是采用了DataList控件,并在编辑模板是填入了ImageButton控件,同时动态绑定了数据库,为了便于理解,代码如下: 设计代码: <asp:DataList ID="DataList1" runat="server" RepeatColumns="10" onitemcommand="DataList1_ItemCommand"> 事件代码如下: protected void Page_Load(object sender, EventArgs e)//页面加载时对数据库进行绑定 //SqlConnection strcon = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["strcon"]);
DataSet ds = new DataSet(); 现象:运行后界面正常,当点击新品图片查看详细信息时,页面出现如下错误提示: 回发或回调参数无效。在配置中使用 <pages enableEventValidation= "true "/> 或在页面中使用 <%@ Page EnableEventValidation= "true " %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。 如果在网站设计界面第一行加入EnableEventValidation= "false"则点击新品图片后,页面刷新,根本不执行我们的DataList1_ItemCommand 事件,你是否想到用别的控件呢,LinkButton不会出现这些的问题,但是它无法显示图片,image控件可以显示图片,却没有CommandName属性,不能触发DataList1_ItemCommand 事件,如此等等。 解决方略: 经过一个上午的奋斗,最终的解决办法让我有点吐血,因为太简单了*^_^*汗颜 在Page_Load事件中加一行代码: protected void Page_Load(object sender, EventArgs e)//页面加载时对数据库进行绑定 if (!IsPostBack) { //拷贝绑定数据源代码到这里,别的地方均不要修改 } } 我一个上午的血泪的成长经验,希望对大伙有帮助
博观约取,厚积薄发 |
关于ASP.NET回发或回调参数无效问题的解决办法
最新推荐文章于 2020-09-29 11:21:35 发布