none
Actualizar Form desde Menu RRS feed

  • Pregunta

  • Hola Chicos como están estoy intentando actualizar desde el menú el mismo Form, para no tener que hacer otro, alguien conoce alguna? este es el menu que tengo:

     <asp:Menu ID="Menu1" runat="server">
                        <Items>
                            <asp:MenuItem Text="Camisetas" Value="Camisetas"></asp:MenuItem>
                            <asp:MenuItem Text="Gorros" tooltip="Gorros"></asp:MenuItem>
                            <asp:MenuItem Text="Buzos" tooltip="Calcetines"></asp:MenuItem>
                            <asp:MenuItem Text="Medias" tooltip="Buzos"></asp:MenuItem>
                        </Items>
                    </asp:Menu>

    yo creería que si invoco la opción 'Camisetas' desde el C#, me puede actualizar solo las camisetas sin necesidad de redirigirlo a otro Form, y en el C# tengo esto:

    protected void Camisetask(Object sender, MenuEventArgs e)
            {
                // Display the text of the menu item selected by the user.
                MiDataTable = MiTableAdapter.ObtenerCamiseta();
                RepeaterShop.DataSource = MiDataTable;
                RepeaterShop.DataBind();
            }

    Agradezco su valiosa ayuda

    jueves, 2 de enero de 2020 1:08

Respuestas

  • hola

    >>yo creería que si invoco la opción 'Camisetas' desde el C#, me puede actualizar solo las camisetas sin necesidad de redirigirlo a otro Form

    no entiendo

    el item de menu redirecciona a un evento o link que deberia mostrar la pagina de camisetas

    Tutorial ASP.NET: Cómo crear menús de navegación

    donde defines el evento que lanza el menu o el NavigateUrl ?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 2 de enero de 2020 23:53
  • hola

    >>lo que quiero hacer es que cuando se haga click sobre uno elemento del menu,  sino que se actualice el mismo form

    en ese caso deberias usar el evento

    Menu.MenuItemClick Event

    del menu

    En ese evento evaluas el e.Item para ver cual se pulso y alli consultas los datos a la db y asignas el repeater para ver los datos

    void Menu1_MenuItemClick(Object sender, MenuEventArgs e) { if(e.Item.Text == "Camisetas"){ Camisetask(); } }

    protected void Camisetask() {     MiDataTable = MiTableAdapter.ObtenerCamiseta();     RepeaterShop.DataSource = MiDataTable;     RepeaterShop.DataBind(); }


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 3 de enero de 2020 3:11
  • Hola Leandro,

    estoy usundo un Repeater para traer los elementos que tengo en mi bd y publicarlos en mi plantilla, lo que quiero hacer es que cuando se haga click sobre uno elemento del menu, no tenga que enviarme a otro form, sino que se actualice el mismo form, pero con la consulta que me trae solo las camisetas y no todo lo que tengo en la bd... igual veré el tutorial que me envías! muchas gracias! 

    viernes, 3 de enero de 2020 2:27
  • Leandro, muchas gracias! pero aun no lo logro dominar, creo que hice lo que indicaba Menu.MenuItemClick Event pero me sale este error..


    Error de servidor en la aplicación '/'.

    Se excedió la longitud de solicitud máxima.

    Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.

    Detalles de la excepción: System.Web.HttpException: Se excedió la longitud de solicitud máxima.

    Error de código fuente:
    Se ha generado una excepción no controlada durante la ejecución de la solicitud Web actual. La información sobre el origen y la ubicación de la excepción pueden identificarse utilizando la excepción del seguimiento de la pila siguiente.

    Seguimiento de la pila:
    [HttpException (0x80004005): Se excedió la longitud de solicitud máxima.]
       System.Web.HttpRequest.GetEntireRawContent() +9933544
       System.Web.HttpRequest.FillInFormCollection() +415
       System.Web.HttpRequest.EnsureForm() +69
       System.Web.HttpRequest.get_Form() +13
       System.Web.HttpRequest.get_HasForm() +9930475
       System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull) +95
       System.Web.UI.Page.DeterminePostBackMode() +69
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +130
    
    Información de versión: Versión de Microsoft .NET Framework:4.0.30319; Versión ASP.NET:4.7.3535.0

    Mi archivo aspx quedo así:

    <%@ Page Language="C#" MasterPageFile="~/Main.Master" AutoEventWireup="true" CodeBehind="shop.aspx.cs" Inherits="MamutsasTienda.shop" %>
    <script runat="server">
         void Menu1_MenuItemClick(Object sender, MenuEventArgs e)
            {
                if (e.Item.Text == "Camisetas")
                {
                    Camisetask();
                }
            }

            protected void Camisetask()
            {
                MiDataTable = MiTableAdapter.ObtenerCamiseta();
                RepeaterShop.DataSource = MiDataTable;
                RepeaterShop.DataBind();
            }
        </script>
    <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"></asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="cuerpo" runat="server">
        <form id="form1" runat="server">
        <div class="main-content-wrapper d-flex clearfix">
            
            <div class="shop_sidebar_area">
                <!-- ##### Single Widget ##### -->
                <div class="widget catagory mb-50">
                    <!-- Widget Title -->
                    <h6 class="widget-title mb-30">Catagorias</h6>

                    <asp:Menu ID="Menu1"
                      onmenuitemclick="Menu1_MenuItemClick"
                       runat="server">
                        <Items>
                            
                            <asp:menuitem Text="Camisetas" tooltip="Camisetas"></asp:menuitem>
                            <asp:menuitem Text="Gorros" tooltip="Gorros"></asp:menuitem>
                            <asp:menuitem Text="Buzos" tooltip="Buzos"></asp:menuitem>
                            <asp:menuitem Text="Medias" tooltip="Medias"></asp:menuitem>

                        </Items>
                    </asp:Menu>
                
                </div>

    No se que estoy haciendo mal..

    viernes, 3 de enero de 2020 14:47
  • Inicialmente lo puse desde el archivo aspx.cs me sale el siguiente error, por eso opte por ponerlo desde aspx:

    es como si no reconociera la propiedad onmenuitemclick..

    Error de servidor en la aplicación '/'.

    Error de compilación

    Descripción: Error durante la compilación de un recurso requerido para dar servicio a esta solicitud. Revise los detalles de error específicos siguientes y modifique el código fuente en consecuencia.

    Mensaje de error del compilador: CS1061: 'shop_aspx' does not contain a definition for 'Menu1_MenuItemClick' and no extension method 'Menu1_MenuItemClick' accepting a first argument of type 'shop_aspx' could be found (are you missing a using directive or an assembly reference?)

    Error de código fuente:
    Línea 11:                 <h6 class="widget-title mb-30">Catagorias</h6>
    Línea 12: 
    Línea 13:                 <asp:Menu ID="Menu1"
    Línea 14:                   onmenuitemclick="Menu1_MenuItemClick"
    Línea 15:                    runat="server">

    Archivo de origen: C:\Users\Santiago rodriguez\source\repos\MamutsasTienda\MamutsasTienda\shop.aspx    Línea: 13

     
    sábado, 4 de enero de 2020 16:11

