none
WebForm User Control para Popup RRS feed

  • Pergunta

  • Tenho User Control para exibir mensagens em tela, porém, tenho a opção Yes e No, quero saber como faço para de acordo com a opção Yes executar um método na página onde esta instanciado o UC?

    Clicando em Yes ele deve fechar o Popup e executar o método.

    quinta-feira, 31 de outubro de 2013 17:05

Respostas

  • eu fiz um exemplo:

    Código ASPX 

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebAppArquivo.WebForm1" %>
    
    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Página de Teste</title>
        <script src="Scripts/jquery-2.0.3.intellisense.js"></script>
        <script src="Scripts/jquery-2.0.3.js"></script>
        <script src="Scripts/modernizr-2.6.2.js"></script>    
    </head>
    <body>
        <form id="form1" runat="server">
            <asp:ToolkitScriptManager ID="ScriptJsDefault"
                AjaxFrameworkMode="Enabled"
                ClientIDMode="Static"
                EnableScriptGlobalization="true"
                EnableScriptLocalization="true"
                EnablePageMethods="true" 
                CombineScripts="true"
                LoadScriptsBeforeUI="true"
                runat="server">
            </asp:ToolkitScriptManager>
            <asp:Label Text="" ID="LblMensagem" runat="server" />
            <asp:Button Text="Abrir" ID="BtnAbrir" runat="server" />
            <asp:Panel ID="PanelLoad" BorderStyle="Double" BorderWidth="2" BackColor="#f5f5f5" runat="server" Width="500" Style="display: none;">
                <label for="TxtWord" runat="server">Digite:</label>
                <asp:TextBox ID="TxtId" runat="server" /><asp:TextBox ID="TxtNome" runat="server" />
                <asp:Image ImageUrl="~/Images/cam.jpg" ID="Image1" Width="500" Height="428" runat="server" />
                <asp:Button Text="Ok" ID="BtnPanelOk" runat="server" /><asp:Button Text="Sair" ID="BtnPanelSair" runat="server" />
            </asp:Panel>
            <asp:ModalPopupExtender
                ID="ModalControlExtender1"
                runat="server"
                OkControlID="BtnPanelOk"
                CancelControlID="BtnPanelSair"
                PopupControlID="PanelLoad"
                OnCancelScript="CancelPanel()"
                OnOkScript="OkPanel()"
                TargetControlID="BtnAbrir">
                <Animations>
                    <OnShown>
                        <FadeIn />                    
                    </OnShown>
                    <OnHiding>
                        <FadeOut />
                    </OnHiding>
                    <%--<OnShowing></OnShowing>
                    <OnShown></OnShown>    
                    <OnHiding></OnHiding>            
                    <OnHidden></OnHidden>--%>
                </Animations>
            </asp:ModalPopupExtender>
            <asp:UpdatePanel 
                ID="UpdatePanelDataHora" OnLoad="UpdatePanelDataHora_Load"
                runat="server" RenderMode="Block" UpdateMode="Conditional">
                <ContentTemplate>
                    <asp:Label ID="LblDataHora" runat="server" />
                    <asp:HiddenField ID="IdPagina" Value="1" runat="server" />
                    <asp:HiddenField ID="IdName" Value="Name1" runat="server" />
                </ContentTemplate>
            </asp:UpdatePanel>
            <asp:UpdateProgress ID="UpdateProgressDataHora" AssociatedUpdatePanelID="UpdatePanelDataHora" runat="server">
                <ProgressTemplate>
                    Atualizando ...
                </ProgressTemplate>
            </asp:UpdateProgress>
            
        </form>
        <script type="text/javascript">  
            function Update(Id, Nome) {
                __doPostBack('UpdatePanelDataHora', JSON.stringify({ Id: Id, Nome: Nome }));            
            }        
            function OkPanel() {
                var Id = $("#<%=TxtId.ClientID%>").val();
                var Nome = $("#<%=TxtNome.ClientID%>").val();
                Update(Id,Nome);
            }
            function CancelPanel() {            
                var Id = $("#<%=TxtId.ClientID%>").val();
                var Nome = $("#<%=TxtNome.ClientID%>").val();
                //Update(1,2);
            }
        </script>
    </body>
    </html>
    

    Código Cs

    using Newtonsoft.Json;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using WebAppArquivo.Model;
    
    namespace WebAppArquivo
    {
        public partial class WebForm1 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
    
            }
    
            protected void UpdatePanelDataHora_Load(object sender, EventArgs e)
            {            
                System.Threading.Thread.Sleep(2000);
                var pr = Request.Params;
                //LblDataHora.Text = DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString();
                //foreach(string keys in Request.Params.AllKeys){
                //    LblDataHora.Text += Request.Params.GetValues( Request.Params.Get(keys) + "<br />";   
                //}
                LblDataHora.Text = IdPagina.Value + " " + IdName.Value + " " + DateTime.Now.ToLongTimeString();
                if (Request["__EVENTARGUMENT"] != null)
                {
                    Pessoa pessoa = JsonConvert.DeserializeObject<Pessoa>(Request["__EVENTARGUMENT"]);
                    if (pessoa == null)
                    {
                        LblDataHora.Text = "";
                    }
                    else
                    {
                        LblDataHora.Text = pessoa.Id.ToString() + " " + pessoa.Nome; 
                    }
                }
            }
        }
    }

    Isso seria um exemplo de carregar um Modal e passar dados e dar um request na propria pagina e resgatar esses valores digitados no código!!!

    Não sei se pode te ajudar!!!


    Fúlvio Cezar Canducci Dias

    terça-feira, 5 de novembro de 2013 15:11

