AsyncPostBackTrigger Just flashing/flicking the UpdatePanel but not updating it

Posted by Pankaj on Stack Overflow See other posts from Stack Overflow or by Pankaj
Published on 2012-02-01T08:32:59Z Indexed on 2012/04/06 11:29 UTC
Read the original article Hit count: 246

Filed under:
|
|

I am trying UpdatePanel & AsyncPostBackTrigger on master pages through find control method but problem is when I click on button (UpdateButton) It just flash/flick (No Postback) the UpdatePanle but still it don't update or refresh the gridview (images) inside the updatePanel.

I have placed script Manger on the master page & an AJAX Update panel in a ContentPlaceHolder in the child page. Also, in another ContentPlaceholder there is an asp button (outside of the UpdatePanel).

I want to refresh/reload the AJAX UpdatePanel with this asp button.

Thanks for suggestions.

Child Page Code :-

protected void Page_Load(object sender, EventArgs e)
 {
        ScriptManager ScriptManager1 = (ScriptManager)Master.FindControl("ScriptManager1");
        ContentPlaceHolder cph = (ContentPlaceHolder)Master.FindControl("cp_Button");
        Button btnRefresh = (Button)cph.FindControl("btnRefresh");
        ScriptManager1.RegisterAsyncPostBackControl(btnRefresh);
 }
 protected void btnRefresh_Click(object sender, EventArgs e)
 {
        UpdatePanel1.Update();

 }         


<%@ Page Title="" Language="C#" MasterPageFile="~/InnerMaster.master" AutoEventWireup="true" CodeFile="A.aspx.cs" Inherits="A" Async="true" %>

<asp:Content ID="Content3" ContentPlaceHolderID="MainContent" Runat="Server">
    <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
        <ContentTemplate>
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="id" DataSourceID="SqlDataSource1">
             <Columns>
                 <asp:TemplateField>
                     <ItemTemplate>
                        <asp:Image ID="img12" runat="server" Width="650px" Height="600" ToolTip="A" ImageUrl='<%# Page.ResolveUrl(string.Format("~/Cli/{0}", Eval("image"))) %>' />
                     </ItemTemplate>
                 </asp:TemplateField>
             </Columns>
           </asp:GridView>
         </ContentTemplate>
      </asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="cp_Button" Runat="Server">   
    <asp:Button ID ="btnRefresh" runat="server" onclick="btnRefresh_Click" Height="34" Width="110" Text="More Images" />
</asp:Content>

Hi updated code :- Now on click event whole pages is refreshed.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;


    namespace EProxy
    {
        public class EventProxy : Control, IPostBackEventHandler
        {
            public EventProxy()
            { }

            public void RaisePostBackEvent(string eventArgument)
            { }

            public event EventHandler<EventArgs> EventProxied;

            protected virtual void OnEventProxy(EventArgs e)
            {
                if (this.EventProxied != null)
                {
                    this.EventProxied(this, e);
                }
            }

            public void ProxyEvent(EventArgs e)
            {
                OnEventProxy(e);
            }
        }
    }

On Master Page Code (btn click):-

protected void btnRefresh_Click(object sender, EventArgs e)
    {
        ContentPlaceHolder cph = (ContentPlaceHolder)this.FindControl("MainContent");
        EventProxy eventProxy = (EventProxy)cph.FindControl("ProxyControl") as EventProxy;

        eventProxy.ProxyEvent(e);

    }

Web Config :-

<pages maintainScrollPositionOnPostBack="true"  enableViewStateMac="true">
  <controls>
    <add tagPrefix="it" namespace="EProxy" assembly="App_Code"/>
  </controls>
</pages>

© Stack Overflow or respective owner

Related posts about c#

Related posts about ASP.NET