Todas las respuestas

  • hola

    >>yo creería que si invoco la opción 'Camisetas' desde el C#, me puede actualizar solo las camisetas sin necesidad de redirigirlo a otro Form

    no entiendo

    el item de menu redirecciona a un evento o link que deberia mostrar la pagina de camisetas

    Tutorial ASP.NET: Cómo crear menús de navegación

    donde defines el evento que lanza el menu o el NavigateUrl ?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 2 de enero de 2020 23:53
  • Hola Leandro,

    estoy usundo un Repeater para traer los elementos que tengo en mi bd y publicarlos en mi plantilla, lo que quiero hacer es que cuando se haga click sobre uno elemento del menu, no tenga que enviarme a otro form, sino que se actualice el mismo form, pero con la consulta que me trae solo las camisetas y no todo lo que tengo en la bd... igual veré el tutorial que me envías! muchas gracias! 

    viernes, 3 de enero de 2020 2:27
  • Como puedo hacer que un item se redireccione a un evento? entiendo que un evento puede actualizar mi pagina con la consulta que yo asigne y de esta manera me muestre los productos nuevos si? 
    viernes, 3 de enero de 2020 2:56
  • hola

    >>lo que quiero hacer es que cuando se haga click sobre uno elemento del menu,  sino que se actualice el mismo form

    en ese caso deberias usar el evento

    Menu.MenuItemClick Event

    del menu

    En ese evento evaluas el e.Item para ver cual se pulso y alli consultas los datos a la db y asignas el repeater para ver los datos

    void Menu1_MenuItemClick(Object sender, MenuEventArgs e) { if(e.Item.Text == "Camisetas"){ Camisetask(); } }

    protected void Camisetask() {     MiDataTable = MiTableAdapter.ObtenerCamiseta();     RepeaterShop.DataSource = MiDataTable;     RepeaterShop.DataBind(); }


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 3 de enero de 2020 3:11
  • Leandro, muchas gracias! pero aun no lo logro dominar, creo que hice lo que indicaba Menu.MenuItemClick Event pero me sale este error..


    Error de servidor en la aplicación '/'.

    Se excedió la longitud de solicitud máxima.

    Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.

    Detalles de la excepción: System.Web.HttpException: Se excedió la longitud de solicitud máxima.

    Error de código fuente:
    Se ha generado una excepción no controlada durante la ejecución de la solicitud Web actual. La información sobre el origen y la ubicación de la excepción pueden identificarse utilizando la excepción del seguimiento de la pila siguiente.

    Seguimiento de la pila:
    [HttpException (0x80004005): Se excedió la longitud de solicitud máxima.]
       System.Web.HttpRequest.GetEntireRawContent() +9933544
       System.Web.HttpRequest.FillInFormCollection() +415
       System.Web.HttpRequest.EnsureForm() +69
       System.Web.HttpRequest.get_Form() +13
       System.Web.HttpRequest.get_HasForm() +9930475
       System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull) +95
       System.Web.UI.Page.DeterminePostBackMode() +69
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +130
    
    Información de versión: Versión de Microsoft .NET Framework:4.0.30319; Versión ASP.NET:4.7.3535.0

    Mi archivo aspx quedo así:

    <%@ Page Language="C#" MasterPageFile="~/Main.Master" AutoEventWireup="true" CodeBehind="shop.aspx.cs" Inherits="MamutsasTienda.shop" %>
    <script runat="server">
         void Menu1_MenuItemClick(Object sender, MenuEventArgs e)
            {
                if (e.Item.Text == "Camisetas")
                {
                    Camisetask();
                }
            }

            protected void Camisetask()
            {
                MiDataTable = MiTableAdapter.ObtenerCamiseta();
                RepeaterShop.DataSource = MiDataTable;
                RepeaterShop.DataBind();
            }
        </script>
    <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"></asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="cuerpo" runat="server">
        <form id="form1" runat="server">
        <div class="main-content-wrapper d-flex clearfix">
            
            <div class="shop_sidebar_area">
                <!-- ##### Single Widget ##### -->
                <div class="widget catagory mb-50">
                    <!-- Widget Title -->
                    <h6 class="widget-title mb-30">Catagorias</h6>

                    <asp:Menu ID="Menu1"
                      onmenuitemclick="Menu1_MenuItemClick"
                       runat="server">
                        <Items>
                            
                            <asp:menuitem Text="Camisetas" tooltip="Camisetas"></asp:menuitem>
                            <asp:menuitem Text="Gorros" tooltip="Gorros"></asp:menuitem>
                            <asp:menuitem Text="Buzos" tooltip="Buzos"></asp:menuitem>
                            <asp:menuitem Text="Medias" tooltip="Medias"></asp:menuitem>

                        </Items>
                    </asp:Menu>
                
                </div>

    No se que estoy haciendo mal..

    viernes, 3 de enero de 2020 14:47
  • hola

    porque usas el <script runat="server"> ?

    deberias definri ese codigo en el aspx.cs asociado al aspx

    >>Se excedió la longitud de solicitud máxima

    si pones un breakpoint en el codigo, puedes validar que ingresa al evento, quizas el problema sea la conexion a la db

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 3 de enero de 2020 14:59
  • Inicialmente lo puse desde el archivo aspx.cs me sale el siguiente error, por eso opte por ponerlo desde aspx:

    es como si no reconociera la propiedad onmenuitemclick..

    Error de servidor en la aplicación '/'.

    Error de compilación

    Descripción: Error durante la compilación de un recurso requerido para dar servicio a esta solicitud. Revise los detalles de error específicos siguientes y modifique el código fuente en consecuencia.

    Mensaje de error del compilador: CS1061: 'shop_aspx' does not contain a definition for 'Menu1_MenuItemClick' and no extension method 'Menu1_MenuItemClick' accepting a first argument of type 'shop_aspx' could be found (are you missing a using directive or an assembly reference?)

    Error de código fuente:
    Línea 11:                 <h6 class="widget-title mb-30">Catagorias</h6>
    Línea 12: 
    Línea 13:                 <asp:Menu ID="Menu1"
    Línea 14:                   onmenuitemclick="Menu1_MenuItemClick"
    Línea 15:                    runat="server">

    Archivo de origen: C:\Users\Santiago rodriguez\source\repos\MamutsasTienda\MamutsasTienda\shop.aspx    Línea: 13

     
    sábado, 4 de enero de 2020 16:11