none
Pegar valor de combo existente na MasterPage RRS feed

  • Discussão Geral

  • Preciso pegar o valor de um combo criado na minha masterpage, quero pegar esse valor no momento em que abro uma página filha.

    Consigo pegar esse valor através do clique de um botão, ou seja, abro a página filha normalmente e no Click do botão o valor é retornado. Porém, eu preciso pegar esse valor ao abrir a página filha, mas no Load o valor vem vazio, abaixo o código utilizado:

    lblPeriodo.Text = ((DropDownList)((MasterPage)Page.Master).FindControl("ddlPeriodo")).SelectedValue;

    • Tipo Alterado Marcos SJ quinta-feira, 12 de maio de 2016 18:42 How to
    quinta-feira, 12 de maio de 2016 13:58

Todas as Respostas

  • Olá Jefferson,

     Crie um evento na master page, dispare quando os dados houverem sido carregados e trate o evento na content page.
    Espere toda a página carregar, e depois que tudo carrega (content e master page), eu coloque um timer na content, que dispara com interval = 1, então, no evento Tick do timer pegue os valores da master page que já foram carregados e colocados em variáveis públicas...

    At. te. Manoel Neto.

    sexta-feira, 13 de maio de 2016 04:11
  • Por exemplo:

    MasterPage:

    <%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="WebApplication1.SiteMaster" %>
    
    <!DOCTYPE html>
    
    <html lang="en">
    <head runat="server">
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title><%: Page.Title %> - My ASP.NET Application</title>
    
        <asp:PlaceHolder runat="server">
            <%: Scripts.Render("~/bundles/modernizr") %>
        </asp:PlaceHolder>
    
        <webopt:bundlereference runat="server" path="~/Content/css" />
        <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
    
    </head>
    <body>
        <form runat="server">
            <asp:ScriptManager runat="server">
                <Scripts>
                    <%--To learn more about bundling scripts in ScriptManager see http://go.microsoft.com/fwlink/?LinkID=301884 --%>
                    <%--Framework Scripts--%>
                    <asp:ScriptReference Name="MsAjaxBundle" />
                    <asp:ScriptReference Name="jquery" />
                    <asp:ScriptReference Name="bootstrap" />
                    <asp:ScriptReference Name="respond" />
                    <asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" />
                    <asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" />
                    <asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" />
                    <asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" />
                    <asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" />
                    <asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" />
                    <asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" />
                    <asp:ScriptReference Name="Focus.js" Assembly="System.Web" Path="~/Scripts/WebForms/Focus.js" />
                    <asp:ScriptReference Name="WebFormsBundle" />
                    <%--Site Scripts--%>
                </Scripts>
            </asp:ScriptManager>
    
            <div class="navbar navbar-inverse navbar-fixed-top">
                <div class="container">
                    <div class="navbar-header">
                        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                            <span class="icon-bar"></span>
                            <span class="icon-bar"></span>
                            <span class="icon-bar"></span>
                        </button>
                        <a class="navbar-brand" runat="server" href="~/">Application name</a>
                    </div>
                    <div class="navbar-collapse collapse">
                        <ul class="nav navbar-nav">
                            <li><a runat="server" href="~/">Home</a></li>
                            <li><a runat="server" href="~/About">About</a></li>
                            <li><a runat="server" href="~/Contact">Contact</a></li>
                        </ul>
                    </div>
                </div>
            </div>
            <div class="container body-content">
                <asp:ContentPlaceHolder ID="MainContent" runat="server">
                </asp:ContentPlaceHolder>
                <hr />
                <footer>
                    <p>&copy; <%: DateTime.Now.Year %> - My ASP.NET Application</p>
                </footer>
            </div>
            <asp:DropDownList runat="server" ID="DropDownListItems">
                <asp:ListItem Text="text1" Selected="True" />
                <asp:ListItem Text="text2" />
            </asp:DropDownList>
        </form>
    </body>
    </html>

    Pagina Filha

    <%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
        <asp:Label Text="..." runat="server" ID="LblTextDropDown" />
    </asp:Content>

    Código:

    namespace WebApplication1
    {
        public partial class WebForm1 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                DropDownList drop = Page.Master.FindControl("DropDownListItems") as DropDownList;
                if (drop != null)
                {
                    LblTextDropDown.Text = drop.SelectedValue.ToString();
                }
                    
            }
        }
    }

    Dessa forma o item foi recuperado e assim podemos acessar seus valores!

    Mas isso porque o DropDownList que está na MasterPage está simplesmente dentro de Form! Se esse DropDownList estiver dentro de outros elementos a busca do FindControl muda e pode até ter que buscar em mais elementos!

    Faz o seguinte, coloque as duas paginas para que possamos verificar!


    Fulvio C




    sexta-feira, 13 de maio de 2016 15:06