我有一个简单的Web表单,其中包含多个文本框和下拉列表。我需要一种方法从列表的开头获取所有元素的值。我知道我可以使用textbox1.value单独获取值,但我不知道表单中有多少文本框/下拉列表。 例如
<form id="form1" runat="server">
<div>
Tier:
<asp:DropDownList ID="Tier" runat="server">
<asp:ListItem>Select Tier</asp:ListItem>
<asp:ListItem>Tier1</asp:ListItem>
<asp:ListItem>Tire2</asp:ListItem>
<asp:ListItem>Tier3</asp:ListItem>
</asp:DropDownList>
Author:
<asp:DropDownList ID="Author" runat="server">
<asp:ListItem>Select Author</asp:ListItem>
<asp:ListItem>Author1</asp:ListItem>
<asp:ListItem>Author2</asp:ListItem>
<asp:ListItem>Author3</asp:ListItem>
</asp:DropDownList>
Quotation For:
<asp:TextBox ID="questionfor" runat="server"></asp:TextBox>
</div>
如何获取列表中的值?我如何循环它们?最终目标是将元素Id及其值存储在数据库中。因此,除了价值,我还需要id。例如,在数据库中,我将有两列elementName(即elementID)及其对应的值。
答案 0 :(得分:0)
这是你可以尝试的东西
Protected void GetControlValues(ControlCollection controls)
{
var holdList = new List<string>();
foreach(Control c in controls)
{
if(c is System.Web.UI.WebControls.TextBox)
{
holdList.Add(c.Text); //this will get the value of the TextBox
}
else if (c.controls.Count > 0)
{
GetControlValues(c.Controls)
}
}
}
如果你想获得ID值,那么你可以检查if(c.ID == textBoxId.ID)
然后将textBoxId.Text添加到List中,如果你知道你正在检查的控件的类型,你可以在这个foreach循环中检查多个。 。