【问题标题】:fill drop down list from database dynamically in asp.net c#在asp.net c#中动态填充数据库中的下拉列表
【发布时间】:2016-02-01 11:10:48
【问题描述】:

我在 c# 的 asp.net 应用程序中有下拉列表。来自数据库的下拉列表元素(用户名)。默认情况下,我的下拉列表显示我选择的名字作为名字出现在我的数据库表中。即当我打开页面时,我看到该名称已被选中。我想要那个,选择的名称应该像“nworks User”。我用代码试过了:

 <asp:DropDownList ID="DropDownListSelectEmployee" runat="server" AutoPostBack="true"
                                OnSelectedIndexChanged="DropDownListSelectEmployee_SelectedIndexChanged"
                                OnTextChanged="DropDownListSelectEmployee_TextChanged" Height="30px" Width="250px">
                                <asp:ListItem Selected="True">nWorks Employee</asp:ListItem>
                            </asp:DropDownList>

但没用。我尝试的下一个选项是:DropDownListSelectEmployee.Selecteditem.Text="nWorks User"; 再次没有工作。我正在使用代码从数据库中获取项目:

public void 

    DropDownListSelectEmployee_Fill()
            {
                if (!Page.IsPostBack)
                {

                    DropDownListSelectEmployee.Items.Clear();

                    string q = "select username from nworksuser where _type='Employee';";
                    MySqlCommand cmd = new MySqlCommand(q, conn);
                    conn.Open();
                    string user = "";
                    MySqlDataReader rdr = cmd.ExecuteReader();
                    while (rdr.Read())
                    {
                        user = rdr.GetString("username");
                        DropDownListSelectEmployee.Items.Add(user);
                    }
                    conn.Close();
                }
            }

这怎么可能?

【问题讨论】:

  • 你说的不工作到底是什么意思?您是否调试过您的代码并检查您的阅读器包含的内容?
  • 不工作意味着没有看到任何变化。它向我显示了与选定的人相同的姓名。
  • 您是否将这些值与DataBind 或需要的东西绑定?

标签: c# asp.net drop-down-menu


【解决方案1】:

假设您不想选择任何名称,请使用:

使用DropDownListSelectEmployee.SelectedIndex = -1;

但是,如果您希望在顶部有一个命名框,只需将其添加为列表的第一项并将其作为选定索引。

像这样:

DropDownListSelectEmployee.Items.Add("nWorks User");
while (rdr.Read())
                {
                    user = rdr.GetString("username");
                    DropDownListSelectEmployee.Items.Add(user);
                }

您需要在循环之外添加第一个项目,然后默认情况下您将选择第一个项目。

【讨论】:

    【解决方案2】:

    绑定数据后使用粗体字母代码后面的代码,默认选择“nworks User”:

            DropDownListSelectEmployee.DataSource = table;
            DropDownListSelectEmployee.DataTextField = "Name";
            DropDownListSelectEmployee.DataValueField = "Id";
            DropDownListSelectEmployee.DataBind();
            DropDownListSelectEmployee.Items.Insert(0, new ListItem("--nworks User--", "0"));
    
    
    <asp:DropDownList runat="server" ID="DropDownListSelectEmployee"OnSelectedIndexChanged="DropDownListSelectEmployee_SelectedIndexChanged" AutoPostBack="true"
            OnTextChanged="DropDownListSelectEmployee_TextChanged" Height="30px" Width="250px">
    
        </asp:DropDownList>
    

    代码背后: protected void Page_Load(object sender, EventArgs e) { 如果(!Page.IsPostBack) { BindDropdwon(); } }

        protected void DropDownListSelectEmployee_SelectedIndexChanged(object sender, EventArgs e)
        {
    
        }
    
        protected void DropDownListSelectEmployee_TextChanged(object sender, EventArgs e)
        {
    
        }
    
    
        private void BindDropdwon()
        {
            DataTable table = new DataTable();
            table.Columns.Add("Id", typeof(int));
            table.Columns.Add("Name", typeof(string));
    
            // Here we add three DataRows.
            table.Rows.Add(25, "Indocin");
            table.Rows.Add(50, "Enebrel");
            table.Rows.Add(10, "Hydralazine");
    
    
    
            DropDownListSelectEmployee.DataSource = table;
            DropDownListSelectEmployee.DataTextField = "Name";
            DropDownListSelectEmployee.DataValueField = "Id";
            DropDownListSelectEmployee.DataBind();
            ***DropDownListSelectEmployee.Items.Insert(0, new ListItem("--nworks User--", "0"));***
    
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 2014-08-10
      • 2011-11-09
      • 2016-10-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多