我正在使用带有 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 不能:(