Postback Issue

13 posts, 0 answers
  1. El
    El avatar
    130 posts
    Member since:
    Dec 2008

    Posted 16 Nov 2010 Link to this post

    I have loaded user control in content page. I want it loads some data only if it's not postback because later i need to update this data.
    Obviously it is always postback so i can't update the data properly. I tried with checking CallBack but it's always true.
    Please suggest what to do. Thanks
  2. El
    El avatar
    130 posts
    Member since:
    Dec 2008

    Posted 17 Nov 2010 Link to this post

    * bump *

    Am i black listed or what?

    I asked several questions in the last few days and none of them were answered. I even created support ticket but it was never answered too.

    Thanks

    NOTE:

    Means, i can load the user contols with no problem.

    But, in one of the USER CONTROLS i need to populate some fields with DB data and then update it.

    e.g. user Control 1:

    if(!Page.IsPostBack){

     // populate textboxes and dropdown lists

    }

    But it never happens as it's always PostBack in AJAX.

    If i ommit IsPostBack checking it works fine but, if i want to UPDATE the data changing the textbox and dropdownlist values it does not work becuase it always populate these controls again and again with the old data.

    I hope i explained it well this time. Thanks
  3. Vasil
    Admin
    Vasil avatar
    1641 posts

    Posted 17 Nov 2010 Link to this post

    Hello El,

    Your support tickets was closed, because you posted the same question in the forum. It is better to continue the communication in one thread.

    What you are probably looking for is:
    if (!ScriptManager.GetCurrent(Page).IsInAsyncPostBack)
    {
    }

    Check this site for more information.
    You can use the attribute in Session state , to count how many times you did AsyncPostBack.

    Kind regards,
    Vasil
    the Telerik team
    Browse the vast support resources we have to jumpstart your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.
  4. El
    El avatar
    130 posts
    Member since:
    Dec 2008

    Posted 17 Nov 2010 Link to this post

    Ok but AsyncPostBack happens after each TabClick which is not what i want. I need it to work just like IsPostBack and load data only when the user control is loaded very first time.

    As per the tickets; it happens often that i post in forums and then you ask me to create a support ticket to get a further help. That's why this time, i created ticket right after forum post. Sorry if it's not according the rules.

    Thanks
  5. El
    El avatar
    130 posts
    Member since:
    Dec 2008

    Posted 17 Nov 2010 Link to this post

    actually i managed it to work somehow but now it works only in Internet Explorer. In Firefox it does nothing. Just hangs and it seems that the ajax request is never fired.

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Dim parentajax As RadAjaxManager = CType(Parent.FindControl("ParentAjaxManager"), RadAjaxManager)
     
            If parentajax.IsAjaxRequest Then
                PopulateMyFields()
            End If       
        End Sub

    Is it sort of bug or what?
  6. Vasil
    Admin
    Vasil avatar
    1641 posts

    Posted 22 Nov 2010 Link to this post

    Hello El,

    Try the following code and you will see that IsPostBack works also if the control is ajaxified. First time, you will see the numbers from 1 to 5 (in the first page), and when performing postback (using paging for example), you will see that the grid binds to another DataSource with strings (p1 - p6).
    You can use the same approach for populating data in other controls.

    .aspx:
    <form id="form1" runat="server">
    <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
    </telerik:RadScriptManager>
    <div>
        <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
            <AjaxSettings>
                <telerik:AjaxSetting AjaxControlID="RadGrid1">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl ControlID="RadGrid1" />
                    </UpdatedControls>
                </telerik:AjaxSetting>
            </AjaxSettings>
        </telerik:RadAjaxManager>
        <telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="true" PageSize="5">
        </telerik:RadGrid>
    </div>
    </form>
    .cs:
    public void Page_Load(object sender, System.EventArgs e)
    {
        if (!IsPostBack)
        {
            RadGrid1.DataSource = new string[] { "1", "2", "3", "4", "5", "6" };
        }
        else
        {
            RadGrid1.DataSource = new string[] { "p1", "p2", "p3", "p4", "p5", "p6" };
        }
    }

    Regards,
    Vasil
    the Telerik team
    Browse the vast support resources we have to jumpstart your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.
  7. El
    El avatar
    130 posts
    Member since:
    Dec 2008

    Posted 22 Nov 2010 Link to this post

    That's simply no true!
    Add RadTabStrip and RadMultiPage controls to the parent page and then use the Load On Demand practice to load the USER CONTROLS respectively.
    It is always POSTBACK. Even the solution i found is not the final solution.
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Dim parentajax As RadAjaxManager = CType(Parent.FindControl("ParentAjaxManager"), RadAjaxManager)
      
            If parentajax.IsAjaxRequest Then
                PopulateMyFields()
            End If      
    End Sub

    It is fired whenever radajaxmanager request happens while i need something that would make it load data only when it's loaded very first time. However it works if you want to update the data.

    Another issue that i noticed with the RadAjaxManager is that the first user control that is loaded in the very first pageview is not firing Load event handler. Rather it happens when you click another tab page and then back to the first page. Weird!

    Please suggest something

  8. El
    El avatar
    130 posts
    Member since:
    Dec 2008

    Posted 23 Nov 2010 Link to this post

    If i remove all if statements it loads the data properly but, i can't update this data in that way.

    I just need to find a way to load data on INITIAL PAGE LOAD. But i really don;t know how do i do that. Very weird situation.

    Thank you
  9. Vasil
    Admin
    Vasil avatar
    1641 posts

    Posted 23 Nov 2010 Link to this post

    Hello El,

    You can use Session state to see what is going on.

    .cs:
    if (Session["I_am_here_for_first_time"] == null)
    {
        Session["I_am_here_for_first_time"] = true;
        //do initializations here
    }
    else
    {
        Session["I_am_here_for_first_time"] = false;
        //do updates here   
    }

    I mentioned it before, but probably it was not clear enough what I meant.

    Sincerely yours,
    Vasil
    the Telerik team
    Browse the vast support resources we have to jumpstart your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.
  10. El
    El avatar
    130 posts
    Member since:
    Dec 2008

    Posted 27 Nov 2010 Link to this post

    Ok it seems to be the best solution so far. However i would expect AJAX manager having a built-in method to check it's not postback.

    Btw, may i use ViewState (i can't test at the moment) instead Session object as i cannot increase the timeout of the Session so it expires after 20 minutes?

    Thanks
  11. Vasil
    Admin
    Vasil avatar
    1641 posts

    Posted 01 Dec 2010 Link to this post

    Hello El,

    You can use ViewState in your case. Also you can actually check if your control has some DataSource, from previous postback, and decide to update it or initialize it.

    Sincerely yours,
    Vasil
    the Telerik team
    Browse the vast support resources we have to jumpstart your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.
  12. El
    El avatar
    130 posts
    Member since:
    Dec 2008

    Posted 06 Dec 2010 Link to this post

    I can't use ViewState nor Session object. If i do it updates the all accounts to firstly loaded data. e.g. if i load customer #1 info and then i try to load user #2 the user #2 data will be updated with the data of user #1.

    Please suggest something else. Thanks
  13. Vasil
    Admin
    Vasil avatar
    1641 posts

    Posted 08 Dec 2010 Link to this post

    Hello El,

    I am not sure how you update this data. Note that controls are showing the data that you give them. If they show different user's data, probably the update function that you use is not correct.

    You can open a formal support ticket, and send us your code. Please also explain in details what exactly is the problem.

    Greetings,
    Vasil
    the Telerik team
    Browse the vast support resources we have to jumpstart your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.
Back to Top