下拉列表显示所有值

本文关键字:列表显示 | 更新日期: 2023-09-27 18:16:18

我一直在研究asp.net。我有一个注册表格与网格视图。网格视图包含下拉列表(ddl)的id。

当我选择网格视图时,所有值都必须显示在注册表单中的适当字段中。对于ddl,从网格视图中的ddl id值,在下拉列表中显示相应的下拉列表文本。

问题出现在这里,下拉列表只显示适当的值,再次无法点击和填充更新按钮

输入图片描述。

cmd.CommandText = "SELECT * FROM COMPANY WHERE COMPANYID='" + dbCompany + "'";
                txtTextBox1.Text = newcmpid;   
                DataTable dt = new DataTable();
                dt.Load(cmd.ExecuteReader());
                ddlCompanyName.DataSource = dt;
                ddlCompanyName.DataTextField = "COMPANYNAME";
                ddlCompanyName.DataValueField = "COMPANYID";
                ddlCompanyName.DataBind();

如何用所有元素填充下拉列表,同时突出显示适当的值

下拉列表显示所有值

只需使用:

ddlCompanyName.Items.FindByValue(dbCompany).Selected = true;

但是你也应该注意到你的SQL查询是危险的。它允许创建SQL注入攻击。而不是连接它,你应该SQL参数。

所以完整的代码可以是这样的:
 cmd.CommandText = "SELECT * FROM COMPANY WHERE COMPANYID=@ID;";
 cmd.Parameters.Add("@ID", SqlDbType.Int);
 cmd.Parameters["@ID"].Value = dbCompany;
 txtTextBox1.Text = newcmpid;   
 DataTable dt = new DataTable();
 dt.Load(cmd.ExecuteReader());
 ddlCompanyName.DataSource = dt;
 ddlCompanyName.DataTextField = "COMPANYNAME";
 ddlCompanyName.DataValueField = "COMPANYID";
 ddlCompanyName.DataBind();
 ddlCompanyName.Items.FindByValue(dbCompany).Selected = true;