如果DropDownList的autopostback属性不选上的话
ddl.Items.FindByValue("value").Selected = true;
用上面这个方法是不是不能设置ddl的默认选中值?

解决方案 »

  1.   

    你指什么时候默认选中?pageload的时候?
      

  2.   


    如果用你说的要这样子写 ddl.SelectedIndex=ddl.Items.IndexOf(ddl.Items.FindByValue(CurrentSelectItem));   
    太长了,所以我就用ddl.Items.FindByValue("value").Selected = true; 两个的意思是一样的
      

  3.   

    不加上autopostback=True,数据不会回发,也就不会获得选择项
      

  4.   

    不用设autopostback,可以的,
    你的问题出在其他地方,看看绑定数据是不是有问题
      

  5.   

    不加上autopostback=True,数据不会回发,也就不会获得选择项
      

  6.   

    ddl.SelectedValue = "value";
      

  7.   

    ProductBLL _ProductBLL = new ProductBLL();
    T_Product _T_Product = new T_Product();
    int productid,classid; protected void Page_Load(object sender, EventArgs e)
    {
    productid = Convert.ToInt32(Request.QueryString["c"].ToString());
    if (!IsPostBack)
    {
    ddlProductClass_Bind();
    if (productid == 0)
    {
    }
    else
    {
    DataTable dt = new DataTable();
    dt = _ProductBLL.GetProductDetail(productid);
    txtName.Text = dt.Rows[0]["productName"].ToString();
    txtPrice.Text = dt.Rows[0]["productPrice"].ToString();
    txtCount.Text = dt.Rows[0]["productCount"].ToString();
    txtContent.Text = dt.Rows[0]["productContent"].ToString();
    ddlProductClass.Items.FindByValue(“value”).Selected = true;   
    }
    }
    }
    代码是这样子的喔
      

  8.   

    是这样的,DDL绑定了数据以后,默认会选中第一个item,如果你想让DDL选中你需要的数据,你需要先记录下当前DDL的selectindex,然后循环遍历DDL的所有item,如果item.Value等于你需要选中的value,则需先将DDL当前的selectindex的select属性设置为false,然后再将符合条件的item的select属性设置为true,例:
    int index = ddl.selectIndex;
    for(int i=0;i<ddl.items.count;i++)
    {
        if(ddl.items[i].Value=="需要选中的值")
        {
            ddl.items[index].select = false;
            ddl.items[i].select = true;
            break;
        }
    }
      

  9.   

    ddlProductClass.selectedItem.Text="想选中的文本";
    试试这个
      

  10.   

    ddlProductClass.Items[index].Selected = true;
      

  11.   


                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    string tName = dt.Rows[i][1].ToString();
                    string tId = dt.Rows[i][0].ToString();
                    DropDownList1.Items.Add(new ListItem(tName, tId));
                }
                DropDownList1.Items.FindByValue("3").Selected = true;           这是我写的绑定方法和按你要的方式设置的值,没有问题
    关键是这句 DropDownList1.Items.Add(new ListItem(tName, tId));
    绑定时要给value赋值才能取到
      

  12.   

    在pageload的时候先绑定数据,然后选择一个默认显示的项
    autopostback是在下拉框出现changed的时候自动触发post过程,一般跟onchanged合用,跟你load时绑定默认不搭尬的