我使用的是带有MS SQL数据库的ASP.NET 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不能:(