private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
DataSet ds = new DataSet();
User us = new User();
ds = us.FindAllUser();
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
{
DataRowView drv = (DataRowView)e.Item.DataItem;
string current = drv["step2_person"].ToString();
DropDownList ddl2=(DropDownList)e.Item.FindControl("DropDownList2");
DropDownList ddl3=(DropDownList)e.Item.FindControl("DropDownList3");
ddl2.DataTextField="UserID";
ddl2.DataValueField ="UserID";

ddl2.DataSource=ds.Tables[0].DefaultView;
ddl2.DataBind();
ddl2.SelectedIndex = ddl2.Items.IndexOf(ddl2.Items.FindByText("LI Qiang"));

}
我想在绑定的时候动态设置dropdownlist的初始值,代码如上问题是:ddl2.Items.IndexOf(ddl2.Items.FindByText("LI Qiang"));这一句返回的值总是-1哪位给看看是什么地方的问题?谢谢

解决方案 »

  1.   

    如知道要选择行的值或文本也可
    DropDownList1.Items.FindByText("Text").select=true;
      

  2.   


    ddl2.DataTextField="UserID";
    ddl2.DataValueField ="UserID";??
    tryddl2.SelectedValue = "LI Qiang";
      

  3.   

    这样设~
    ddl2.Items.FindByText("LI Qiang").select=true;
      

  4.   

    执行楼上那句,出现Object reference not set to an instance of an object. 错误我感觉
    ddl2.Items.FindByText("LI Qiang")这句有问题。但不知问题在哪?
      

  5.   

    ddl2.SelectedValue = "LI Qiang";这句一样运行时出错
    Specified argument was out of the range of valid values. Parameter name: Li Qiang
      

  6.   

    Li Qiang就不存在!
    是你数据的问题这样写ListItem li = ddl2.Items.FindByText("LI Qiang");
    if(li != nul)
      li.Selected = true;
      

  7.   

    找到原因了,原来我数据库里面的数据是"LiQiang     "后面有空格的,邦定的值也是带空格的,但是如何去空格,我使用ddl2.DataTextField="UserID".Trim();但是不起作用
      

  8.   

    保存的时候用.Trim()可以。
    ddl2.DataTextField="UserID".Trim();  //你这样用根本就不对
      

  9.   

    读出来时去掉空格也可以
    select rtrim(userid)
    from table1