Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Eddy Goulart

menu + 2 tabela bd

Recommended Posts

Bom, estou com um problema, tenho uma tabela MENU e outra tabela AREA, onde na area tem o codigo do menu sendo que um menu vai ter várias áreas.. ex:

 

Menu1
   Area1
   Area2
Menu2
   Area3

E assim por diante, então quero fazer um menu nesse estilo ultilizando a opção Menu do visual studio..

Tenho a lógica, me falta a sintax..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai galera, já resolvi o problema, pra que quiser ta i o codigo:

 

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using MySql.Data.MySqlClient;

namespace WebApplication2
{
    public partial class menu : System.Web.UI.Page
    {
        string conexao = "Database=koneg;Data Source=localhost;User Id=root;Password=''; pooling=false";

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                CriarMenu();
            }

        }

        private void CriarMenu()
        {
            MySqlConnection conn = new MySqlConnection();
            MySqlCommand cmd = new MySqlCommand();
            MySqlDataReader dr;

            String sql = "SELECT * FROM adm_menus";

            try
            {
                conn = new MySqlConnection(conexao);
                conn.Open();

                cmd = new MySqlCommand(sql, conn);
                cmd.CommandType = CommandType.Text;
                dr = cmd.ExecuteReader();

                if (dr.HasRows)
                {
                    while (dr.Read())
                    {
                        MenuItem newMenu = new MenuItem();
                        newMenu.Value = Convert.ToString(dr["codMenu"]);
                        newMenu.Text = Convert.ToString(dr["nomeMenu"]);
                        this.Menu1.Items.Add(newMenu);

                        InseriItensDoMenu(Convert.ToString(dr["codMenu"]), newMenu);
                    }
                }

                dr.Close();

            }
            finally
            {
                conn.Close();
            }        
        }

        private void InseriItensDoMenu(string codMenu, MenuItem newMenu)
        {
            MySqlConnection conn = new MySqlConnection();
            MySqlCommand cmd = new MySqlCommand();
            MySqlDataReader dr;

            String sql = "SELECT * FROM adm_areas WHERE codMenu = " + codMenu;

            try
            {
                conn = new MySqlConnection(conexao);
                conn.Open();

                cmd = new MySqlCommand(sql, conn);
                cmd.CommandType = CommandType.Text;
                dr = cmd.ExecuteReader();

                if (dr.HasRows)
                {
                    while (dr.Read())
                    {
                        MenuItem newItemMenu = new MenuItem();
                        newItemMenu.Value = Convert.ToString(dr["identificadorArea"]);
                        newItemMenu.Text = Convert.ToString(dr["nomeArea"]);
                        newItemMenu.NavigateUrl = Convert.ToString(dr["identificadorArea"]) + Application["path_separator"] + "conteudo.aspx";

                        newMenu.ChildItems.Add(newItemMenu);
                    }
                }


                dr.Close();

            }
            finally
            {
                conn.Close();
            }  
        }

        protected void Menu1_MenuItemClick(object sender, MenuEventArgs e)
        {
            this.resMenu.Text = "Código: "+e.Item.Value;
        }
    }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.