配列ソースからグリッドビューにドロップダウンリストを入力しようとしましたが、最初の配列要素だけを読み取っているようです。パネルでやってみましたが、うまくいきました。これが私のコードです。
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();
}
}
GridView 列を配列の最初の要素だけで埋めているようで、それも (ドロップダウンリストではなく) 単純なテキストとして埋めているようです。どうすればこれを達成できますか。
前もって感謝します