我在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
会导致回发,并且按预期方式达到该方法。
为什么Button Click上没有回发?
我尝试将AutoPostBack="True"
添加到btn1
,并将Click
事件添加为AsyncPostBackTrigger
的{{1}}。没有帮助。
答案 0 :(得分: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>