sql >> Database >  >> RDS >> Mysql

Items in de bootstrap-vervolgkeuzelijst invoegen vanuit de SQL-tabel

Er zijn enkele manieren om dit te doen in WebForms, maar eerst moet u de DIV maken element van het vervolgkeuzemenu dat toegankelijk is via de Code Behind.

Zie je dit fragment?

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

Merk op dat ik 2 attributen heb toegevoegd:id="myDropdownMenu" en runat="server" .

Hierna kunt u naar Code Behind gaan om het menu te vullen vanuit een gegevensbron.

Er zijn tenminste 2 manieren om dit te doen, voor zover ik weet.

Door de InnerHtml . te manipuleren eigendom, zoals dit:

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

Of, door het menu toe te voegen als de onderliggende bedieningselementen , zoals dit :

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

Het is aan jou welke je moet kiezen.

Trouwens, om dit voorbeeld compleet te maken, kun je proberen een van die methoden aan te roepen vanuit de Page_Load evenement, zoals dit:

BEWERK:

Op uw verzoek heb ik de voorbeelden aangepast door een verbinding toe te voegen aan een tabel in een database. Dit is dus de module om de gegevens te laden:

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

En zo zou je de module moeten aanroepen:

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

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

Oh, en vergeet niet om deze twee bibliotheken te importeren om dit voorbeeld te laten werken:

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

Ik hoop dat het helpt.




  1. Hoe te printen Datagridview heeft een tabel in VB

  2. Hoe triggers te maken in de migratiebibliotheek van Codeigniter

  3. Hoe postgresql voor de eerste keer configureren?

  4. Tijdsverschil krijgen tussen twee tijden in PHP