c#UpdatePanel按钮单击将无法正常工作

时间:2012-04-18 10:17:40

标签: c# asp.net c#-2.0

为什么我的按钮在更新面板中不起作用,但是如果按“输入”键它可以正常工作?

        <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>
&nbsp;<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> 

2 个答案:

答案 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> &nbsp;
<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" /> 

此按钮不在面板控件内。因此,您必须通过单击

显式触发它