今天,在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