考虑以下代码:
<label>Search:</label><asp:TextBox runat="server" ID="search" ClientIDMode="Static" OnKeyUp="$('#searchButton').click();" /><asp:Button runat="server" ID="searchButton" ClientIDMode="Static" /> <asp:UpdatePanel runat="server" UpdateMode="Conditional"> <ContentTemplate> <asp:GridView runat="server" DataSourceID="EntityDataSource1" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="true" PageSize="20" Width="400" /> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="searchButton" /> </Triggers> </asp:UpdatePanel>
该按钮将触发面板更新。我想通过按下搜索字段来触发更新,所以我用单击按钮的jQuery语句“伪造”了它。我想知道…一定有更好的方法吧…!
您可以执行以下操作来刷新您的更新面板,而无需单击按钮:
<script type="text/javascript"> function refreshPanel() { __doPostBack('<%= updatePanel.UniqueID %>', ''); } </script> <label>Search:</label> <asp:TextBox runat="server" ID="search" ClientIDMode="Static" OnKeyUp="refreshPanel();" /> <asp:UpdatePanel runat="server" ID="updatePanel">
您只需要给您的updatepanel一个ID(此处为updatePanel)
在键入命令或准备就绪时执行该代码。