Как вызвать UpdatePanel с помощью элемента управления TextBox? - PullRequest
6 голосов
/ 24 ноября 2011

Рассмотрим следующий код:

<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, который нажимает кнопку. Мне интересно ... должен быть лучший способ ... верно!?

Ответы [ 2 ]

3 голосов
/ 09 декабря 2011

Вы можете сделать это, чтобы обновить панель обновлений без кнопки:

<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 вашей панели обновления (updatePanel здесь)

Выполните этот код в keyup или всякий раз, когда вы будете к нему готовы.

1 голос
/ 24 ноября 2011

Ссылка немного устарела, но должна в значительной степени делать то, что вы хотите:
http://remy.supertext.ch/2007/06/see-search-results-as-you-type-an-aspnet-ajax-control/

...