Repeater控件中触发按钮事件出现System.ArgumentException: 回发或回调参数无效。在配置中使用 < pages enableEventValidation="true"/>

今天,在Repeater控件中添加了一个按钮,可是在执行时确提示

System.ArgumentException: 回发或回调参数无效。在配置中使用 < pages enableEventValidation="true"/>

 <asp:Repeater ID="rpList" runat="server" OnItemCommand="rpList_ItemCommand">
            <ItemTemplate>
                <div class="article pic" id='<%#Eval("SID") %>'>
                    <h4>
                        <%#Eval("sName") %></h4>
                    <br />
                    <p class="brief">
                        招生批次:<%#Eval("sBatch") %></p>
                    <p class="brief">
                        学号:<%#Eval("sNumber") %></p>
                    <p class="brief">
                        学生类型:<%#Eval("sType")%></p>
                    <p class="brief">
                        专业层次:<%#Eval("sMajorType")%></p>
                    <p class="brief">
                        专业:<%#Eval("sMajor")%></p>
                    <p class="brief">
                        姓名:<%#Eval("sName")%></p>
                    <p class="brief">
                        性别:<%#Eval("sSex")%></p>
                    <p class="brief">
                        身份证号码:<%#Eval("sCardID")%></p>
                    <p class="brief">
                        学员密码:<asp:Button ID="bInitial" runat="server" Text="初始化密码" CssClass="button blue"  CommandName="updatepass" CommandArgument='<%#Eval("SID") %>'  /></p>
                    <p class="brief">
                        手机:<%#Eval("sPhone")%></p>
                    <p class="brief">
                        邮箱:<%#Eval("sEmail")%></p>
                    <p class="brief">
                        学历号:<%#Eval("sEduNumber")%></p>
                    <p class="brief">
                        班级:<%#Eval("sClassmate")%></p>
                </div>
            </ItemTemplate>
            <FooterTemplate>
                <br />
                <asp:Label ID="lbmessage" Text="糟糕了,空空如也,找不到任何内容.." ForeColor="DarkOrange" runat="server"
                    Visible='<%#bool.Parse((rpList.Items.Count==0).ToString())%>'>
                </asp:Label>
            </FooterTemplate>
        </asp:Repeater>

后台代码:[CommandArgument就是要的参数 CommandName是命令名称]

protected void rpList_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "updatepass")
        {

            string id = e.CommandArgument.ToString();
            try
            {
                var vStu = from s in ydtvu.Students
                           where s.SID.ToString().Trim() == id.ToString().Trim()
                           select s;

                vStu.First().SPass = ToMD5.getMd5Hash("123456").ToString().Trim();
                ydtvu.SubmitChanges();
                ClientScript.RegisterStartupScript(this.GetType(), "failure", "$(function(){asyncbox.alert('恭喜您,密码初始化成功!当前密码:123456','江苏广播电视大学盐都学院');})", true);
            }
            catch (Exception exp)
            {
                ClientScript.RegisterStartupScript(this.GetType(), "failure", "$(function(){asyncbox.alert('对不起,密码初始化失败,请稍候重试!','江苏广播电视大学盐都学院');})", true);
            }
        }

可是,一点按钮,页面就出现了错误,提示回发或回调参数无效。

经过查找资料,找到以下方法:

