我绑定了一个ListBox。不知为什么,DataValueField里面竟然是空的。(ListBox1.SelectedValue.Length == 0)
这是怎么回事。以下是代码。大家帮忙看看。DataSet NowSet = (DataSet)Session["MainSet"];
ListBox1.DataSource = NowSet.Tables["mac_departmentreg"];
ListBox1.DataTextField = "部门名称";
ListBox1.DataValueField = "部门序号";
ListBox1.DataBind();
ListBox1.AutoPostBack = true;

解决方案 »

  1.   

    Dim a As New OleDbDataAdapter("select book_name,book_id from t_bookinfo where book_id <200 ", conn)
                Dim ds As New DataSet
                a.Fill(ds)
                Me.ListBox1.DataSource = ds
                Me.ListBox1.DataTextField = "book_name"
                Me.ListBox1.DataValueField = "book_id"
                Me.DataBind()
    Me.ListBox1.DataValueField = "book_id"这里是字段名
      

  2.   

    我当时在数据适配器里用的sql是这样写的:"select name as 部门名称, departmentindex as 部门序号 from mac_departmentreg",所以字段名是那样写的。
    而且绑定了以后Text的内容是正常的。只是没有Value.
    怎么回事呢?
      

  3.   

    我绑定到DataValueField的数据不是字符串。
    有没有影响呢?
      

  4.   

    我通常的写法是:先写Me.ListBox1.DataTextField = "book_name"
                Me.ListBox1.DataValueField = "book_id"
    然后才绑定数据源。
    另外有个建议就是最好用英文字段名。一个是习惯,一个是为了应付可能对中文支持不太好的环境。
      

  5.   

    绑定到DataValueField的必须是字符串,比如类的属性名,表的列名等。
      

  6.   

    在DropDownList里面好象不存在这样的问题啊。是吧。那我现在要想在ListBox里绑定非字符串类型的数据有没有什么办法呢?
      

  7.   

    我现在发现其实Value里面是有东西的。只是我获得的SelectedValue是空的。
    这又是怎么回事呢?