2014-11-26 2 views
1

У меня есть это в файле aspx.Текстовое поле внутри панели обновлений не обновляется

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" > 
         <ContentTemplate> 
      <asp:Label ID="Label1" runat="server" ></asp:Label> 
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
      <asp:Button ID="Button1" runat="server" Text="In side update panel" onclick="Button1_Click" />    
     </ContentTemplate> 
    </asp:UpdatePanel> 

и в коде позади меня есть этот

protected void Page_Load(object sender, EventArgs e) 
{ 

    Label1.Text = DateTime.Now.ToString(); 
    TextBox1.Text = "Some Text"; 
} 

protected void Button1_Click(object sender, EventArgs e) 
{ 

    UpdatePanel1.Update(); 
} 

Однако на Button1_Click я могу увидеть изменения времени, но textbox1 не обновляется. Я пробовал триггеры и другие трюки, но ничего не работает. В принципе, я хочу обновить все элементы управления на панели обновления с помощью кнопки button_click. Я не знаю, чего здесь не хватает.

+0

Вы можете уточнить Alittle больше «но TextBox1 не обновляется»? что вы ожидаете? и что на самом деле происходит? – alejosoft

+0

alejosoft - Спасибо. Я ожидаю, что значение текстового поля станет пустым. – Shankar

ответ

2

Вы не изменяете значение TextBox. :)

Это всегда «Some Text», потому что в вашей Page_Load вы установите его для этого текста. Попробуйте добавить отметку времени или в событии клика, попробуйте заменить текст.

E.g.

protected void Button1_Click(object sender, EventArgs e) 
{ 
    TextBox1.Text = "Some Text 1..."; 
    UpdatePanel1.Update(); 
} 

Используйте это в случае щелчка, если вы хотите, чтобы сделать его пустым

TextBox1.Text = string.Empty; 
+0

Я понял, о чем вы говорите. На самом деле у меня есть дюжина элементов управления внутри панели обновления, заполненной НЕ на загрузке страницы, но через некоторую другую кнопку. Теперь, когда я запускаю UpdatePanel1.Update(); Я не вижу, чтобы эти элементы управления обновлялись с пустыми значениями. Должен ли я использовать string.empty для каждого из этих элементов управления? – Shankar

+1

Да, вам это не удастся автоматически очистить – Sam

+0

Наша основная проблема заключалась в том, что если пользователь заполняет текстовые поля на панели и выбирает закрытие панели без сохранения каких-либо данных; панель будет отображать старые значения в последующей панели1.visible = true. Итак, мы сделали это так: Formview1.databind() затем очищает все значения. Как вы могли заметить, контейнер Formview1 не имеет никакой цели, кроме очистки данных. – Shankar

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