页面上是否有用上数据绑定控件,如果用的话,请放在 if(!IsPostBack) { //绑定 }
如果没有的话,可以将 页面上EnableEventValidation 属性设置为false

将原先Repeater控件的绑定事件放到if(!IsPostBack){//绑定}中后,不再提示该错误。

时间: 2024-10-06 16:23:24

Repeater控件中触发按钮事件出现System.ArgumentException: 回发或回调参数无效。在配置中使用 < pages enableEventValidation="true"/>的相关文章

回发或回调参数无效。在配置中使用 &lt;pages enableEventValidation=&quot;true&quot;/&gt; 或在页面中使用 &lt;%@ Page EnableEventValidation=&quot;true&quot; %&gt; 启用了事件验证。

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

DropDownList 控件不能触发SelectedIndexChanged 事件

相信DropDownList 控件不能触发SelectedIndexChanged 事件已经不是什么新鲜事情了,原因也无外乎以下几种: 1.DropDownList 控件的属性 AutoPostBack="True" 没有写: 2.DropDownList 控件的数据绑定没有放在if (!Page.IsPostBack) 里面: 3.DropDownList 控件选定项的value 值只有在发生变化时,才将信息发往服务器: 有人问 (1)AutoPostBack="True&

Repeater控件 ---属性(ItemCommand事件)

epeater的Command操作:1.ItemCommand事件 - 在Repeater中所有能触发事件的控件,都会来触发这一个事件 2.CommandName - 判断点击的是什么按钮,e.CommandName 3.CommandArgument - 触发事件所传递过来的主键值数据,放在这里面界面值绑定时要用 单引号 !!!!!! e.... 4.ItemCreated - 项模板中将HTML代码生成完毕时执行一遍此事件5.ItemDataBound - 项模板将数据绑定后执行一遍此事件

解决easyUI下拉控件无法触发onkeydown事件

实现在combotree下拉控件中按Backspace键清除combotree选中的值 下面的代码无法获取到键盘事件 <input class="easyui-combotree" id="tt" name="tt" onkeydown="if(event.keyCode==8) clear()"/> 原因是easyUI重新定义了键盘事件,解决如下: $("#tt").combotree({ u

select控件自动触发change事件

这里接上面的二级联动.背景:当页面跳转到修改页面时,需要首先绑定学院和专业.这就需要在页面加载时触发select的change事件,具体用trigger函数进行实现.代码如下. $("#xsxy").change(function (event, flag) { var xyidvalue; if (flag == "start") xyidvalue = '<%=xsxyid%>'; else xyidvalue = $(this).val(); $.

WebForm(四)——Repeater控件(重要、好用)

Repeater控件,可以用来一次显示一组数据项.比如,可以用它们显示一个数据表中的所有行.             Repeater控件完全由模板驱动,提供了最大的灵活性,可以任意设置它的输出格式. 一.Repeater控件显示数据 要使用Repeater控件显示数据,必须创建ItemTemplate.如下所示: 例1:使用ItemTemplate显示数据 <asp:Repeater ID="Repeater1" runat="server" DataSou

asp.net 在repeater控件中加按钮

在repeater中加入方法有两种方法: 第一种:是对repeater控件的行添加OnItemCommand事件,添加方法也是有两种 1.在设计页面中,选中repeater控件右击==>属性==>属性栏中的事件标签(闪电符号)==>双击ItemCommand 2.在写代码,也是可以实现. <asp:Repeater ID="rptDataList" runat="server" onitemcommand="rptDataList_

WebForm以及WebForm中Repeater控件、简单控件使用

ASP.NET分为:ASP.NET WebForm和ASP.NET MVC 运行机制: C/S(客户端应用程序) 代码在客户端执行,仅仅去服务器上的数据库存取数据 B/S(网站应用程序) 程序代码在服务器上执行,客户端仅仅渲染HTML+CSS,执行JS代码,其它所有的功能都在服务器上执行 客户端浏览器发送请求→服务器上的IIS(Internet 信息服务管理器)(html+css+js)→服务器上的.net framwork进行代码处理→服务器上的数据库 web为什么越来越受欢迎 1.不吃用户电

ASP.NET- 查找Repeater控件中嵌套的控件

如何在Repeater的HeaderTemplate和FooterTemplate模板中寻找控件?在Repeater的ItemTemplate模板中的控件,我们可以用Items属性来遍历行并用FindControl进行寻找. 如下所示:在Repeater的Item Command事件下下遍历: for(int i=0;i<repeater1.Items.Count;i++) { CheckBox cb=(CheckBox )repeater1.Items[i].FindControl("C