注册 登录
编程论坛 ASP.NET技术论坛

求助dropdownlist数据绑定问题

girl0001 发布于 2010-10-18 01:24, 834 次点击
DropDownList ddlWorkTypeTitle = (DropDownList)dlsviewEmployee.FindControl("ddlWorkTypeTitle");
  this.dbForEmployee = new DataBaseForEmployee();
  ddlWorkTypeTitle.DataSource = this.dbForEmployee.GetEmpWorkTypeDt();   
  ddlWorkTypeTitle.DataTextField = "WorkTypeTitle";
  ddlWorkTypeTitle.DataValueField = "WorkTypeNum";
  ddlWorkTypeTitle.DataBind();

ddlWorkTypeTitle.Item.Count不为0,但是页面上的DropDownList不显示数据
8 回复
#2
wangnannan2010-10-18 09:18
请问楼主方法GetEmpWorkTypeDt返回的是什么类型 DataSet 还是泛型啊?  看代码不像是有问题
#3
wangnannan2010-10-18 09:21
楼主可以尝试添加item方法 希望对楼主有帮助
例如
        public void BindDeptName(ListItemCollection Items)
        {
            Items.Clear();

            SqlDataReader dr = SQLHelper.ExecSpReader("存储过程名称");

            Items.Add(new ListItem("--请选择部门--", ""));

            while (dr.Read())
            {
                Items.Add(new ListItem(dr["字段1"].ToString(), dr["字段2"].ToString()));
            }
            dr.Close();
            dr.Dispose();
        }
#4
mjx52010-10-18 21:53
是把数据库中的数据绑定到这个空间吗?返回一个ds,设置下DataTextField和DataValueField不就行了?
#5
qingshuiliu2010-10-19 09:36
错误可能:
1.  ddlWorkTypeTitle.DataTextField = "WorkTypeTitle";
  ddlWorkTypeTitle.DataValueField = "WorkTypeNum";
2.ddlWorkTypeTitle.DataSource = this.dbForEmployee.GetEmpWorkTypeDt();
数据源需要检查一下。
这两个有问题。

#6
Issac_abc2010-10-21 12:05
现把数据查询出来,在页面上可以直接绑定数据源!我认为这样简单些,不容易出错。
#7
wyalwy2010-10-21 17:38
给你一段绑定代码  希望能给你一点启发! 加油...........
程序代码:
protected void DDLBind()
    {
        SqlConnection myCom = new SqlConnection();//打开数据库连接
        myCom.Open();
        string strSql = "select distinct fileUpDate from tb_files";
        SqlDataAdapter dapt = new SqlDataAdapter(strSql, myCom);
        DataSet ds = new DataSet();
        dapt.Fill(ds);
        this.ddlUD.DataSource = ds.Tables["files"].DefaultView;//绑定
        this.ddlUD.DataTextField = ds.Tables["files"].Columns[0].ToString();
        this.ddlUD.DataBInd();
        ds.Dispose();
        dapt.Dispose();
        myCom.Close();
      
    }
#8
筱晓绾2010-10-22 11:26
ddlWorkTypeTitle.DataTextField = "WorkTypeTitle";
ddlWorkTypeTitle.DataValueField = "WorkTypeNum";
查看这里的值是否有误!
this.dbForEmployee.GetEmpWorkTypeDt();
查看这里的方法返回的值是否为DataSet。
也可参考LS代码。
#9
taotaojyc2010-10-22 15:17
  ddlWorkTypeTitle.DataSource = this.dbForEmployee.GetEmpWorkTypeDt();   
  ddlWorkTypeTitle.DataTextField = "WorkTypeTitle";
  ddlWorkTypeTitle.DataValueField = "WorkTypeNum";
就这三个地方,不是没有返回dataset/datatable,就是字段和数据库不对应
你show一下字段的值看可有。
1