我一直在尝试使用数组元素在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();
}
提前致谢:)
答案 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