[CLOSED] How to avoid page load on every action/Direct event

  1. #1

    [CLOSED] How to avoid page load on every action/Direct event

    Hi,

    I have two panels, one panel contains gridpanel and other contains Iframe.

    If I select the row one of the record contains a URL based on the row selection the Iframe should refresh/postback with new selected data (URL)

    Every time page load when any event occurred :

    How to avoid page loads for every action and our application controls are generated on the fly .

    Please help me out how to avoid page load on every action (I cannot use !x.isAjaxPostback)


    <ext:GridPanel ID="GridPanel1" runat="server" Title="" StoreID="Store1" SelectionMemory="false"
                                EnableViewState="true">                         
                                                                   
                                <SelectionModel>
                                    <ext:RowSelectionModel ID="RowSelectionModel1" runat="server">
                                        <DirectEvents>
                                            <Select OnEvent="GridPanel1_RowSelect">
                                                <ExtraParams>
                                                    <ext:Parameter Name="RowValues" Value="Ext.encode(#{GridPanel1}.getRowsValues({selectedOnly:true}))"
                                                        Mode="Raw" />
                                                </ExtraParams>
                                            </Select>
                                        </DirectEvents>
                                    </ext:RowSelectionModel>
                                </SelectionModel>                          
                            </ext:GridPanel>
    
    
    protected void GridPanel1_RowSelect(object sender, DirectEventArgs e)
            {
                if (isrowEditable == false)
                {
                    string RecData = string.Empty;
                    string valList = string.Empty;
                    string rowValues = e.ExtraParams["RowValues"]; //extra params
    
                    Dictionary<string, string>[] gridRows = JSON.Deserialize<Dictionary<string, string>[]>(rowValues);
    
                    string strName = "";
                    foreach (Dictionary<string, string> row in gridRows)
                    {
                        string insertedTxt = "";
                        foreach (KeyValuePair<string, string> kvp in row)
                        {
                            RecData =  kvp.Key  
                            valList =  kvp.Value ;
    
                        }
                    }
    
                 if (ExtTestCustomEvent != null)
                            ExtTestCustomEvent(this, ceArgs); --->Bubbled event calling mainpage
                }
    
            }
    Please find mainpage code ..

    HtmlGenericControl ViewerIFrame = null;
    protected void Page_Load(object sender, EventArgs e)
            {
    
    addUserControl();
     ViewerIFrame = new HtmlGenericControl("iframe");
                                    ViewerIFrame.ID = fieldList[i].Name;
     ViewerIFrame.Attributes["height"] = Convert.ToString((fieldList[i].Height) * Constants.scaleY);
                                    ViewerIFrame.Attributes["frameBorder"] = "0";
                                    ViewerIFrame.Attributes["scrolling"] = "no";
    
    Placeholder2.Controls.Add(ViewerIFrame);
    }
    
    
    
    void uc2_ExtTestCustomEvent(object sender, CommandEventArgs e)
            {
                string args = "";// e.CommandName;
                string eArg = "";
                if (e.CommandArgument == null || (string)e.CommandArgument.ToString().Trim() == "")
                    eArg = "CommandClick";
                else
                    eArg = e.CommandArgument.ToString();
    
                OTEventArgs eArgs = new OTEventArgs(eArg, args);
                eArgs.Items = e.CommandName;
                eArgs.Sender = sender;
                ProcessEvent(sender, eArgs);
            }
    
    
    
     private void ProcessEvent(object sender, OTEventArgs e)
            {
    
    Ext.Net.X.Js.Set("ViewerIFrame.Attributes["src"] ", "WebOTViewer\\Viewer.aspx?Path=" + Server.UrlEncode(Convert.ToString(eArgs)) + "&FrameGroup=" + FrameGroup + "&height=" + FrameHeight + "&width=" + FrameWidth + "&isPercentage=" + IsPercentWidth);
    
       
    }
    
    
    Adding user control to mainpage:
    
    private void addUserControl(
    {
    
    OTExtGridview uc2 = (OTExtGridview)Page.LoadControl("~/UserControls/OTExtGridView.ascx");
                                        uc2.ExtTestCustomEvent += new OTExtGridview.ClickEventHandler(uc2_ExtTestCustomEvent);
    AsyncPostBackTrigger trg1 = new AsyncPostBackTrigger();
                                            trg1.ControlID = uc2.ID;
                                            trg1.EventName = "ExtTestCustomEvent";
                                            UpdatePanel1.Triggers.Add(trg1);
    }

    Thanks,
    Vamsi.
    Last edited by Daniil; May 30, 2015 at 2:24 PM. Reason: [CLOSED]
  2. #2
    Hi @Vamsi,

    Do you mean when a DirectEvent occurs, the page's Page_Load is being executed? If so, there is no way to avoid it. It is a regular ASP.NET page life cycle.

    The only approach is to avoid executing of the Page_Load code by using if (!X.IsAjaxRequest) which you say you cannot use. Could you, please, clarify why you cannot use it?

    Also please clarify why do you need to avoid Page_Load?

Similar Threads

  1. Replies: 1
    Last Post: Mar 15, 2013, 1:38 AM
  2. [CLOSED] [Razor] TreePanel load nodes from controller action
    By boris in forum 2.x Legacy Premium Help
    Replies: 8
    Last Post: May 18, 2012, 9:43 AM
  3. Replies: 3
    Last Post: Feb 03, 2012, 4:07 PM
  4. Replies: 6
    Last Post: Oct 13, 2011, 9:51 PM
  5. Avoid flickering of page
    By ganesh.tony in forum 1.x Help
    Replies: 1
    Last Post: Aug 11, 2011, 11:53 AM

Posting Permissions