Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Memasukkan item ke dalam bootstrap-dropdown dari SQL Table

Ada beberapa cara untuk melakukannya di WebForms, tetapi pertama-tama Anda harus membuat DIV elemen menu tarik-turun yang dapat diakses dari Code Behind.

Lihat cuplikan ini?

<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>

Perhatikan bahwa saya menambahkan 2 atribut :id="myDropdownMenu" dan runat="server" .

Setelah ini, Anda dapat pergi ke Code Behind untuk mulai mengisi menu dari sumber data.

Setidaknya ada 2 cara untuk melakukan ini, sejauh yang saya tahu.

Dengan memanipulasi InnerHtml properti, seperti ini :

    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;
    }

Atau, dengan menambahkan menu sebagai kontrol anak , seperti ini :

    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);
        }
    }

Itu panggilan Anda, mana yang harus dipilih.

Btw, hanya untuk melengkapi contoh ini, Anda dapat mencoba memanggil salah satu metode tersebut dari Page_Load acara, seperti ini :

EDIT :

Atas permintaan Anda, saya telah memodifikasi sampel dengan menambahkan koneksi ke tabel di database. Nah, ini modul untuk memuat data :

    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;
    }

Dan inilah cara Anda memanggil modul :

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

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

Oh, dan ingat untuk mengimpor dua perpustakaan ini agar contoh ini berfungsi :

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

Semoga membantu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menjatuhkan batasan unik dari tabel MySQL

  2. Lebih baik menggunakan tanggal nol '0000-00-00 00:00:00' atau NULL di MySQL?

  3. Mengurangi konsumsi memori mysql pada instance mikro [dilindungi email]

  4. LOAD DATA INFILE:String karakter ut8mb4 tidak valid

  5. Apakah perlu menulis ROLLBACK jika kueri gagal?