程序如下:
DataSet dswt = new DataSet();
dswt = sqlhelper.GetDataSet("select id, labelcn from Wtabel order by id asc");foreach (DataRow dr in dswt.Tables[0].Rows)
{
if (dr["labelcn"].ToString() != "" && dr["labelcn"].ToString() != null)
{
dropdownlist1.DataSource = dswt.Tables[0];
dropdownlist1.DataTextField = "labelcn"; //dropdownlist的Text的字段
dropdownlist1.DataValueField = "id";//dropdownlist的Value的字段
dropdownlist1.DataBind(); }
}
按照上边判断,当表“labelcn”字段中出现空值的时候,应该不执行dropdownlist的添加了,但是在下拉菜单显示时,还是有空值在下拉选项里,请大侠帮帮忙,谢谢了!!!
DataSet dswt = new DataSet();
dswt = sqlhelper.GetDataSet("select id, labelcn from Wtabel order by id asc");foreach (DataRow dr in dswt.Tables[0].Rows)
{
if (dr["labelcn"].ToString() != "" && dr["labelcn"].ToString() != null)
{
dropdownlist1.DataSource = dswt.Tables[0];
dropdownlist1.DataTextField = "labelcn"; //dropdownlist的Text的字段
dropdownlist1.DataValueField = "id";//dropdownlist的Value的字段
dropdownlist1.DataBind(); }
}
按照上边判断,当表“labelcn”字段中出现空值的时候,应该不执行dropdownlist的添加了,但是在下拉菜单显示时,还是有空值在下拉选项里,请大侠帮帮忙,谢谢了!!!
{
....
}
{
}
楼主改成这样的判断试试看
不管你有没有加判断,当调用dropdownlist1.DataBind(); 的时候,它会默认将所有数据绑定到dropdownlist1,跟你判断没有关系
而你用.Items.Add()的话,这样就对数据源的每一行进行了过滤,只允许符合条件的行通过。
只需要满足一次 dr["labelcn"].ToString() != "" && dr["labelcn"].ToString() != null
条件
就会执行
dropdownlist1.DataSource = dswt.Tables[0];
dropdownlist1.DataTextField = "labelcn"; //dropdownlist的Text的字段
dropdownlist1.DataValueField = "id";//dropdownlist的Value的字段
dropdownlist1.DataBind();
数据绑定
--------
.Items.Add(new ListItem())这样写是对了。
所以确实应该这么写
或者
先操作dswt.Tables[0] 把 为空数据清除,再作为dropdowlist的数据源,绑定才对
if(dswt != null && dswt.Tables.Count != 0 && dswt.Tables[0] != null && dswt.Tables[0].Rows.Count != 0)
{
//这里面再foreach,就不用做判断了
}
{
if (dr["labelcn"].ToString() != "" && dr["labelcn"].ToString() != null)
{
dropdownlist1.DataSource = dswt.Tables[0];
dropdownlist1.DataTextField = "labelcn"; //dropdownlist的Text的字段
dropdownlist1.DataValueField = "id";//dropdownlist的Value的字段
dropdownlist1.DataBind(); }
}
这样写 你判断了跟没判断有什么区别
1.
foreach (DataRow dr in dswt.Tables[0].Rows)
{
if (dr["labelcn"].ToString() != "" && dr["labelcn"].ToString() != null)
{
dropdownlist1.Items.Add(new ListItem(dr["labelcn"].ToString(),dr["id"].ToString() ));
}
}2.
DataView dv = dswt.Tables[0].DefaultView;
dv.RowFilter = "labelcn is not null or labelcn<>''";
dropdownlist1.DataSource =dv;
dropdownlist1.DataTextField = "labelcn"; //dropdownlist的Text的字段
dropdownlist1.DataValueField = "id";//dropdownlist的Value的字段
dropdownlist1.DataBind();
dswt = sqlhelper.GetDataSet("select id, labelcn from Wtabel order by id asc");dropdownlist1.Items.clear();
foreach (DataRow dr in dswt.Tables[0].Rows)
{
if (dr["labelcn"].ToString() != "" && dr["labelcn"].ToString() != null)
{
dropdownlist1.Items.Add(new ListItem(dr["labelcn"].Text,dr["id"].Text));
}在你代码上直接手改的,可能有错,反正就是添加的方式,满足你条件的,你就在DropDownList上添加一个项,而不是你上面的满足条件就又绑定一次那样。