【问题标题】:Delete TextBox Text value when DropDownList index changes当 DropDownList 索引更改时删除 TextBox 文本值
【发布时间】:2014-12-09 11:04:27
【问题描述】:

我有一个表单很长的 Web 部件,但对于示例,我们只使用 DropDownList (DDL) 和 TextBox (TB)。我想在 DDL 的索引更改时删除 TB 的值。

Ascx 内容

<asp:DropDownList ID="ddlStep0" runat="server" CssClass="form-control" OnSelectedIndexChanged="DdlStep0SelectedIndexChanged" AutoPostBack="True" />

<asp:TextBox ID="txtStep0" runat="server" CssClass="form-control" />

背后的代码

protected void Page_Load(object sender, EventArgs e)
{
    if (!this.IsPostBack)
    {
        this.PopulateDDLStep0(); // populates the DDL with ListItems, I believe it does not matter how
    }
}

protected void DdlStep0SelectedIndexChanged(object sender, EventArgs e)
{
    this.txtStep0.Text = string.Empty;
}

我希望上面的代码能按预期工作。但是,当我更改 DDL 选择时,不会删除 Text 值。它根本不会改变。

编辑 回发是必要的,因为还有一些与索引更改相关的更改,例如还有 4 个 DDL,它们的值也发生了变化。

【问题讨论】:

  • 文本框如何接收它的值?
  • 此代码有效。你确定你有正确的文本框名称?
  • @Andrei 用户设置值,仅此而已。
  • @sjramsay 我检查了两次,你确定你使用 asp .net 3.5 吗?
  • 不,我用的是 4.5 但这段代码应该没有什么不同。

标签: asp.net .net-3.5 web-parts asp.net-3.5


【解决方案1】:

使用 UpdatePanel 刷新您的用户控件

【讨论】:

    【解决方案2】:

    我认为你应该删除AutoPostBack="True" 并使用

    if (!isPostback) {this.txtStep0.Text = string.Empty;}

    【讨论】:

    • 我可能没有很好地解释这个场景 - 请参阅我的编辑 - 但这不起作用(对我来说),我也相信当自动回发开启时它必须是可以实现的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-10
    相关资源
    最近更新 更多