Invalid postback or callback argument exception on first paging with arrows

6 posts, 0 answers
  1. Hans Notelteirs
    Hans Notelteirs avatar
    19 posts
    Member since:
    Apr 2009

    Posted 06 May 2009 Link to this post

    The Grid is placed within an ascx file that is loaded within a Sharepoint webpart.
    There are 2 webparts on the page. One is for the navigation and the other one contains the grid.
    When you select an item on the navigation webpart, we are redirected to the page using window.location.href.
    The first time the page is loaded and you press on the arrow in the radgrid to get to the next page, you get an "invalid postback or callback argument exception". if we click on the numbers itself, we don't get the invalid postback exception.

    Also the first time we click a control in the radgrid that does a postback, the first postback is always a full postback, from the second one we have partial postbacks.

    [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) +2132728System.Web.UI.Control.ValidateEvent(String uniqueID, String eventArgument) +108System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +32System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1746

    When you first have a full page postback, you don't get the error. For example when you first sort a column or select a page number.
    After that the paging works fine, but the outlining of the columns isn't right anymore.
    So my questions are:

    - How can I fix the postback or callback argument exception?
    - How to make sure the layout isn't broken after using the paging?

    Note that we performed the fix for Sharepoint in the init.js related to Ajax submits.

    Thanks in advance.

    <%@ Register TagPrefix="ajax" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %> 
    <%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI, Version=2009.1.402.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4" %> 
    <ajax:ScriptManagerProxy ID="sm" runat="server"
        <Scripts> 
            <ajax:ScriptReference Path="/_layouts/VMMA.Intranet/js/ProgramSheet.js" /> 
        </Scripts> 
    </ajax:ScriptManagerProxy> 
    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"  
        DefaultLoadingPanelID="RadAjaxLoadingPanel1"
        <AjaxSettings> 
            <telerik:AjaxSetting AjaxControlID="RadGridActualsPlanning"
                <UpdatedControls> 
                    <telerik:AjaxUpdatedControl ControlID="pnlActualsPlanning"  
                        LoadingPanelID="RadAjaxLoadingPanel1" /> 
                </UpdatedControls> 
            </telerik:AjaxSetting> 
            <telerik:AjaxSetting AjaxControlID="rgInvoice"
                <UpdatedControls> 
                    <telerik:AjaxUpdatedControl ControlID="pnlActualsPlanning"  
                        LoadingPanelID="RadAjaxLoadingPanel1" /> 
                </UpdatedControls> 
            </telerik:AjaxSetting> 
        </AjaxSettings> 
    </telerik:RadAjaxManager> 

    <asp:Panel ID="pnlActualsPlanning" runat="server" Visible="false"
                    <h3> 
                        <asp:Label ID="lblActualsPlanning" runat="server"></asp:Label></h3
                    <telerik:RadGrid ID="RadGridActualsPlanning" runat="server" AllowFilteringByColumn="true" 
                        AllowPaging="true" Width="760px" AllowSorting="true" AllowColumnsReorder="True" 
                        PagerStyle-AlwaysVisible="true"
                        <ClientSettings Scrolling-AllowScroll="true" Scrolling-ScrollHeight="100%" Scrolling-UseStaticHeaders="true" 
                            Scrolling-FrozenColumnsCount="2" Resizing-AllowColumnResize="True"
                        </ClientSettings> 
                        <ExportSettings Pdf-PaperSize="A4" Pdf-PageWidth="21cm" Pdf-PageHeight="29cm"
                        </ExportSettings> 
                        <PagerStyle LastPageToolTip="Laatste Pagina" NextPagesToolTip="Volgende Pagina's" 
                            NextPageToolTip="Volgende Pagina" PrevPagesToolTip="Vorige Pagina's" PrevPageToolTip="Vorige Pagina" 
                            PagerTextFormat="{4} &nbsp;Pagina <strong>{0}</strong> van <strong>{1}</strong>, item <strong>{2}</strong> tot <strong>{3}</strong> van de <strong>{5}</strong>." 
                            FirstPageToolTip="Eerste Pagina" /> 
                        <StatusBarSettings LoadingText="Wordt geladen..." ReadyText="Klaar" /> 
                        <MasterTableView AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False"
                            <Columns> 
                                <telerik:GridBoundColumn DataField="ProductRightsID" SortExpression="ProductRightsID" 
                                    HeaderText="BillieID" /> 
                                <telerik:GridBoundColumn DataField="programmatitel" SortExpression="programmatitel" 
                                    HeaderText="programmatitel" /> 
                                <telerik:GridBoundColumn DataField="productiejaar" SortExpression="productiejaar" 
                                    HeaderText="productiejaar" /> 
                                <telerik:GridBoundColumn DataField="jaargang" SortExpression="jaargang" HeaderText="jaargang" /> 
                                <telerik:GridBoundColumn DataField="episodeTitel" SortExpression="episodeTitel" HeaderText="episodeTitel" /> 
                                <telerik:GridBoundColumn DataField="zender" SortExpression="zender" HeaderText="zender" /> 
                                <telerik:GridBoundColumn DataField="uitzenddag" SortExpression="uitzenddag" HeaderText="uitzenddag" /> 
                                <telerik:GridBoundColumn DataField="uitzenduur" HeaderText="uitzenduur" /> 
                            </Columns> 
                        </MasterTableView> 
                    </telerik:RadGrid> 
                </asp:Panel> 




  2. Iana Tsolova
    Admin
    Iana Tsolova avatar
    3388 posts

    Posted 11 May 2009 Link to this post

    Hello Hans,

    I followed your scenario and prepared a sample project (attached to this post). Please check it out on your end and let me know what differs in your case.

    Looking forward your reply,
    Iana
    the Telerik team

    Instantly find answers to your questions on the new Telerik Support Portal.
    Check out the tips for optimizing your support resource searches.
  3. Hans Notelteirs
    Hans Notelteirs avatar
    19 posts
    Member since:
    Apr 2009

    Posted 12 May 2009 Link to this post

    I have traced the problem to the following.
    When using Telerik controls in a Sharepoint environment and loading UserControls as Webparts it is important to set the EnsureChildControl in the OnInit method of the webpart.

    In the dynamicly loaded usercontrol it is important to bind the data to the grids or any other component of Telerik in the onInit method.
    This way all the invalid postback disappear.

     

    public class IdeaGrid : WebPart  
        {  
            protected Control userControl;  
            private const string controlId = "ideaGridId";  
     
            protected override void OnInit(System.EventArgs e)  
            {  
                base.OnInit(e);  
                EnsureChildControls();  
            }  
     
            protected override void CreateChildControls()  
            {  
                var userControlPath = @"/_controltemplates/VMMA.Intranet/IdeaGrid.ascx";  
                userControl = Page.LoadControl(userControlPath);  
                userControl.ID = controlId;  
                Controls.Add(userControl);  
            }  
        } 
    public class IdeaGrid : UserControl  
        {  
            protected override void OnInit(EventArgs e)  
            {  
                base.OnInit(e);  
                  
                // Link Events  
                createBtn.Click += createBtn_Click;  
                conceptMeetingDocGenBtn.Click += conceptMeetingDocGenBtn_Click;  
                pitchPoolDocGenBtn.Click += pitchPoolDocGenBtn_Click;  
     
                RadAjaxManager.GetCurrent(Page).ClientEvents.OnRequestStart = "gridRequestStart";  
            }  
     
            protected override void OnLoad(EventArgs e)  
            {  
                base.OnLoad(e);  
                  
                gridOverview.DataSource = GetIdeaSource();  
                gridOverview.DataBind();  
            }  

     

     

     

  4. Iana Tsolova
    Admin
    Iana Tsolova avatar
    3388 posts

    Posted 13 May 2009 Link to this post

    Hi Hans,

    I am happy to hear you have found a solution for your case and thank you for sharing it with the community.

    Do not hesitate to write us back if any issues arise.

    All the best,
    Iana
    the Telerik team

    Instantly find answers to your questions on the new Telerik Support Portal.
    Check out the tips for optimizing your support resource searches.
  5. Baktha
    Baktha avatar
    5 posts
    Member since:
    Aug 2015

    Posted 13 Aug 2015 in reply to Iana Tsolova Link to this post

    Hi,

    I am using telerik  Version=2008.2.826.35, i want pagination with page size can you help me

  6. Eyup
    Admin
    Eyup avatar
    3690 posts

    Posted 18 Aug 2015 Link to this post

    Hi Baktha,

    Please note that the Telerik controls kit is improved in every release, being fortified with new features, faster performance, new controls, easier configuration, more user-friendly and attractive interface, etc. Essentially, our duty is to deliver and provide constantly improving products, which enable the developers using them to provide a better project for their customers, enriched with wide range of functionality and features. In this sense, I strongly suggest that you update to the latest release version of the controls even if your current project does not require you to do so.

    As for the original issue, have in mind that the NeedDataSource event is the mandatory way when you need to bind the grid to a programmatic data source in the code-behind. It is important to note that you are not using DataBind() to bind the grid. Performing complex grid operations such as Inserting, Deleting, Updating, Hierarchy relations, Grouping, Exporting, Paging, Sorting, Filtering, etc. require accommodating appropriate database operations.  Therefore, we suggest you to avoid Simple Databinding and strongly recommend the use of more advanced databinding methods, which automatically handle the aforementioned functions:
    Declarative DataSource
    Programmatic Data Binding


    Regards,
    Eyup
    Telerik
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
Back to Top