在c#中更改下拉列表索引时清除“更新面板”中的TextBox值

时间:2015-06-30 11:15:41

标签: c# asp.net asp.net-ajax

我想清除“更新”面板中的“文本”字段的值,但由于更新面板,值未被清除。它没有在.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);
       }
    }

3 个答案:

答案 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 = "";
            }
        }
    }