Селектор jQuery и DataPager не могут сосуществовать! (ASP .NET) - PullRequest
0 голосов
/ 05 октября 2010

Я использую ASP .NET ListView с базой данных MS SQL.Я использую ListView для отображения информации, и в виде списка есть гиперссылка, которая открывает окно редактирования для конкретной записи в диалоговом окне jQuery Modal.

<asp:ListView ID="ListView1" runat="server" DataSourceID="SqlDataSource1">

    <LayoutTemplate>
    <div id="itemPlaceholder" runat="server"> </div>
    </LayoutTemplate>
    <ItemTemplate>
    <!--More Items -->
    <a name="Link" href="EditItem.aspx?id=<%# Eval("articleid")%>">Edit</a> 
    <!--More Items -->     
    </ItemTemplate>

    </asp:ListView>
    </div>

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:myConnectionString %>" 
        SelectCommand="SQL-SELECT-STATEMENT">
    </asp:SqlDataSource>

    <div>

И jQuery работает, беря ссылку на каждый элемент с именем «Ссылка» и связывая ее с диалоговым окном.

<script type="text/javascript">


    $(document).ready(function() {
    $("a[name=Link]").each(function() {    


            var $link = $(this);
            var $dialog = $('<div></div>')
                .load($link.attr('href'))
                .dialog({
                    autoOpen: false,
                    title: "Edit Article",
                    width: 500,
                    height: 550
                });

            $link.click(function() {
                $dialog.dialog('open');

                return false;
            });
        });
    });
</script>

Все работало как надо.Раньше все записи можно было показывать за один раз, но по мере того, как количество записей росло, мне нужно было решение для пейджинга.DataPager для спасения!

<asp:DataPager ID="DataPager1" runat="server" PagedControlID="ListView1" PageSize="5">
    <Fields>
    <asp:NextPreviousPagerField />
    <asp:NumericPagerField />
    </Fields>
</asp:DataPager>

Но теперь элементы управления DataPager не работают!Я не могу вернуться, переслать или щелкнуть номер страницы, так как он откроет ссылку на первый элемент с привязкой к данным в ListView без диалогового окна (как обычная страница).Но если я удаляю код jQuery, подкачка работает как надо, но я не получаю аккуратное модальное диалоговое окно для моего редактирования: (

Есть идеи, почему они не могут существовать друг с другом?advance:)

ОБНОВЛЕНИЕ: Что не работает, так это то, что они не могут мирно сосуществовать.Если я удалю код jQuery, DataPager будет работать нормально, но я потеряю модальное диалоговое окно для редактирования.Если я верну код jQuery, модальное диалоговое окно будет работать нормально, а DataPager - нет: (

1 Ответ

0 голосов
/ 05 октября 2010

Я предполагаю, что селектор ссылок, вероятно, выбирает ссылки на пейджер данных. Вы можете попробовать $("a[name='Link']").each(.. отметить одинарные кавычки вокруг значения атрибута.

Альтернативно, почему бы вам не использовать идентификаторы или селекторы классов. Например:

<a id="editLink" ...

и

   $('a#editLink;).each(...
...