我正在使用带有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没有:(
答案 0 :(得分:0)
我的猜测是链接选择器可能正在选择数据寻呼机链接。
您可以尝试$("a[name='Link']").each(..
注意属性值周围的单引号。
或者,为什么不使用id或类选择器。例如:
<a id="editLink" ...
和
$('a#editLink;).each(...