0

我是新手,但创建了一个小的 Asp.net c# 项目。

我有一个将数据粘贴到数据库表的表单和一个快速概览数据网格,如果我在该数据网格上编辑一行,它会重新填充 from。
我创建了一个单独的优先级数据库表/列表来测试表单上的下拉列表,值 L、VL、M、H、VH 只有这些添加没有删除。我可以将列表拉到下拉框中并可以看到所有 5 个值,但是列表很大并且包含另外 45 个空项目。


如果我改变 ddl_priority.DataTextField = "ID"; 从上到下的列表显示 1 到 45,然后是 1、2、3、4、5,后者是我的值,我尝试使用“SQL Where”限制值,但它不起作用
我的下拉列表代码是;

public void Populate_priority_dropdownlist()
{
    ad = new SqlDataAdapter("select * FROM x_priority_list_tbl", con);
    //ad = new SqlDataAdapter("select [Priority] FROM [x_priority_list_tbl] where [ID] < 7 ", con);
    ad.Fill(ds, "s");
    dt = ds.Tables["s"];
    ddl_priority.DataSource = dt;

    ddl_priority.DataValueField = "Priority";
    ddl_priority.DataTextField = "Priority";
    ddl_priority.DataBind();
}

一定是某个地方的一些设置?

4

1 回答 1

1

我猜你有一些表条目null作为 Priority (或 PriorityName ?)列值的值。可能你应该解决这个问题。您始终可以向您的选择查询添加 where 条件,以便它只显示具有有效 PriorityName 值的那些记录。

ad = new SqlDataAdapter("select * FROM x_priority_list_tbl
              WHERE PriorityName is not null and PriorityName<>''", con);

还将 ID设置为DataValueField属性值并设置PriorityName为文本字段。

ddl_priority.DataValueField = "ID";
ddl_priority.DataTextField = "PriorityName";

假设您的表具有名称ID和列PriorityName。如果您的列名不同,您可以在代码中进行相应更改。

于 2012-06-26T21:02:46.030 回答