使用数组元素在gridview中填充DropDownList

时间:2013-08-27 09:43:18

标签: c# asp.net arrays gridview

我一直在尝试使用数组元素在gridview中填充DropDownList。该数组由另一个gridview中的列名组成。数组元素似乎从其源代码中获取列名,但我无法弄清楚如何将其提供给dropdownlist。这是我的代码 - :

   public partial class Default2 : System.Web.UI.Page
    {
     protected void Page_Load(object sender, EventArgs e)
    {
    string[] excel = new string[250];
    DataTable dtt = (DataTable)Session["griddata"];  //griddata is the gridview data from another page        
    for (int i = 0; i < dtt.Columns.Count; i++)
    {
        excel[i] = dtt.Columns[i].ColumnName;
    }
    Session["exceldata"] = excel;
    ArrayList mylist= (ArrayList)Session["exceldata"];
    DropDownList drd = (DropDownList)GridView2.FindControl("DrdDatabase");
    drd.DataSource = mylist;
    drd.DataTextField = "GridView";
    drd.DataBind();
    }

提前致谢:)

2 个答案:

答案 0 :(得分:1)

以下是您可以用来填充下拉列表的逻辑。 - &GT;

Loop at the array.
{
 For each item in array
   {
    add item to dropdownlist.items
   }
}

很抱歉没有提供确切的代码,因为我现在没有.net编辑器,但您可以使用逻辑来实现它。

问候。

答案 1 :(得分:0)

您可以简单地循环它并以编程方式添加ListItems

DropDownList drd = (DropDownList)GridView1.FindControl("DrdDatabase");
foreach(string colName in mylist)
    drd.Items.Add(new ListItem( colName ));

但是,您确定通过DropDownList找到了GridView1.FindControl吗?我假设你在那里得到NullRefernceException。然后你需要告诉我们它到底在哪里。

如果它位于TemplateField的{​​{1}},您应该使用GridView事件:

RowDataBound