2014-10-14 3 views
0

У меня есть веб-часть с довольно длинной формой, но для примера давайте использовать DropDownList (DDL) и TextBox (TB). Я хотел бы удалить значение TB, когда индекс DDL изменяется.Удалить текстовое значение TextBox при изменении индекса DropDownList

содержание 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 не удаляется. Это просто не меняется.

EDIT Откат необходим, так как есть некоторые изменения, связанные с изменением индекса, например. существует еще 4 DDL и их изменение стоимости.

+0

Как получить текстовое поле его значение? – Andrei

+0

Этот код работает. Вы уверены, что имеете правильное имя текстового поля? – sjramsay

+0

@Andrei Пользователь устанавливает значение, ничего больше. – Santhos

ответ

2

Используйте UpdatePanel, чтобы обновить ваш контроль пользователя

1

Я думаю, так что вы должны удалить AutoPostBack="True" и использовать

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

+0

Я, вероятно, не объяснил сценарий, который хорошо - см. мое редактирование, - но это не работает (для меня), и я также считаю, что это должно быть достижимо, когда включен автоответчик. – Santhos

Смежные вопросы