6

考虑以下代码:

<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 语句来“伪造”它。我在想……一定有更好的方法……对吧!?

4

2 回答 2

3

你可以这样做来刷新你的更新面板没有按钮:

<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">

您只需要为您的更新面板提供一个 ID(此处为更新面板)

在键盘上或准备就绪时执行该代码。

于 2011-12-09T14:03:20.707 回答
1

该链接有点过时,但应该几乎可以满足您的需求:
http ://remy.supertext.ch/2007/06/see-search-results-as-you-type-an-aspnet-ajax-control/

于 2011-11-23T21:49:27.780 回答