考虑以下代码:
<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语句"伪造"它,点击按钮。我想知道……一定有更好的办法……对吧! ?
你可以这样做来刷新你的updatepanel而不需要按钮:
<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)
在keyup上执行该代码,或者在你准备好了的时候执行。
链接有点过时了,但应该可以满足您的需求:
http://remy.supertext.ch/2007/06/see-search-results-as-you-type-an-aspnet-ajax-control/