Как заполнить динамическое значение выпадающего списка из базы данных?
Привет...
У меня есть один выпадающий список и кнопка Добавить...
Когда пользователь нажимает на кнопку Добавить, он должен добавить еще один выпадающий список..и так далее.
Там,где выпадающее значение не жестко закодировано, значение должно быть извлечено из базы данных.
Кто-нибудь знает, как это сделать?
Что я уже пробовал:
<pre> <asp:GridView ID="Gridview1" runat="server" ShowFooter="true" AutoGenerateColumns="false" HeaderStyle-CssClass ="hiddencol" FooterStyle-CssClass="hiddencol" > <Columns> <asp:TemplateField> <ItemTemplate > <asp:Label ID="Label8" runat="server" Text="HOD "></asp:Label> <asp:DropDownList ID="dd_hod" runat="server" > <asp:ListItem Text="----------select---------" Value="none"></asp:ListItem> </asp:DropDownList> <FooterTemplate> <asp:Button ID="ButtonAdd" runat="server" Text="Add" OnClick="ButtonAdd_Click" /> </FooterTemplate> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>
<pre>private void SetInitialRow() { // string lit1 = "HOD"; DataTable dt = new DataTable(); DataRow dr = null; // dt.Columns.Add(new DataColumn("HOD", typeof(string))); dt.Columns.Add(new DataColumn("Column1", typeof(string))); // dt.Columns.Add(new DataColumn("fourth", typeof(string))); //dt.Columns.Add(new DataColumn("Column8", typeof(string))); dr = dt.NewRow(); //dr["HOD"] = lit1; dr["Column1"] = string.Empty; // dr["fourth"] = lit4; // dr["Column8"] = string.Empty; dt.Rows.Add(dr); //dr = dt.NewRow(); //Store the DataTable in ViewState ViewState["CurrentTable"] = dt; Gridview1.DataSource = dt; Gridview1.DataBind(); } protected void ButtonAdd_Click(object sender, EventArgs e) { AddNewRowToGrid(); } private void AddNewRowToGrid() { int rowIndex = 0; //string lit1 = "HOD1"; if (ViewState["CurrentTable"] != null) { DataTable dtCurrentTable = (DataTable)ViewState["CurrentTable"]; DataRow drCurrentRow = null; if (dtCurrentTable.Rows.Count > 0) { for (int i = 1; i <= dtCurrentTable.Rows.Count; i++) { //extract the TextBox values DropDownList box1 = (DropDownList)Gridview1.Rows[rowIndex].Cells[0].FindControl("dd_hod"); drCurrentRow = dtCurrentTable.NewRow(); // drCurrentRow["HOD"] = lit1; dtCurrentTable.Rows[i - 1]["Column1"] = box1.Text; rowIndex++; } dtCurrentTable.Rows.Add(drCurrentRow); ViewState["CurrentTable"] = dtCurrentTable; Gridview1.DataSource = dtCurrentTable; Gridview1.DataBind(); } } else { Response.Write("ViewState is null"); } //Set Previous Data on Postbacks SetPreviousData(); } private void SetPreviousData() { int rowIndex = 0; if (ViewState["CurrentTable"] != null) { DataTable dt = (DataTable)ViewState["CurrentTable"]; if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { DropDownList box1 = (DropDownList)Gridview1.Rows[rowIndex].Cells[0].FindControl("dd_hod"); box1.Text = dt.Rows[i]["Column1"].ToString(); // box4.Text = dt.Rows[i]["Column8"].ToString(); rowIndex++; } } } }