发表于:2008-08-27 15:08:50 楼主 
public class ColumnTemplate : ITemplate 

  public void InstantiateIn(Control container)      
    { 
        DropDownList dbl=new DropDownList(); 
        dbl.ID="dblpro_storage"; 
        dbl.DataBinding+=new System.EventHandler(this.BindtbColumn); 
        container.Controls.Add(dbl); 
    } 
  public void BindtbColumn(object sender, EventArgs e) 
    { 
        DropDownList dbl= (DropDownList) sender; 
        DataGridItem container = (DataGridItem) dbl.NamingContainer; 
string pp=((DataRowView)container.DataItem)["id"].ToString(); 
dbl.DataTextField ="storage_name"; 
dbl.DataValueField ="storage_ID"; 
dbl.DataSource =getstoragelist(); 
dbl.Items.Insert(0,new ListItem("请选择仓库","0")); //这儿不起作用 
        dbl.SelectedValue =((DataRowView)container.DataItem)["pro_storage"].ToString();//这儿会出错     } 

 

解决方案 »

  1.   

    dbl.DataSource =getstoragelist(); 
    dbl.DataBinding();
    dbl.Items.Insert(0,new ListItem("请选择仓库","0")); 
      

  2.   

    谢谢楼上的大哥.问题是
    dbl.Items.Insert(0,new ListItem("请选择仓库","0")); //这儿不起作用 
     dbl.SelectedValue =((DataRowView)container.DataItem)["pro_storage"].ToString();//这儿会出错 
      

  3.   


    protected void DropDownList1_DataBound(object sender, EventArgs e)
        {
            this.DropDownList1.Items.Add(new ListItem("请选择", "0"));
            this.DropDownList1.SelectedIndex = DropDownList1.Items.Count - 1;
        }
    dbl.DataBound+=new EventHandler(DropDownList1_DataBound);
      

  4.   

    dbl.Items.Insert(0,new ListItem("请选择仓库","0")); //这儿不起作用 像下面这样写看看,让添加的项Value为空,加载时作为选择项.        this.dbl.Items.Add("--请选择仓库--");
            this.dbl.Items[this.dbl.Items.Count - 1].Value = "";
            this.dbl.SelectedIndex = this.dbl.Items.Count - 1;