0

我正在使用带有 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>

一切正常。之前可以一次性显示所有记录,但随着记录数量的增加,我需要一个分页解决方案。数据页救援!

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

但是现在 DataPager 的控件不工作了!我无法返回、前进或单击页码,因为它将在没有对话框的情况下在 ListView 中打开第一个数据绑定项的 href(就像普通页面一样)。但是,如果我删除 jQuery 代码,分页会正常工作,但我没有得到整洁的模态对话框来进行编辑:(

任何想法为什么这些不能彼此存在?提前感谢很多:)

更新:不起作用的是它们不能和平共存。如果我删除 jQuery 代码,DataPager 工作正常,但我将丢失用于编辑的模态对话框。如果我把 jQuery 代码放回去,模式对话框可以正常工作,但 DataPager 不能:(

4

1 回答 1

0

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

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

<a id="editLink" ...

   $('a#editLink;).each(...
于 2010-10-05T09:40:07.277 回答