I get the following error when I click a button with gridview
Server Error in '/' Application. Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.ArgumentException: Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation. Source Error: An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. Stack Trace: [ArgumentException: Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.] System.Web.UI.ClientScriptManager.ValidateEvent(String uniqueId, String argument) +144 System.Web.UI.Control.ValidateEvent(String uniqueID, String eventArgument) +111 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +29 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1724 Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.17929
This happens when I click a button inside a gridview, and it is strange that I have another gridview, also with a custom button in a column that launches different code but gives no errors. Below is the page code and code.
namespace CCCC { public partial class drivermangement : System.Web.UI.MasterPage { protected void Page_Load(object sender, EventArgs e) { if (System.Web.HttpContext.Current.User.Identity.IsAuthenticated) { if (Roles.IsUserInRole("Administrator")) { 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; } if (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 = true; } 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; } } protected void NewCustomerDoneButton_Click(object sender, EventArgs e) { int CustomerID = Convert.ToInt32(((Button)sender).CommandArgument); string CustomerBinNeedAcknowledged = "Yes"; string strConnString = "Data Source"; using (SqlConnection con = new SqlConnection(strConnString)) { using (SqlCommand cmd = new SqlCommand()) { cmd.Connection = con; cmd.CommandType = CommandType.Text; cmd.CommandText = "UPDATE Customers SET CustomerBinNeedAcknowledged=@CustomerBinNeedAcknowledged WHERE CustomerID=@CustomerID "; cmd.Parameters.AddWithValue("@CustomerBinNeedAcknowledged", CustomerBinNeedAcknowledged); cmd.Parameters.AddWithValue("@CustomerId", CustomerID); con.Open(); cmd.ExecuteNonQuery(); con.Close(); } } }
and actual page:
<%@ Master Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" Inherits="CCCCCC.drivermangement" CodeBehind="drivermangement.master.cs" %> <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> <asp:HiddenField ID="LoggedInUser" runat="server" /> <asp:HiddenField ID="DayOfTheWeekHiddenField" runat="server" /> <ajaxToolkit:TabContainer ID="RoutingTabs" runat="server" ActiveTabIndex="0" Width="900px"> <ajaxToolkit:TabPanel runat="server" HeaderText="Pre-Route" ID="PreRouteTab"> <ContentTemplate> <br /> <asp:Label ID="NewCustomersLabel" runat="server" style="font-weight: 700; font-size: large; color: #009933" Text="New Customers"></asp:Label> <asp:GridView ID="NewCustomersGrid" runat="server" AllowPaging="True" AutoGenerateColumns="False" BackColor="White" BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px" CellPadding="3" DataKeyNames="CustomerId" DataSourceID="NewCustomers" ForeColor="Black" GridLines="Vertical"> <AlternatingRowStyle BackColor="#99FF99" ></AlternatingRowStyle> <Columns> <asp:BoundField DataField="CustomerFullName" HeaderText="Name" SortExpression="CustomerFullName" /> <asp:BoundField DataField="CustomerFullAddress" HeaderText="Address" SortExpression="CustomerFullAddress" /> <asp:BoundField DataField="CustomerNeedsBin" HeaderText="Needs Bin?" SortExpression="CustomerNeedsBin" /> <asp:TemplateField ShowHeader="False"><ItemTemplate> <asp:Button ID="NewCustomerDoneButton" runat="server" CommandName="" Text="Done" CommandArgument='<%# Eval("CustomerID") %>' OnClick="NewCustomerDoneButton_Click" CausesValidation="False" /> </ItemTemplate> </asp:TemplateField> </Columns> <asp:SqlDataSource ID="NewCustomers" runat="server" ConnectionString="<%$ ConnectionStrings:tcc_customersConnectionString %>" SelectCommand="SELECT [CustomerId], [CustomerStatus], [CustomerFullName], [CompanyName], [CustomerFullAddress], [CustomerPickUpDay], [CustomerPickUpDay2], [CustomerDriver], [CustomerNeedsBin], [CustomerBinNeedAcknowledged] FROM [Customers] WHERE (([CustomerBinNeedAcknowledged] = @CustomerBinNeedAcknowledged) AND ([CustomerNeedsBin] = @CustomerNeedsBin) AND ([CustomerDriver] = @CustomerDriver) AND ([CustomerStatus] = @CustomerStatus) AND ([CustomerPickUpDay] = @CustomerPickUpDay OR [CustomerPickUpDay2] = @CustomerPickUpDay2))"><SelectParameters> <asp:Parameter DefaultValue="No" Name="CustomerBinNeedAcknowledged" Type="String" /> <asp:Parameter DefaultValue="Yes" Name="CustomerNeedsBin" Type="String" /> <asp:ControlParameter ControlID="LoggedInUser" Name="CustomerDriver" PropertyName="Value" Type="String"></asp:ControlParameter> <asp:Parameter DefaultValue="New" Name="CustomerStatus" Type="String" /> <asp:ControlParameter ControlID="DayOfTheWeekHiddenField" Name="CustomerPickUpDay" PropertyName="Value" Type="String" ></asp:ControlParameter> <asp:ControlParameter ControlID="DayOfTheWeekHiddenField" Name="CustomerPickUpDay2" PropertyName="Value" Type="String" /> </SelectParameters> </asp:SqlDataSource> </ContentTemplate> </ajaxToolkit:TabPanel> <ajaxToolkit:TabPanel runat="server" HeaderText="Post-Route" ID="PostRouteTab"><ContentTemplate>
Now I'm wondering, is this because the GridView is inside the Ajax Tab Container ? Because my other table works fine, not ...
Note: I had to cut some code from the page due to character restrictions