当前位置: 首页 > 编程语言 > C#

错误:无效的回发或回调参数共享

时间:2023-04-10 22:12:29 C#

错误:无效的回发或回调参数我在“/”应用程序中使用gridview服务器错误单击按钮时出现以下错误。回发或回调参数无效。使用配置或页面启用事件验证。出于安全目的,此功能验证回发或回调事件的参数是否源自最初呈现它们的服务器控件。如果数据有效且符合预期,请使用ClientScriptManager。RegisterForEventValidation方法以注册回发或回调数据以进行验证。说明:在执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息。异常详细信息:System.ArgumentException:回发或回调参数无效。使用配置或页面启用事件验证。出于安全目的,此功能验证回发或回调事件的参数s源自最初呈现它们的服务器控件。如果数据有效且符合预期,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证。源错误:在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常来源和位置的信息。堆栈跟踪:[ArgumentException:无效的回发或回调参数。使用配置或页面启用事件验证。出于安全目的,此功能验证回发或回调事件的参数是否源自最初呈现它们的服务器控件。如果数据有效且符合预期,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证。]System.Web.UI.ClientScriptManager.ValidateEvent(StringuniqueId,字符串参数)+144System.Web.UI.Control.ValidateEvent(StringuniqueID,StringeventArgument)+111System.Web.UI.WebControls.Button.RaisePostBackEvent(StringeventArgument)+29System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(字符串事件参数)+10System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandlersourceControl,字符串事件参数)+13System.Web.UI.Page.RaisePostBackEvent(NameValueCollectionpostData)+1035System.Web.UI.Page.ProcessRequestMain(BooleanincludeStagesBeforeAsyncPoint,BooleanincludeStagesAfterAsyncPoint)+1724版本信息:Microsoft.NETFramework版本:4.0.30319;ASP.NET版本:4.0.30319.17929当我按下gridview内的按钮时,它会发生这种情况,奇怪的是我有另一个gridview,它在运行不同代码的列中也有一个自定义按钮,但没有错误下面是页面代码和代码隐藏。namespaceCCCC{publicpartialclassdrivermangement:System.Web.UI.MasterPage{protectedvoidPage_Load(objectsender,EventArgse){if(System.Web.HttpContext.Current.User.Identity.IsAuthenticated){if(Roles.IsUserInRole("管理员")){LoggedInUser.Value=Convert.ToString(Request.QueryString["driver"]);}else{LoggedInUser.Value=Membership.GetUser().UserName.ToString();}DayOfTheWeekHiddenField.Value=Convert.ToString(Request.QueryString["dow"]);}else{Response.Redirect("default.aspx");}if(NewCustomersGrid.Rows.Count==0){NewCustomersLabel.Visible=false;}else{NewCustomersLabel.Visible=true;}如果(NeedCompostGrid.Rows.Count==0){NeedCompostLabel.Visible=false;}else{NeedCompostLabel.Visible=true;}if(CanceledGrid.Rows.Count==0){CanceledLabel.Visible=false;}else{CanceledLabel.Visible=true;}if(VacationGrid.Rows.Count==0){VacationLabel.Visible=false;}else{VacationLabel.Visible=真;}if(NewCustomersGrid0.Rows.Count==0){NewCustomersLabel0.Visible=false;}else{NewCustomersLabel0.Visible=true;}if(NeedCompostGrid0.Rows.Count==0){NeedCompostLabel0.Visible=false;}else{NeedCompostLabel0.Visible=true;}if(CanceledGrid0.Rows.Count==0){CanceledLabel0.Visible=false;}else{CanceledLabel0.Visible=true;}}protectedvoidNewCustomerDoneButton_Click(objectsender,EventArgse){intCustomerID=Convert.ToInt32(((Button)sender).CommandArgument);字符串CustomerBinNeedAcknowledged=“是”;stringstrConnString="数据源";使用(SqlConnectioncon=newSqlConnection(strConnString)){使用(SqlCommandcmd=newSqlCommand()){cmd.Connection=con;cmd.CommandType=CommandType.Text;cmd.CommandText="UPDATECustomersSETCustomerBinNeedAcknowledged=@CustomerBinNeedAcknowledgedWHERECustomerID=@CustomerID";cmd.Parameters.AddWithValue("@CustomerBinNeedAcknowledged",CustomerBinNeedA确认);cmd.Parameters.AddWithValue("@CustomerId",CustomerID);con.Open();cmd.ExecuteNonQuery();con.Close();}}}和现实页面:ID="NewCustomers"runat="server"ConnectionString=""SelectCommand="SELECT[CustomerId],[CustomerStatus],[CustomerFullName],[CompanyName],[CustomerFullAddress],[CustomerPickUpDay],[CustomerPickUpDay2],[CustomerDriver],[CustomerNeedsBin]、[CustomerBinNeedAcknowledged]来自[Customers]WHERE(([CustomerBinNeedAcknowledged]=@CustomerBinNeedAcknowledged)AND([CustomerNeedsBin]=@CustomerNeedsBin)AND([CustomerDriver]=@CustomerDriver)AND([CustomerStatus]=@CustomerStatus)AND([CustomerPickUpDay]=@CustomerPickUpDay或[CustomerPickUpDay2]=@CustomerPickUpDay2))">我现在想知道,这与GridView位于Ajax选项卡容器内这一事实有什么关系吗?因为我的其他表工作正常,不是吗......注意:有更改为删除页面中的一些代码1)GridView中的回发或回调参数无效问题可能是:您正在使用对象数据源或手动绑定与将绑定您的GridView的函数调用绑定Page_Load事件中的数据每个事件都会触发数据任何控件。当您使用OnRowCommand触发任何GridView命令时,在RowCommand触发之前,您的GridView将重新绑定并且其中的所有控件将被分配新的id。因此RowCommand无法获取已触发事件的Item。无效回发或回调的解决方案GridView中的参数:你可以在这个if条件下绑定数据if(!IsPostBack){//你的绑定数据代码}如果这不起作用,这段代码肯定会给你解决方案然后检查是否有任何其他控件没有给出错误。您是通过javascript还是Ajax更新网格或任何此类控件。如果是这种情况,那么您可能正面临这种情况。可能解决方案是将EnableEventValidation设置为false。一些尝试在页面加载事件中,添加对!Page.IsPostBack的检查并将非验证代码块移到那里。尝试使用LinkBut??ton而不是常规按钮。这可能是因为您正在使用任何第三方控件。我也有这个错误。在我的例子中,我在更新面板内有一个中继器控件,在中继器控件内我使用的是telerikdatepicker控件。它在IE中运行良好,但在mozilla和chrome中运行不正常。我通过chrome和IE发送请求查看了这两种情况下的表单数据,发现触发控件值略有不同。我使用telerikRadAjaxmanager而不是updatepanel并且错误消失了。我测试了以上所有内容来解决方案和其他帖子,但我的问题不完整。在服务器端的网格事件结束时取消事件时,我的问题得到了解决。当我们使用gridview的编辑事件时,就会出现此类问题。只需添加e.Cancel=true;在活动结束时。以上是C#学习教程:Error:Invalidpostbackorcallbackparametersharing。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——取消=真;}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: