刚接触ASP.NET,大概知道如果想在DataGrid中使用下拉列表应该使用模板列但还是有一些问题不明白:1:如果我想在一般情况下该列就表现为一个值,而按下编辑按钮后该列变为模板列该如何做?2:该列在浏览状态下就是下拉列表,但我想让该列表的默认值和数据库记录中的一致,这个关联该如何做?

解决方案 »

  1.   

    1.datagrid实现不了,要不你很强,重写很多脚本控制datagird显示,也可以实现。2.可以在后台datagrid的itemdatabound里处理
      

  2.   

    不过1可以找grid控件实现,网上很多,推崇一个netadvantage
      

  3.   

    第二个问题
    private void DataGrid_1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    DropDownList DropDownList_1=(DropDownList)e.Item.FindControl("DropDownList1");//在这里将数据绑定到DropDownList_1}
      

  4.   

    你在模板里   的ItemTemplate      上放一个 Label (绑定到  Column)
                   EditItemTemplate  上放一个 DropDownList(在函数中动态绑定)这样正常显示就 跟原来一样。
    按下编辑按钮会出现 DropDownList
      

  5.   

    DropDownList ddl=(DropDownList)e.Item.FindControl("dep"); 
        ddl.DataSource=ds.Tables["table1"]; 
        ddl.DataTextField="depname"; 
        ddl.DataValueField="depid"; 
        ddl.DataBind(); 
    下面这句应该就是你想实现的第二个功能吧!!
        ddl.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"depid"))).Selected=true;//选择数据库内的作为默认