在 asp.net C# 中动态填充数据库中的下拉列表
本文关键字:数据库 下拉列表 填充 动态 net asp | 更新日期: 2023-09-27 18:32:47
我在 asp.net 带有 c# 的应用程序中有下拉列表。来自数据库的下拉列表元素(用户名)。默认情况下,我的下拉列表显示我选择的名字作为名字出现在我的数据库表中。即当我打开页面时,我看到该名称已被选中。我想要这样,所选名称应该像"nworks 用户"。我使用代码尝试了一下:
<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();
}
}
怎么可能?
假设您不想选择任何名称,请使用:
使用DropDownListSelectEmployee.SelectedIndex = -1;
但是,如果您希望在顶部有一个命名框,只需将其添加为列表的第一项,并将其作为所选索引即可。
这样:
DropDownListSelectEmployee.Items.Add("nWorks User");
while (rdr.Read())
{
user = rdr.GetString("username");
DropDownListSelectEmployee.Items.Add(user);
}
您需要在循环之外添加第一项,然后默认情况下您将选择第一项。
绑定
数据后使用粗体字母代码后面的代码,默认选择"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>
代码隐藏: 受保护的无效Page_Load(对象发送器,事件参数 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"));***
}
}