C# 从阵列源填充gridview中的dropdownlist

C# 从阵列源填充gridview中的dropdownlist,c#,asp.net,arrays,gridview,C#,Asp.net,Arrays,Gridview,我一直试图从数组源填充gridview中的dropdownlist,但它似乎只读取第一个数组元素。我试着用一个面板来做,结果成功了。这是我的代码 public partial class Default2 : System.Web.UI.Page { DataTable dtnew = new DataTable(); protected void Page_Load(object sender, EventArgs e)

我一直试图从数组源填充gridview中的dropdownlist,但它似乎只读取第一个数组元素。我试着用一个面板来做,结果成功了。这是我的代码

       public partial class Default2 : System.Web.UI.Page
       {
       DataTable dtnew = new DataTable();

        protected void Page_Load(object sender, EventArgs e)
        {
        string[] excel = new string[10];
        DataTable dtt = (DataTable)Session["griddata"];
        for (int i = 0; i < dtt.Columns.Count; i++)
        {
            excel[i] = dtt.Columns[i].ColumnName; //column names from a datatable stored in the array
        }

        Session["exceldata"] = excel;


        string[] sqlcolumn = new string[10];
        DataTable dtt1 = (DataTable)Session["dbasecolumns"];
        for (int j = 0; j < dtt1.Columns.Count; j++)
        {
            sqlcolumn[j] = dtt1.Columns[j].ColumnName; //column names from a datatable stored in the array
        }
        Session["excel"] = sqlcolumn;

        DropDownList drd = new DropDownList();
        dtnew.Columns.Add(new DataColumn("database", typeof(string)));
        dtnew.Columns.Add(new DataColumn("excel", typeof(string)));
       // DataRow dr = new DataRow();
        foreach (String colname in sqlcolumn)
        {


            drd.Items.Add(colname);
          //  drd.Items.Add(new ListItem(colname));


        }

        for (int i = 0; i < sqlcolumn.Length; i++)
        {
            DataRow dr = dtnew.NewRow();
            dtnew.Rows.Add(dr);
            {


                dr["excel"] = string.Empty;
                dr["database"] = drd;
            }

        }
        //Panel1.Controls.Add(drd);


       GridView1.DataSource = dtnew;
       GridView1.DataBind();

    }
    }
public部分类Default2:System.Web.UI.Page
{
DataTable dtnew=新DataTable();
受保护的无效页面加载(对象发送方、事件参数e)
{
字符串[]excel=新字符串[10];
DataTableDTT=(DataTable)会话[“griddata”];
for(int i=0;i
它似乎只使用数组的第一个元素填充了我的GridView列,而且也是一个简单的文本(而不是dropdownlist)。我怎么可能做到这一点呢


提前谢谢

我没有答案,但是你代码中的一些小东西让我很烦。数组excel和sqlcolumn,您为它们指定静态长度,但在下面的循环中,您使用动态表达式。这是错误的,因为如果dtt或dtt1的长度超过10怎么办?在表之后声明这两个数组,并使用dtt.Columns.Count和dtt1.Columns.Count而不是10。您的尝试是错误的。在GridView_DataBound中找到下拉列表,设置它的数据源并绑定它。我无法在GridView_DataBound中使用它,因为我需要在页面加载事件中加载GridView(从其他页面导航),谢谢