没有触发按钮的ASP.NET Ajax文本框

时间:2011-08-04 11:18:00

标签: asp.net ajax

嘿,我只是想知道我的语法是否错误

<asp:UpdatePanel ID="UpdatePanel2" 
                        runat="server" 
                        UpdateMode="Always">
                        <ContentTemplate>
        <asp:textbox id="searchProductName" runat="server"></asp:textBox> <asp:Button ID="btnProductSearch" runat="server" Text="Search Product Name"  CssClass="search" OnClick="ProductSearch_Click"  UseSubmitBehavior="true" CausesValidation="false" />
    </ContentTemplate>
    <Triggers>
                 <asp:AsyncPostBackTrigger ControlID="btnProductSearch" EventName="Click" />
            </Triggers>
            </asp:UpdatePanel>

和我的OnClick方法

Protected Sub ProductSearch_Click(ByVal sender As Object, ByVal e As EventArgs)
    ' Filter by ProductName
    If searchProductName.Text.Length > 0 Then
        srcProductListPerCustomer.FilterExpression = " (productName like '%" + searchProductName.Text.ToString & "%')"
        productListTable.DataBind()
    Else
        srcProductListPerCustomer.FilterExpression = ""
        productListTable.DataBind()
    End If

End Sub

当我点击按钮时,问题是什么都没发生。没有Ajax的按钮工作正常

1 个答案:

答案 0 :(得分:0)

您的按钮不需要位于UpdatePanelUpdatePanel中的控件应该是要异步更新的控件。将UpdatePanel放在您正在更新的GridView周围,并以相同的方式使用AsyncPostBackTrigger

最好让UdpatePanel尽可能小;其中的控件越少,从服务器发回的HTML就越少(带宽越少,请求/响应时间越快)。 PostBackTriggers可以引用UpdatePanel外部的控件而没有任何问题。