我有一个表单,用户将数据输入到texbox和/或下拉列表中。我不想清除整个表单,我只想清除表格中的控件或整个div中的控件。到目前为止,我的代码是查找行而不是每行的控件。如何遍历表行查找每个控件并清空它?
我不想使用js或jquery ,因为我有自动填充表单上其他项目的回发方法。我也不想指定LastName.Text = string.empty;
。我想循环遍历它们,然后将发现的控件设置为空。
我的示例html:
<div id="container">
<table id="servedTable" runat="server">
<tr>
<td style="width: 20%;">First Name:</td>
<td style="width: 30%;">
<asp:TextBox ID="servedFirstName" runat="server" Width="95%"></asp:TextBox></td>
<td style="width: 20%;">Last Name:</td>
<td style="width: 30%;">
<asp:TextBox ID="servedLastName" runat="server" Width="95%"></asp:TextBox></td>
</tr>
</table>
</div>
用于清除表格控件的代码隐藏:
foreach (Control ctrl in servedTable.Controls)
{
if (ctrl is TextBox)
((TextBox)ctrl).Text = string.Empty;
else if (ctrl is DropDownList)
((DropDownList)ctrl).ClearSelection();
}
答案 0 :(得分:0)
function __construct()
{
$perm = session()->get('perm');
if (!isset($perm[$this->module]) || !$perm[$this->module]) {
Session::flash('message_error', "<span class='glyphicon glyphicon-warning-sign'></span> Access denined!");
return back();
}
}
像这样使用:
public static IEnumerable<T> GetControls<T>(this Control parent) where T : Control
{
foreach (Control control in parent.Controls)
{
if (control is T) yield return control as T;
foreach (Control descendant in GetControls<T>(control))
{
if (control is T)
yield return descendant as T;
}
}
}
根据您的情况来固定文本框和下拉列表
List<TextBox> txt = dv.GetControls<TextBox>().ToList();