我想清除“更新”面板中的“文本”字段的值,但由于更新面板,值未被清除。它没有在.aspx中的Update面板中找到声明的TextBox控件。因此,当DropDown选择索引更改时,我想重置文本字段值。有人可以帮帮我吗?
这是用于清除文本字段值的C#代码:
void ClearInputs(ControlCollection ctrls)
{
foreach (Control ctrl in ctrls)
{
if (ctrl is TextBox)
((TextBox)ctrl).Text = String.Empty;
ClearInputs(ctrls.Controls);
}
}
答案 0 :(得分:0)
在updatepanel中使用
查找文本框 TextBox tb = (TextBox)updatepanel1.FindControl("textbboxid");
使用更新面板模式conditional
并在清理文本框后执行updatepanel1.Update();
答案 1 :(得分:0)
试试这个:
public void CleartextBoxes(Control parent)
{
foreach (Control x in parent.Controls)
{
if ((x.GetType() == typeof(TextBox)))
{
((TextBox)(x)).Text = "";
}
if (x.HasControls())
{
CleartextBoxes(x);
}
}
}
在您的下拉更改事件中将此函数调用为:
CleartextBoxes(this);
答案 2 :(得分:0)
好试试这个,你有更新面板,里面有20个文本框。在“更新”面板中,将所有文本框放在一个div中,如下所示:
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager2" runat="server" ScriptMode="Release"></asp:ScriptManager>
<asp:UpdatePanel runat="server" ID="div_d2">
<ContentTemplate>
<div runat="server" id="div_d">
<asp:TextBox runat="server" ID="txt1">
</asp:TextBox>
<asp:TextBox runat="server" ID="txt2"></asp:TextBox>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button runat="server" ID="btnClear" Text="dasdas" OnClick="btnClear_Click" />
</form>
当文本框在div中时,清晰的代码将像我给你看的这个例子一样工作:
protected void btnClear_Click(object sender, EventArgs e)
{
clearText(div_d);
}
private void clearText(Control PanelID)
{
foreach (Control c in PanelID.Controls)
{
if (c is TextBox)
{
TextBox thetextBox = c as TextBox;
thetextBox.Text = "";
}
}
}