【发布时间】:2016-02-29 20:35:43
【问题描述】:
我有一个带有一些下拉列表和文本框的简单网络表单。我试图通过循环控制来获取所有元素的值。 (请注意,我假设我不知道元素的名称/ID,因此我试图遍历它们以获取信息并将其存储在数据库中)但是,当我循环通过控件时,即使计数为 5有 4 个输入元素,控件由 System.Web.UI.LiteralControl 表示,而不是 System.Web.UI.WebControls.TextBox 或 System.Web.UI.WebControls.dropdown
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="Datepicker/jquery-1.7.js" type="text/javascript"></script>
<script src="Datepicker/jquery-ui.js" type="text/javascript"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" />
<script>
$(function () {
$("#targetDueDate").datepicker();
});
</script>
<script>
$(function () {
$("#targetdeliveryoffiles").datepicker();
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<table>
<tr>
<td>Tier:
</td>
<td>
<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>
</td>
</tr>
<tr>
<td>Author:
</td>
<td>
<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>
</td>
</tr>
<tr>
<td>Quotation For:
</td>
<td>
<asp:TextBox ID="quotationFor" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>Previous Est #:</td>
<td>
<asp:TextBox ID="previousEst" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1"
ControlToValidate="previousEst"
ValidationExpression="\d+"
Display="Dynamic"
EnableClientScript="true"
ErrorMessage="Please enter numbers only"
runat="server" ValidationGroup="a" ForeColor="Red" />
</td>
</tr>
</table>
<br />
<div style="text-align: center; width: 327px;">
<asp:Button ID="submit" runat="server" Text="Submit" CssClass="btnsubmit" ValidationGroup="a" OnClick="submit_Click" />
</div>
</div>
</form>
</body>
</html>
onsubmit 代码
protected void submit_Click(object sender, EventArgs e)
{
foreach(Control c in controls)
{
if(c is System.Web.UI.WebControls.TextBox)
{
/// Do Something
}
}
}
我做错了什么?如何遍历元素以获取它们的值? (也是ID,因为我需要将两者都存储在数据库中)
【问题讨论】: