asp.net高手来回答,急用,在线等...

来源:百度知道 编辑:UC知道 时间:2024/05/30 08:49:09
关于DropDownList
for (int i = 0; i < aa.Length; i++)
{
DataSet dd = user.getDataSet("select real_name,[id] from [user] where [id]=" + Convert.ToInt32(aa[i]));
this.drpjiaobanren.Items.Add(new ListItem(aa[i], dd.Tables[0].Rows[0][0].ToString()));
}
this.drpjiaobanren.Items.Insert(0, new ListItem("--请选择--", "0"));
我的本意是想让它的值显示的是名字,根据ID,然后显示对应的username,可是dd.Tables[0].Rows[0][0].ToString()可以取出对应的名字来,但是DropDownList显示的仍然是id号,请问我写的有错吗?
如果有的话,请告诉我正确的写法,小妹感激不尽!....
别老说哪的错了
改出来,加分100!绝不食言!

this.drpjiaobanren.Items.Add(new ListItem(aa[i], dd.Tables[0].Rows[0][0].ToString()));
改成this.drpjiaobanren.Items.Add(dd.Tables[0].Rows[0][0].ToString());

this.drpjiaobanren.Items.Add(new ListItem(aa[i], dd.Tables[0].Rows[0][0].ToString()));
将这句改成下面的 试试吧
this.drpjiaobanren.DataSource = dd.Tables[0];
this.drpjiaobanren.DataTextField = dd.Tables[0].Rows[0][0].ToString();
this.drpjiaobanren.DataValueField = aa[i]; this.drpjiaobanren.DataBind();

int nn = aa.length; //接受长度
for (int i = 0; i < nn-1; i++)
----------------------------
循环遍历的集合时候,aa.lenght 是可变的
你按F9设置断点,启动调试就可以看到问题的结症了
F10下一步

this.drpjiaobanren.Items.Add(new ListItem(aa[i], dd.Tables[0].Rows[0][0].ToString()));

这一句有问题, new ListItem(aa[i], dd.Tables[0].Rows[0][0].ToString())
这里面有两个参数,第一个参数是显示的名称,第二个参数显示的是id

没有指定DataTextField的值 默认情况下DataValueField与DataTextField是一致的
应在程序中指明this.drpjiaobanren.DataTextField 和DataValueFi