【发布时间】:2014-01-22 16:49:19
【问题描述】:
我根据数据库条目的数量向我的页面添加下拉列表,当我按下按钮时,我想在每个下拉列表中获取选定的值。
我试过了
foreach(DropDownList a in Form.Controls.OfType<DropDownList>())
{
Response.Write(a.SelectedValue);
}
但它在页面上找不到任何下拉列表。下面是我用来添加 dorpdownlists 的代码。
protected void Page_Init()
{
string product = Request.QueryString["product"];
foreach (productoption r in dbcon.GetOption(product))
{
TableRow row = new TableRow();
TableCell cel1 = new TableCell();
TableCell cel2 = new TableCell();
DropDownList dropdown1 = new DropDownList();
dropdown1.CssClass = "productdropdown";
foreach (suboption f in dbcon.GetSubOption(r.ProductOptionID))
{
dropdown1.Items.Add(f.SubOptionName + " +$" +f.SubOptionPrice);
}
cel1.Text = "<b>" + r.OptionName + "</b>";
cel2.Controls.Add(dropdown1);
row.Cells.Add(cel1);
row.Cells.Add(cel2);
Table1.Rows.Add(row);
}
TableRow row2 = new TableRow();
TableCell cell3 = new TableCell();
Button cartbutton = new Button();
cartbutton.ID = product;
cartbutton.CssClass = "btn_addcart";
cartbutton.Click += cartbutton_OnClick;
cartbutton.Text = "Add to cart";
cell3.Controls.Add(cartbutton);
row2.Cells.Add(cell3);
Table1.Rows.Add(row2);
}
【问题讨论】:
-
在 page_init 中未找到
Form.Controls.Add(dropdown1)。你在哪里写代码在你的页面上添加DropDownList。 -
我一直发现,在创建动态控件时(在运行时创建),以后引用这些控件的最好方法是在创建它们的时候,将它们添加到私有本地字典中,然后将其命名为控制一些你至少会知道模式的东西,这样你就可以用它作为关键。如果您要创建多个相同类型的控件,请使用 for 循环并使用 String.Format("{0}{1}", "controlType", loopVariable)。
-
@Sameer 在 page_init 视图状态下的好答案尚未加载。
-
@Sameer @Liran 在循环里面有一个 Table1.Rows.Add(row);可能是
<asp:Table />放置在.aspx 页面上的<form></form>标记之间。 -
试试这个可能有用
foreach (TabelRow row in Table1.Rows) { DropDownList a = (DropDownList)row.Cells[1].Controls[0]; Response.Write(a.SelectedValue); }