为什么我的按钮在更新面板中不起作用,但是如果按“输入”键它可以正常工作?
<asp:ScriptManager ID="Sqrpt1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel UpdateMode="Always" ChildrenAsTriggers="true" ID="updpan" runat="server"><ContentTemplate>
<fieldset>
<asp:Panel runat="server" ID="ClientSearchPa" DefaultButton="SearchClientPopup">
<asp:TextBox ID="SearchClientBox" runat="server"></asp:TextBox>
<asp:Button ID="SearchClientPopup" runat="server" Text="Search"
onclick="SearchClientPopup_Click" /></asp:Panel>
<br />
<asp:ListBox ID="Clients" runat="server" Height="341px" Width="682px"></asp:ListBox>
<br />
<br />
<asp:Label ID="Label3" runat="server" Text="Label"></asp:Label>
<asp:Button ID="ClientSelect" runat="server" OnClick="ClientSelect_Click" Text="button" />
</fieldset>
</ContentTemplate>
</asp:UpdatePanel>
答案 0 :(得分:1)
您的代码完全没问题,按钮在服务器端触发事件会更改服务器事件中的某些控件值。您可能没有注意到ajax调用的快速响应
protected void SearchClientPopup_Click(object sender, EventArgs e)
{
SearchClientBox.Text = "Hello ajax SearchClient clicked";
}
protected void ClientSelect_Click(object sender, EventArgs e)
{
SearchClientBox.Text = "Hello ajax ClientSelect cliecked ";
}
答案 1 :(得分:0)
<asp:Panel runat="server" ID="ClientSearchPa" DefaultButton="SearchClientPopup">
<asp:TextBox ID="SearchClientBox" runat="server"></asp:TextBox>
<asp:Button ID="SearchClientPopup" runat="server" Text="Search" onclick=
“SearchClientPopup_Click”/&gt;
</asp:Panel>
此处DefaultButton设置为SearchClientPopup.So如果焦点位于Panel中的任何控件上,则Enter键将起作用,而SearchClientPopup将触发click事件。
<asp:Button ID="ClientSelect" runat="server" OnClick="ClientSelect_Click" Text="button" />
此按钮不在面板控件内。因此,您必须通过单击
显式触发它