日期:2014-05-19  浏览次数:20839 次

dataset绑定dropdownlist的问题
ddlUserName.DataSource   =   dsUserName.Tables[0].DefaultView;
ddlUserName.DataTextField   =   "UserName ";
ddlUserName.DataValueField   =   "UserName ";
ddlUserName.DataBind();
ddlUserName.Items.Add(new   ListItem( "选择名字 ", "选择名字 "));
ddlUserName.Items.FindByText( "选择名字 ").Selected   =   true;

这样可以实现绑定   可是我怎么让 "选择名字 "这个item在第一个位置显示呢?谢谢

------解决方案--------------------
ddlUserName.selectedvalue= "选择名字 ";
------解决方案--------------------
绑定之后是无法再加入新行的 只能在绑定数据之前进行处理
可以修改你的sql语句,
select "选择名字 " as UserName from dual
union
你的sql语句
也可以给你的dsUserName.Tables[0]加入新行
将 "选择名字 " 插入到dsUserName.Tables[0]的第一行
再进行绑定
------解决方案--------------------
晕 忘了说了 我这个是vb.net winform用的
------解决方案--------------------
string strTemp = " ";
ddlUserName.Items.Add(new ListItem( "选择名字 ", "选择名字 "));
for(int i = 0;i < dsUserName.Tables[0].Rows.Count; i ++)//此处具体看你的dsUserName.Tables[0]结构写了
{
strTemp
ListItem li = new ListItem();
ddlUserName.Items.Add(li);
}
ddlUserName.Items.FindByText( "选择名字 ").Selected = true;
------解决方案--------------------
ddlUserName.selectedIndex = 0;
------解决方案--------------------
改成这样:
ddlUserName.DataSource = dsUserName.Tables[0].DefaultView;
ddlUserName.DataTextField = "UserName ";
ddlUserName.DataValueField = "UserName ";
ddlUserName.DataBind();
ddlUserName.Items.Insert(0,new ListItem( "选择名字 ", "选择名字 "));

------解决方案--------------------
更正:
string strTemp = " ";
ddlUserName.Items.Add(new ListItem( "选择名字 ", "选择名字 "));
for(int i = 0;i < dsUserName.Tables[0].Rows.Count; i ++)
{ //此处具体看你的dsUserName.Tables[0]结构写了
strTemp = dsUserName.Tables[0].Rows[i][0];
ListItem li = new ListItem(strTemp ,strTemp );
ddlUserName.Items.Add(li);
}
ddlUserName.Items.FindByText( "选择名字 ").Selected = true;

随手写的,没测试
------解决方案--------------------
ddlUserName.Items.add(new ListItem( "选择名字 ", "选择名字 "));
------解决方案--------------------
ddlUserName.Items.Add(new ListItem( "选择名字 ", "选择名字 "));
改为:
ddlUserName.Items.Insert(0, new ListItem( "选择名字 ", "选择名字 "));