Mysql
 sql >> база данни >  >> RDS >> Mysql

Вмъкване на елементи в падащото меню за стартиране от SQL таблица

Има някои начини да го направите в WebForms, но първо трябва да направите DIV елемент от падащото меню, достъпно от Code Behind.

Виждате този фрагмент?

<ul class="nav nav-tabs">
    <li class="nav-item dropdown">
        <a class="btn btn-light dropdown-toggle" href="#" id="navbarDropdown1" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
            Category
        </a>
        <div id="myDropdownMenu" runat="server" class="dropdown-menu" aria-labelledby="navbarDropdown">
        </div>
    </li>
</ul>

Имайте предвид, че добавих 2 атрибута:id="myDropdownMenu" и runat="сървър" .

След това можете да отидете на Code Behind за да започнете да попълвате менюто от източник на данни.

Има поне 2 начина да направите това, доколкото знам.

Чрез манипулиране на InnerHtml свойство, като това :

    private void DisplayMenuByConstructingHtmlTags(List<string> menuList)
    {
        var menuHtml = "";

        foreach (string menuText in menuList)
        {
            menuHtml += "<a class=\"dropdown-item\" href=\"#\">" + menuText + "</a>\n";
        }

        myDropdownMenu.InnerHtml = menuHtml;
    }

Или като добавите менюто като детски контроли , така :

    private void DisplayMenuByAddingChildControls(List<string> menuList)
    {
        foreach (string menuText in menuList)
        {
            var linkMenu = new HyperLink() { CssClass = "dropdown-item", NavigateUrl = "#", Text = menuText };
            myDropdownMenu.Controls.Add(linkMenu);
        }
    }

Ваше решение е кое да изберете.

Между другото, само за да завършите този пример, можете да опитате да извикате един от тези методи от Page_Load събитие, като това :

РЕДАКТИРАНЕ:

По ваша молба промених извадките, като добавих връзка към таблица в база данни. И така, това е модулът за зареждане на данните :

    private List<string> LoadMenuFromTable()
    {
        string connectionString = ConfigurationManager.ConnectionStrings["YourConnectionStringName"].ToString();

        var retVal = new List<string>();
        using (var connection = new SqlConnection(connectionString))
        {
            using (var cmd = new SqlCommand("SELECT menu_text FROM Table_1", connection))
            {
                connection.Open();
                using (var reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        retVal.Add((string)reader["menu_text"]);
                    }
                }
            }
        }
        return retVal;
    }

И ето как трябва да извикате модула:

    protected void Page_Load(object sender, EventArgs e)
    {
        var menu = LoadMenuFromTable();

        DisplayMenuByAddingChildControls(menu);
        // or DisplayMenuByConstructingHtmlTags(menu);
    }

О, и не забравяйте да импортирате тези две библиотеки, за да работи тази проба:

using System.Configuration;
using System.Data.SqlClient;

Надявам се да помогне.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. laravel търсене в няколко думи, разделени с интервал

  2. Как да открием дали дадена стойност съдържа поне една цифрова цифра в MySQL

  3. За SHA512-хеширане на парола в MySQL база данни от Python

  4. Mysql отчита производителността на много големи таблици

  5. Как да извлечем първия и последния запис на групиран запис в MySQL заявка с агрегатни функции?