Invalid postback or callback argument Error.

Last post 07-05-2009 11:49 AM by SSA. 7 replies.

Sort Posts:

  • Invalid postback or callback argument Error.

    07-04-2009, 10:35 AM
    • Member
      20 point Member
    • jeanny88
    • Member since 07-07-2008, 6:43 PM
    • Posts 65

     I m having this error when i try to add my item to cart.

    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.

    I have been search to many forums and article. it say can be solve using Not postback in page load. i have been try to bind my data in Not post back. somehow the error still exist. What to bind in If not post back actually?

    aspx page

    <%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="product.aspx.vb" Inherits="product" title="Cosmetic Catalogue" %>
    
    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
    
    <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
        <table bgcolor="#FFE1FF" style="width:100%;">
            <tr>
                <td valign="top" width="25%">
                    <fieldset id="submenu">
                    <div>
                        <cc1:Accordion ID="Accordion1" runat="server" FadeTransitions="True" FramesPerSecond="40" HeaderCssClass="accordionHeader" ContentCssClass="accordionContent" RequireOpenedPane="false" SelectedIndex="0">
                        <Panes>
                            <cc1:AccordionPane ID="AccordionPane1" runat="server" HeaderCssClass="accordionHeader" ContentCssClass="accordionContent" >
                            <Header><a href="#" onclick="return false;" class="accordionLink">Face</a>
                            </Header>
                            <Content>
                            <p><a href="product.aspx?cat=30101" class="accordionSublink">Foundation</a></p>
                            <p><a href="product.aspx?cat=30102" class="accordionSublink">Powder</a></p>
                            <p><a href="product.aspx?cat=30103" class="accordionSublink">Concealer</a></p>
                            <p><a href="product.aspx?cat=30104" class="accordionSublink">Blush</a></p>
                           </Content>
                            </cc1:AccordionPane>
                            
                            <cc1:AccordionPane ID="AccordionPane2" runat="server" HeaderCssClass="accordionHeader" ContentCssClass="accordionContent" >
                            <Header><a href="#" onclick="return false;" class="accordionLink">Eyes</a>
                            </Header>
                            <Content>
                            <p><a href="product.aspx?cat=30201" class="accordionSublink">EyeShadow</a></p>
                            <p><a href="product.aspx?cat=30202" class="accordionSublink">Eye Liner</a></p>
                            <p><a href="product.aspx?cat=30203" class="accordionSublink">Mascara</a></p>
                           </Content>
                            </cc1:AccordionPane>
                            
                            <cc1:AccordionPane ID="AccordionPane3" runat="server" HeaderCssClass="accordionHeader" ContentCssClass="accordionContent" >
                            <Header><a href="#" onclick="return false;" class="accordionLink">Lip</a>
                            </Header>
                            <Content>
                            <p><a href="product.aspx?cat=30301" class="accordionSublink">Lip Color</a></p>
                            <p><a href="product.aspx?cat=30302" class="accordionSublink">Lip Gloss</a></p>
                            <p><a href="product.aspx?cat=30303" class="accordionSublink">Lip Liner</a></p>
                           </Content>
                            </cc1:AccordionPane>
                        </Panes>     
                        </cc1:Accordion>   
                    </div>
                    </fieldset>
                  <br />
                  
                    <fieldset id="askexpert" style="height: 200px">
                        <asp:ImageButton ID="ImageButton1" runat="server" BorderColor="Silver" 
                            BorderStyle="Dotted" BorderWidth="0.1em" 
                            ImageUrl="~/Image/WebsiteImage/ASKEXPERT.jpg" 
                            PostBackUrl="~/AskExpert.aspx" />
                    </fieldset>
    
                    </td>
                <td valign="top" width="75%">
                    <table bgcolor="White" style="width:100%;">
                        <tr>
                            <td valign="top" colspan="2">
                                <asp:Label ID="Label1" runat="server" CssClass="header" 
                                    Text="Product Catalogue"></asp:Label>
                            </td>
                        </tr>
                        <tr>
                            <td valign="top">
                                 </td>
                            <td valign="top">
                                 </td>
                        </tr>
                        <tr align="right">
                            <td valign="top" colspan="2">
                                <asp:Label ID="Label2" runat="server" Text="Sort by:"></asp:Label>
     <asp:DropDownList ID="ddlSort" runat="server" AutoPostBack="True">
                                    <asp:ListItem Selected="True" Value="0">Brand A-Z</asp:ListItem>
                                    <asp:ListItem Value="1">Product Name A-Z</asp:ListItem>
                                    <asp:ListItem Value="2">Price (low- high)</asp:ListItem>
                                    <asp:ListItem Value="4">Price (high-low)</asp:ListItem>
                                </asp:DropDownList>
                            </td>
                        </tr>
                        <tr>
                            <td valign="top">
                                 </td>
                            <td valign="top">
                                 </td>
                        </tr>
                        <tr>
                            <td valign="top" colspan="2">
                                <asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
                                    AutoGenerateColumns="False" DataKeyNames="item_No,brand_ID" 
                                    DataSourceID="ItemSqlDataSource" Width="100%" GridLines="None" 
                                    ShowHeader="False">
                                    <Columns>
                                        <asp:BoundField DataField="item_No" HeaderText="" ReadOnly="True" 
                                            SortExpression="item_No" InsertVisible="false" Visible="False" />
                                        <asp:TemplateField>
                                            <ItemTemplate>
                                            <table width="100%">
                                        <tr>
                                        <td valign="top" rowspan="6" width="100px">
                                            <asp:ImageButton ID="Image" runat="server" ImageUrl='<%#DataBinder.Eval(Container.DataItem, "item_image" )%>'  Width="100px" PostBackUrl='<%# "productdetails.aspx?id=" + DataBinder.Eval (Container.DataItem,"item_no").ToString() %>' /></td>
                                        <td valign="top">
                                             </td>
                                        <td valign="top">
                                             </td>
                                        <td rowspan="6" valign="middle">
                                            <asp:Button ID="btnCart2" runat="server" 
                                            CommandArgument='<%# Eval("item_No") %>' CommandName="CART" Text="Add to Cart"  /></td>
                                    </tr>
                                    <tr>
                                        <td valign="top">
                                             </td>
                                        <td valign="top">
                                             </td>
                                    </tr>
                                    <tr>
                                        <td valign="top" width="50%">
                                            <%#DataBinder.Eval(Container.DataItem, "brand_name")%></td>
                                        <td valign="top">
                                             </td>
                                    </tr>
                                    <tr>
                                        <td valign="top">
                                            <%#DataBinder.Eval(Container.DataItem, "item_name")%></td>
                                        <td valign="top">
                                            RM <%#DataBinder.Eval(Container.DataItem, "item_price")%></td>
                                    </tr>
                                    <tr>
                                        <td valign="top">
                                             </td>
                                        <td valign="top" width="25%">
                                            Qty: 
                                            <asp:DropDownList ID="ddlQty" runat="server" AutoPostBack="False">
                                            <asp:ListItem>1</asp:ListItem>
                                            <asp:ListItem>2</asp:ListItem>
                                            <asp:ListItem>3</asp:ListItem>
                                            <asp:ListItem>4</asp:ListItem>
                                            <asp:ListItem>5</asp:ListItem>
                                            <asp:ListItem>6</asp:ListItem>
                                            </asp:DropDownList>
                                            
                                            </td>
                                    </tr>
                                    <tr>
                                        <td valign="top">
                                            rating</td>
                                        <td valign="top">
                                             </td>
                                    </tr>
                                </table><hr />
                                            </ItemTemplate>
                                </asp:TemplateField>
                                    </Columns>
                                    <AlternatingRowStyle BackColor="WhiteSmoke" />
                                </asp:GridView>
                                <asp:SqlDataSource ID="ItemSqlDataSource" runat="server" 
                                    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" >
                                </asp:SqlDataSource> 
                            </td>
                        </tr>
                        <tr>
                            <td valign="top" colspan="2">
                                
                                 </td>
                        </tr>
                        <tr>
                            <td valign="top" colspan="2">
                                
                                 </td>
                        </tr>
                    </table>
                </td>
            </tr>
            <tr>
                <td valign="top" width="25%">
                     </td>
                <td valign="top" width="75%">
                     </td>
            </tr>
        </table>
    </asp:Content>
    
    

    Code Behind:

    Partial Class product
        Inherits System.Web.UI.Page
    
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            If Not IsPostBack Then
                'What should i bind??
            End If
    
            Me.LoadCommand()
    
        End Sub
    
        Private Sub LoadCommand()
            Dim StrSQL As String = "SELECT * FROM Item INNER JOIN Brand ON Item.item_brandID = Brand.brand_ID"
            Me.ItemSqlDataSource.SelectParameters.Clear()
    
            If Not Me.Request.QueryString("cat") Is Nothing Then
                StrSQL += " WHERE [item_subcatID] = @item_subcatID"
                Me.ItemSqlDataSource.SelectParameters.Add("item_subcatID", Me.Request.QueryString("cat").ToString().Trim())
            End If
    
            If ddlSort.SelectedValue = 0 Then
                StrSQL += " ORDER BY Brand.brand_name"
            End If
    
            If ddlSort.SelectedValue = 1 Then
                StrSQL += " ORDER BY Item.item_name"
            End If
    
            If ddlSort.SelectedValue = 2 Then
                StrSQL += " ORDER BY Item.item_price"
            End If
    
            If ddlSort.SelectedValue = 3 Then
                StrSQL += " ORDER BY Item.item_name DESC"
            End If
    
            Me.ItemSqlDataSource.SelectCommand = StrSQL
    
            Me.ItemSqlDataSource.DataBind()
            Me.GridView1.DataBind()
        End Sub
    
        Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
    
            If e.CommandName = "CART" Then
                Dim DB As New DB("SELECT * FROM Cart WHERE cart_item_No = @cart_item_No AND cart_session_ID = @cart_session_ID and cart_order_ID is null")
                DB.AddParameter("cart_item_No", e.CommandArgument.ToString())
                DB.AddParameter("cart_session_ID", Me.Session.SessionID)
    
                Dim Reader As SqlDataReader = DB.SQLGet
    
                If Reader.Read Then
                    Dim qty1 As Integer = Reader("cart_qty").ToString()
    
                    Dim row As GridViewRow = DirectCast((DirectCast(e.CommandSource, Button).NamingContainer), GridViewRow)
                    Dim qty As DropDownList = DirectCast(row.FindControl("ddlQty"), DropDownList)
                    Dim qty2 As Integer = qty.SelectedValue
    
                    Dim Totalqty As Integer = qty1 + qty2
    
                    Dim DB3 As New DB("UPDATE Cart SET cart_qty =@cart_qty WHERE cart_item_No = @cart_item_No AND cart_session_ID = @cart_session_ID and cart_order_ID is null")
                    DB3.AddParameter("cart_item_No", e.CommandArgument.ToString())
                    DB3.AddParameter("cart_session_ID", Me.Session.SessionID)
                    DB3.AddParameter("cart_qty", Totalqty)
    
                    If Not DB3.SQLPost() Then
                        Me.Response.Write(DB3.StrErrorMessage)
                        Return
                    End If
    
                    DB3.Close()
                    Me.Response.Redirect("shoppingcart.aspx")
    
                Else
    
                    Dim DB2 As New DB("INSERT INTO [Cart] (cart_item_No, cart_session_ID, cart_qty) VALUES (@cart_item_No, @cart_session_ID, @cart_qty)")
                    DB2.AddParameter("cart_item_No", e.CommandArgument)
                    DB2.AddParameter("cart_session_ID", Me.Session.SessionID)
    
                    ' Find dropdownlist ddl on the row where you clicked the button   
                    Dim row As GridViewRow = DirectCast((DirectCast(e.CommandSource, Button).NamingContainer), GridViewRow)
                    Dim qty As DropDownList = DirectCast(row.FindControl("ddlQty"), DropDownList)
                    DB2.AddParameter("cart_qty", qty.SelectedValue)
    
    
                    If Not DB2.SQLPost() Then
                        Me.Response.Write(DB2.StrErrorMessage)
                    End If
    
                    DB2.Close()
    
                    Me.Response.Redirect("shoppingcart.aspx")
                End If
    
            End If
        End Sub
    
    End Class
    



     

     

     

     

     

     

  • Re: Invalid postback or callback argument Error.

    07-04-2009, 5:06 PM
    • All-Star
      24,328 point All-Star
    • PeteNet
    • Member since 01-21-2009, 1:15 PM
    • Posts 3,453

    the sub LoadCommand, as that it where you're binding controls to the data...so like:


        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            If Not IsPostBack Then
                  Me.LoadCommand()
            End If
        End Sub


    Regards,
    Peter
  • Re: Invalid postback or callback argument Error.

    07-05-2009, 2:43 AM
    • Member
      20 point Member
    • jeanny88
    • Member since 07-07-2008, 6:43 PM
    • Posts 65

     I have tried bind with Me.LoadCommand() but when i click add to cart it still show invalid postback or call argument error.

    if i set my page eventvalidation to false, the add to cart button cannot function.

    any idea how to solve this?

  • Re: Invalid postback or callback argument Error.

    07-05-2009, 6:52 AM
    Answer
    • Contributor
      2,494 point Contributor
    • SSA
    • Member since 05-07-2009, 3:16 PM
    • Amsterdam, The Nederlands
    • Posts 411
    1.  Protected Sub Page_Load(ByVal sender As ObjectByVal e As System.EventArgs) Handles Me.Load  
    2.         If Not IsPostBack Then  
    3.         'What should i bind??  
    4. ' Add this
    5. Me.LoadCommand()  
    6.         End If  
    7.   
    8. ' Remove this        Me.LoadCommand()  

    9.   
    10.     End Sub  
  • Re: Invalid postback or callback argument Error.

    07-05-2009, 9:08 AM
    • Member
      20 point Member
    • jeanny88
    • Member since 07-07-2008, 6:43 PM
    • Posts 65

     Ok..after i remove it, the 'add to cart' can function however now it's my sorting problem. i cannot sort my catalog?

    any idea?? thx^^

  • Re: Invalid postback or callback argument Error.

    07-05-2009, 9:57 AM
    Answer
    • Contributor
      2,494 point Contributor
    • SSA
    • Member since 05-07-2009, 3:16 PM
    • Amsterdam, The Nederlands
    • Posts 411

    Okay now to solve sorting, there are two things you can do

    1: In new code, where you are calling LoadCommand, if its not post back

    Generate DropDownlist selected index changed method for your sort dropdown list (also Set AutoPostBack=true) and call LoadCommand there.

    For example: Its c# code example:

     

    protected void StatusDropDownList_SelectedIndexChanged(object sender, EventArgs e)
        {
            Fill_Aanvraag_list(Session["Username"].ToString(), Session["Password"].ToString(), Session["Department"].ToString(), Session["Administrator"].ToString(), Session["AppUser"].ToString(), StatusDropDownList.SelectedItem.Text, null,null);
        }

    protected void ddlSort_SelectedIndexChanged(object sender, EventArgs e)

     {

    LoadCommand();

    }

     or you can also do this: 

    2. In your old code, where you were binding grid on every post back i.e. Calling LoadCommand without IsPostBack check:

    1.  Protected Sub GridView1_RowCommand(ByVal sender As ObjectByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand  
    2.   
    3. ' add this line here
    4.  e.Row.ID = Guid.NewGuid().ToString(); ' Conver to VB please, I have tight hands in vb

      I am sure this will solve the problem. 

  • Re: Invalid postback or callback argument Error.

    07-05-2009, 11:34 AM
    • Member
      20 point Member
    • jeanny88
    • Member since 07-07-2008, 6:43 PM
    • Posts 65

     Yeah..finally can work liao..thx so much^^ i m using the first solution.. thx so much

    Best Regard,

    Jeanny

  • Re: Invalid postback or callback argument Error.

    07-05-2009, 11:49 AM
    • Contributor
      2,494 point Contributor
    • SSA
    • Member since 05-07-2009, 3:16 PM
    • Amsterdam, The Nederlands
    • Posts 411

    Good, ;) would you please mark it as answer.

Page 1 of 1 (8 items)