asp.net DropDownList 绑定的值读出来都是类型

用DropDownList 动态绑定数据库某一列的值,读出来都是类型如下图所示:图片说明

该怎么解决啊?

5个回答

你确认是绑定的?怎么感觉你是动态增加的,如 dd.Items.Add(ListItem),然后ListItem的值设置错了,设置为DataRowView对象了,而不是数据行的值
发你如何绑定的代码看看

ElvisMoFeng
ElvisMoFeng 要把dropdownlist的这两个属性设置出来,就OK了。ddlNames.DataTextField = "name"; ddlNames.DataValueField = "name";
大约 5 年之前 回复

你绑定对么?ddl.DataSource = dt;
ddl.DataTextField = "Name";
ddl.DataValueField = "ID";
ddl.DataBind();

ASP.NET dropdownlist绑定数据却显示System.Data.DataRowView

问题: 在VS中用dropdownlist控件绑定数据,浏览时却在控件里显示System.Data.DataRowView,而不是要显示的数据,代码如下:

public static DataSet GetDataSet(DataSet ds, string tablename)
{
string s = "select departmentName from department_info";
string con = ConfigurationManager.ConnectionStrings["CodematicConnectionString"].ConnectionString.ToString();
SqlConnection conn = new SqlConnection(con);
SqlDataAdapter adapter = new SqlDataAdapter(s, con);
adapter.Fill(ds, tablename);
return ds;
}

protected void Page_Load(object sender, EventArgs e)
{

     if(!IsPostBack)

       { 
           DataSet ds = new DataSet(); 
           string tablename = "department_Info"; 
           ds = GetDataSet(ds, tablename); 
           this.ddl_post.DataSource = ds; 
                  this.ddl_post.DataBind(); 
           DataTable dt = ds.Tables[0]; 
           DataRow dr = dt.NewRow(); 
           dr[0] = "==请选择=="; 
           //添加到第1行 
           dt.Rows.InsertAt(dr, 0); 
           this.ddl_post.DataSource = dt; 
           //这种方法也可以 
           //this.ddl_department.Items.Insert(0,"==请选择=="); 
           //this.ddl_department.Items.FindByText("==请选择==").Selected = true;

       } 

 }

解决:在DataBind();前加上

     ddl_post.DataTextField = "departmentName"; 
          ddl_post.DataValueField = "departmentName";

就可以了.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问