jQuery选择器和DataPager不能共存! (ASP .NET)

时间:2010-10-05 09:31:31

标签: asp.net jquery listview modal-dialog datapager

我正在使用带有MS SQL数据库的ASP .NET ListView。我使用ListView来显示信息,在列表视图中,有一个超链接可以打开jQuery模式对话框中特定记录的编辑窗口。

<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通过获取名为“Link”的每个项目的链接并将其与对话框相关联来工作。

<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中的第一个数据绑定项的href(就像普通页面一样)。但是,如果我删除jQuery代码,分页工作原样应该但我没有得到编辑的整洁的模态对话框:(

为什么这些不能相互存在的任何想法? Thanx提前很多:))

更新:不起作用的是他们不能和平共处。如果我删除jQuery代码,DataPager工作正常,但我将丢失我的模态对话框进行编辑。如果我把jQuery代码放回去,模态对话框工作正常,但DataPager没有:(

1 个答案:

答案 0 :(得分:0)

我的猜测是链接选择器可能正在选择数据寻呼机链接。 您可以尝试$("a[name='Link']").each(..注意属性值周围的单引号。

或者,为什么不使用id或类选择器。例如:

<a id="editLink" ...

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