Todas as Respostas

  • Como se ta abrindo esse POPUP ?

    Pode ser feito um Post Request na mesma página ou até um Ajax para solucionar esse problema!

    Como ta sua aplicação! e como você abre esse Popup?


    Fúlvio Cezar Canducci Dias

    quinta-feira, 31 de outubro de 2013 19:07
  • dá uma olhada nesse exemplo

    http://aspsnippets.com/Articles/Server-Side-Code-Behind-Yes-No-Confirmation-Message-Box-in-ASPNet.aspx

    abraço


    Se for útil marcar como resposta Para que outros Aproveitem

    https://www.virtualbase.com.br/


    • Editado Jones Roberto terça-feira, 1 de dezembro de 2020 02:24
    sexta-feira, 1 de novembro de 2013 18:51
  • Esta assim:

    public event EventHandler Retorno;
    bool status;
    
    public Boolean IsRetorno
    {
       get { return status; }
    }
    
    protected void btnSim_Click(object sender, EventArgs e)
    {
       status = true;
       mpe.Hide()
       Retorno(this, EventArgs.Empty);
    }

    Funciona, mas te no meu método quando vejo o retorno, ele não fecha o popup enquanto não terminar seu processamento.

    Chamo ele assim

    <uc1:popup id="popup1" runat="server" onRetorno"MeuMetodo"/>

    protected void MeuMetodo(object sender, EventArgs e)
    {
      if(popup1.IsRetorno)
      {
          executa processamento
       }
    }

    domingo, 3 de novembro de 2013 20:47
  • Se ta usando POPUP Extender do AJAX TOOLKIT?

    Fúlvio Cezar Canducci Dias

    domingo, 3 de novembro de 2013 20:57
  • Sim.
    terça-feira, 5 de novembro de 2013 13:15
  • eu fiz um exemplo:

    Código ASPX 

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebAppArquivo.WebForm1" %>
    
    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Página de Teste</title>
        <script src="Scripts/jquery-2.0.3.intellisense.js"></script>
        <script src="Scripts/jquery-2.0.3.js"></script>
        <script src="Scripts/modernizr-2.6.2.js"></script>    
    </head>
    <body>
        <form id="form1" runat="server">
            <asp:ToolkitScriptManager ID="ScriptJsDefault"
                AjaxFrameworkMode="Enabled"
                ClientIDMode="Static"
                EnableScriptGlobalization="true"
                EnableScriptLocalization="true"
                EnablePageMethods="true" 
                CombineScripts="true"
                LoadScriptsBeforeUI="true"
                runat="server">
            </asp:ToolkitScriptManager>
            <asp:Label Text="" ID="LblMensagem" runat="server" />
            <asp:Button Text="Abrir" ID="BtnAbrir" runat="server" />
            <asp:Panel ID="PanelLoad" BorderStyle="Double" BorderWidth="2" BackColor="#f5f5f5" runat="server" Width="500" Style="display: none;">
                <label for="TxtWord" runat="server">Digite:</label>
                <asp:TextBox ID="TxtId" runat="server" /><asp:TextBox ID="TxtNome" runat="server" />
                <asp:Image ImageUrl="~/Images/cam.jpg" ID="Image1" Width="500" Height="428" runat="server" />
                <asp:Button Text="Ok" ID="BtnPanelOk" runat="server" /><asp:Button Text="Sair" ID="BtnPanelSair" runat="server" />
            </asp:Panel>
            <asp:ModalPopupExtender
                ID="ModalControlExtender1"
                runat="server"
                OkControlID="BtnPanelOk"
                CancelControlID="BtnPanelSair"
                PopupControlID="PanelLoad"
                OnCancelScript="CancelPanel()"
                OnOkScript="OkPanel()"
                TargetControlID="BtnAbrir">
                <Animations>
                    <OnShown>
                        <FadeIn />                    
                    </OnShown>
                    <OnHiding>
                        <FadeOut />
                    </OnHiding>
                    <%--<OnShowing></OnShowing>
                    <OnShown></OnShown>    
                    <OnHiding></OnHiding>            
                    <OnHidden></OnHidden>--%>
                </Animations>
            </asp:ModalPopupExtender>
            <asp:UpdatePanel 
                ID="UpdatePanelDataHora" OnLoad="UpdatePanelDataHora_Load"
                runat="server" RenderMode="Block" UpdateMode="Conditional">
                <ContentTemplate>
                    <asp:Label ID="LblDataHora" runat="server" />
                    <asp:HiddenField ID="IdPagina" Value="1" runat="server" />
                    <asp:HiddenField ID="IdName" Value="Name1" runat="server" />
                </ContentTemplate>
            </asp:UpdatePanel>
            <asp:UpdateProgress ID="UpdateProgressDataHora" AssociatedUpdatePanelID="UpdatePanelDataHora" runat="server">
                <ProgressTemplate>
                    Atualizando ...
                </ProgressTemplate>
            </asp:UpdateProgress>
            
        </form>
        <script type="text/javascript">  
            function Update(Id, Nome) {
                __doPostBack('UpdatePanelDataHora', JSON.stringify({ Id: Id, Nome: Nome }));            
            }        
            function OkPanel() {
                var Id = $("#<%=TxtId.ClientID%>").val();
                var Nome = $("#<%=TxtNome.ClientID%>").val();
                Update(Id,Nome);
            }
            function CancelPanel() {            
                var Id = $("#<%=TxtId.ClientID%>").val();
                var Nome = $("#<%=TxtNome.ClientID%>").val();
                //Update(1,2);
            }
        </script>
    </body>
    </html>
    

    Código Cs

    using Newtonsoft.Json;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using WebAppArquivo.Model;
    
    namespace WebAppArquivo
    {
        public partial class WebForm1 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
    
            }
    
            protected void UpdatePanelDataHora_Load(object sender, EventArgs e)
            {            
                System.Threading.Thread.Sleep(2000);
                var pr = Request.Params;
                //LblDataHora.Text = DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString();
                //foreach(string keys in Request.Params.AllKeys){
                //    LblDataHora.Text += Request.Params.GetValues( Request.Params.Get(keys) + "<br />";   
                //}
                LblDataHora.Text = IdPagina.Value + " " + IdName.Value + " " + DateTime.Now.ToLongTimeString();
                if (Request["__EVENTARGUMENT"] != null)
                {
                    Pessoa pessoa = JsonConvert.DeserializeObject<Pessoa>(Request["__EVENTARGUMENT"]);
                    if (pessoa == null)
                    {
                        LblDataHora.Text = "";
                    }
                    else
                    {
                        LblDataHora.Text = pessoa.Id.ToString() + " " + pessoa.Nome; 
                    }
                }
            }
        }
    }

    Isso seria um exemplo de carregar um Modal e passar dados e dar um request na propria pagina e resgatar esses valores digitados no código!!!

    Não sei se pode te ajudar!!!


    Fúlvio Cezar Canducci Dias

    terça-feira, 5 de novembro de 2013 15:11