我想在GridVeiw某一列里面根据行数来显示两种不同的控件, 
比如 1-20行第一列绑定DropDownList,20-30行第一列绑定TextBox。。 我是在后台绑定实现的 
可是绑定以后取不到DropDownList的值有高手帮解决这个问题吗?

解决方案 »

  1.   

    DropDownList ddl=(DropDownList )GridView1.Rows[j].findcontrols("ddl1"); 
    然后取ddl.Text试试。
      

  2.   

    for (int j = 0; j <18;j++ ) 
            { 
                DropDownList ddl = new DropDownList(); 
                ddl.ID = "ddl1"; 
                ddl.Items.Add("请选择"); 
                ddl.Items.Add("优"); 
                ddl.Items.Add("良"); 
                ddl.Items.Add("中"); 
                ddl.Items.Add("差"); 
                GridView1.Rows[j].Cells[6].Controls.Add(ddl); 
              
            }      这样没有给每一项赋值valuefor (int j = 0; j <18;j++ ) 
            { 
                DropDownList ddl = new DropDownList(); 
                ddl.ID = "ddl1"; 
                ddl.Items.Add("请选择",""); 
                ddl.Items.Add("优","0"); 
                ddl.Items.Add("良","1"); 
                ddl.Items.Add("中","2"); 
                ddl.Items.Add("差","3"); 
                GridView1.Rows[j].Cells[6].Controls.Add(ddl); 
              
            }      
    试试
      

  3.   

    这样提示错误
    “Add方法没有采用“2”个参数的重载”
      

  4.   

    ddl.Items.Add(new ListItem("--请选择--", ""));用这样的方式。
      

  5.   

    这样还是不可以还是提示
    异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
    行 231:            {
    行 232:                DropDownList dr = (DropDownList)GridView1.Rows[i].FindControl("ddl1");
    行 233:                Response.Write(dr.SelectedValue.ToString());
    行 234:            }
    行 235:        }
     
      

  6.   

    DropDownList dr = (DropDownList)GridView1.Rows[i].FindControl("ddl1");
    没有值 
      

  7.   

     if (e.Row.RowType == DataControlRowType.DataRow)
            {
       DropDownList ddl = (DropDownList)e.Row.FindControl("DropDownList1");
       String str=dll.selectedValue;
    }
      

  8.   

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
    if (e.Row.RowType == DataControlRowType.DataRow) 
            { 
      DropDownList ddl = (DropDownList)e.Row.FindControl("DropDownList1"); 
      String str=dll.selectedValue; 
    }
    }
      

  9.   

    先看看 你的gridview是否真的已经加入了dropdownlist 
      

  10.   

    ddl.ID = "ddl1"; 这一句的ID赋值应该赋动态的的,ID不能顾循环赋值一样的。。否则他只加载一个控件,前面的都被覆盖了。
    for (int j = 0; j <18;j++ ) 
            { 
                DropDownList ddl = new DropDownList(); 
                ddl.ID = "ddl"+j;             ddl.Items.Add("请选择"); 
                ddl.Items.Add("优"); 
                ddl.Items.Add("良"); 
                ddl.Items.Add("中"); 
                ddl.Items.Add("差"); 
                GridView1.Rows[j].Cells[6].Controls.Add(ddl); 
              
            }  获取的时候,

                    DropDownList dr = (DropDownList)GridView1.Rows[i].FindControl("ddl"+i); 
                    Response.Write(dr.SelectedValue.ToString()); 
               } 试试吧,我也不知道行不行
      

  11.   

    GridVeiw已经加入了DropDownList了。。
    可就是取不到值 哪个高手可以指教某一列根据行数不同怎么绑定2个不同的控件
    比如:1-10行绑定DropDownList 10-20行绑定TextBox  
    我在后台实现了。。可是取不到值
    哪位高手可以指教怎么在前台实现。。