2015-08-23 5 views
-1

У меня есть следующий код внутри TemplateField из DetailsView:Кнопка не вызывает постбэк

<asp:UpdatePanel runat="server" ID="up1" ChildrenAsTriggers="True" UpdateMode="Conditional"><ContentTemplate> 
<table> 
<tr> 
<td><asp:Button ID="btn1" runat="server" OnClick="btn1_Click" /></td> 
<td><asp:TextBox ID="txt1" runat="server" OnTextChanged="txt1_TextChanged" AutoPostBack="True" /></td> 
</tr> 
</table> 
</ContentTemplate> 
</UpdatePanel> 

Нажатие btn1 не вызывает постбэк и btn1_Click никогда не будет достигнуто, но вызывает все валидаторы на стр.

Изменение txt1 вызывает обратную передачу, и метод достигается, как ожидалось.

Почему нет обратной передачи на кнопку Click?

Я попытался добавить AutoPostBack="True" в btn1 и добавлении Click события как AsyncPostBackTrigger в UpdatePanel. Не помогло.

ответ

0

Вы уверены, что нажатие на кнопку не вызывает обратную передачу? Вы добавили тег ScriptManager перед своим UpdatePanel. Ваш код проекта должен выглядеть так:

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager><asp:UpdatePanel runat="server" ID="up1" ChildrenAsTriggers="True" UpdateMode="Conditional"><ContentTemplate> 
<table> 
<tr> 
<td><asp:Button ID="btn1" runat="server" OnClick="btn1_Click" /></td> 
<td><asp:TextBox ID="txt1" runat="server" OnTextChanged="txt1_TextChanged" AutoPostBack="True" /></td> 
</tr> 
</table> 
</ContentTemplate> 
</asp:UpdatePanel> 
+0

Да, у меня есть ScriptManager. Я поставил точки останова в 'Page_Load', вот как я знаю, нет обратной передачи для кнопки' Button' –

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