我有一个很长的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选择时不会删除文本值。它根本不会改变。
修改 回发是必要的,因为有一些更改与索引更改有关,例如还有4个DDL及其价值变化。
答案 0 :(得分:2)
使用UpdatePanel刷新用户控件
答案 1 :(得分:1)
我认为你应该删除AutoPostBack="True"
并使用
if (!isPostback) {this.txtStep0.Text = string.Empty;}