下拉列表显示所有值

时间:2015-10-07 07:05:27

标签: c# asp.net ado.net

我一直在使用asp.net。我有一个带网格视图的注册表单。 网格视图包含下拉列表(ddl)的ID。

  

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

     

问题就在这里,下拉列表只显示适当的值,并且不能点击并且不能更新按钮

enter image description here

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

如何以相同的时间突显所有元素的下降列表突出显示适当的价值

1 个答案:

答案 0 :(得分:1)

要实现选择,只需使用:

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

但是你也应该注意到你的SQL查询很糟糕。它允许创建SQL注入攻击。而不是连接它你应该SQL params。

所以完整的代码可能是这样的:

 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;