sql >> データベース >  >> RDS >> Mysql

SQLテーブルからのブートストラップドロップダウンへのアイテムの挿入

    WebFormsでそれを行うにはいくつかの方法がありますが、最初に DIVを作成する必要があります コードビハインドからアクセスできるドロップダウンメニューの要素。

    このスニペットを参照してください?

    <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="server"

    この後、コードビハインドに移動できます データソースからメニューへの入力を開始します。

    私の知る限り、これを行うには少なくとも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からこれらのメソッドの1つを呼び出そうとすることができます。 このようなイベント:

    編集:

    ご要望により、データベース内のテーブルへの接続を追加してサンプルを変更しました。したがって、これはデータをロードするためのモジュールです:

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

    ああ、このサンプルを機能させるために、これら2つのライブラリをインポートすることを忘れないでください:

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

    お役に立てば幸いです。




    1. PostgreSQLで遅いクエリを処理する

    2. Symfony 2.0でデータベースをpostgresqlに変更するにはどうすればよいですか?

    3. 高可用性のためにMySQL用のPerconaサーバーをデプロイする方法

    4. angle.js PHPを使用してmysqlからのデータを表示する方法は?