假设创建了一个Gridview控件,然后绑定了一个员工表,只固定显示员工编号这一列,而第二列员工姓名要动态添加DropDownList,然后再把员工姓名绑定到DropDownList。本人动态添加TextBox,Labal都可以绑定成功,唯独DropDownList不知如何绑定,望各位高手解答,感激不尽,在线等哈!

解决方案 »

  1.   

    一样的绑定,编辑的时候给Dropdownlist也绑定一下就OK了。
      

  2.   

    具体点啊大哥,编辑的时候怎么绑定啊,我需要动态生成的时候就直接绑定了,就像TEXTBOX一样。
      

  3.   

    dropdownlist drop = (dropdownlist)(e.row.cell[1].FindControl("dropName"))
    drop.datasource = ds;
    drop.databind();
      

  4.   

    在GridviewRow的行绑定事件中用FindControl方法================================================================================
    viewerwang's life
    http://www.lelespace.com/
    ================================================================================
      

  5.   

    dt为数据源,循环数据 源DropDownList zb1 = (DropDownList) DataGrid1.Items[i].Cells[2].FindControl("zb1");
    zb1.SelectedIndex=zb1.Items.IndexOf(zb1.Items.FindByValue( dt.Rows[i]["zb1"].ToString()));
    以前我用datagrid就是这样一个一个赋值的,没绑定仅供参考
      

  6.   

    我把方法贴出来了,其他的TEXTBOX,LABAL都可以绑定,为什么DROPDOWNLIST就不可以,疑惑中,大家请看代码 public class GenerateDynamicColumnTemplate:ITemplate
        {
             string column;        public GenerateDynamicColumnTemplate(string ColumnName)
            {
                this.column = ColumnName;
            }        public GenerateDynamicColumnTemplate()
            {
                this.column = "-1";
            }        public void InstantiateIn(Control container)
            {
                DropDownList dr = new DropDownList();
                //dr.Items.Add(new ListItem("优", "-1"));
                //dr.Items.Add(new ListItem("良", "-2"));
                //dr.Items.Add(new ListItem("中", "-3"));
                //dr.Items.Add(new ListItem("合格", "-4"));
                //dr.Items.Add(new ListItem("不合格", "-5"));
                //dr.Items.Add(new ListItem(" ", "-6"));
                dr.Width = 20;
                dr.DataValueField = column;
                dr.DataTextField = column;
                dr.DataBinding += new EventHandler(BindData);
          
                
          
                //TextBox txt = new TextBox();
                //txt.MaxLength = 5;
                //txt.Width=30;
                //txt.DataBinding+=new EventHandler(BindData);
                //txt.Width = System.Web.UI.WebControls.Unit.Pixel(70);            //Label lb = new Label();
                //lb.DataBinding += new EventHandler(BindData);
                //lb.Visible = true;            container.Controls.Add(dr);
                //container.Controls.Add(txt);
                //container.Controls.Add(lb);
            }        public void BindData(object sender, EventArgs e)
            {
                if (!column.Equals("-1"))
                {
                    Control l = (Control)sender;
                    GridViewRow container = (GridViewRow)l.NamingContainer;
                    ((ITextControl)l).Text = ((DataRowView)container.DataItem)[column].ToString();
                    
                }
            }
        }