问题已解决。
<script type="text/javascript">
$(document).ready(function () {
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(showtrailer);
showtrailer();
});
function showtrailer() {
$(".fancyYoutube").fancybox({
'transitionIn': 'elastic',
'transitionOut': 'fade',
'width': 680,
'height': 495,
'type': 'swf'
});
}
</script>
我的列表视图位于更新面板内,因为我必须编写这些代码。从 asp.net 论坛获得帮助,链接是 这里
如果您的分页是异步的,则新获取的 DOM 元素将不会被
$(".fancyYoutube")
捕获,因为这只在 DOMready 上运行一次。您可以使用 .delegate()
方法创建一个更通用的事件处理程序,用于处理动态添加的元素。
编辑
事实上,再看一遍,
.delegate()
方法可能行不通,因为.fancybox()
函数不是一个事件。在这种情况下,您应该找到分页完成时执行的回调函数(这将是获取新 AJAX 响应并将其注入 DOM 的函数),然后再次调用 .fancybox()
,传入 AJAX响应 HTML。
您可以发布您的分页代码吗?我也许可以更清楚地帮助你!
ObjectData源代码
<asp:ObjectDataSource ID="ObjHindiList" runat="server" SelectMethod="GetAllList"
TypeName="Movie.Repositories.MovieDetailRepository"
OldValuesParameterFormatString="original_{0}">
<SelectParameters>
<asp:Parameter DefaultValue="Hindi" Name="movielanguage" Type="String" />
</SelectParameters>
</asp:ObjectDataSource>
现在列表视图代码中包含数据分页器。
<asp:ListView ID="ListView1" DataKeyNames="MovieId" runat="server"
DataSourceID="ObjHindiMovieList" onitemcreated="ListView1_ItemCreated"
onitemdatabound="ListView1_ItemDataBound" EnableViewState="false">
<LayoutTemplate>
<table class="AllMovieList">
<tbody class="tablebody">
<tr id="itemplaceholder" runat="server" class="trd">
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="2">
<div class="CustomDataPager">
<asp:DataPager ID="dpgGallery" PagedControlID="ListView1" runat="server" PageSize="10">
<Fields>
<asp:NextPreviousPagerField ButtonCssClass="command" FirstPageText="« Previous" PreviousPageText="« Previous"
RenderDisabledButtonsAsLabels="false" ShowFirstPageButton="false" ShowPreviousPageButton="true"
ShowLastPageButton="false" ShowNextPageButton="false" RenderNonBreakingSpacesBetweenControls="False" />
<asp:NumericPagerField CurrentPageLabelCssClass="current" NextPreviousButtonCssClass="next"
RenderNonBreakingSpacesBetweenControls="False" />
<asp:NextPreviousPagerField ButtonCssClass="command" LastPageText="›" NextPageText="Next »"
RenderDisabledButtonsAsLabels="false" ShowFirstPageButton="false" ShowPreviousPageButton="false"
ShowLastPageButton="false" ShowNextPageButton="true" RenderNonBreakingSpacesBetweenControls="False" />
</Fields>
</asp:DataPager>
</div>
</td>
</tr>
</tfoot>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr class="trd">
<td valign="top" style="width: 100px">
<asp:Image ID="Image1" ImageUrl='<%#Eval("MovieThumbNailImageUrl")%>' runat="server" />
</td>
<td valign="top" style="width: 600px">
<table class="InnerList">
<tr class="InnerTrRow">
<td colspan="2">
<div style="float: left">
<asp:Label ID="lblmovieName" runat="server" Text='<%#Eval("MovieName")%>'></asp:Label>
</div>
<div style="float: right">
<asp:Label ID="lbldate" runat="server" Text='<%#Eval("ReleaseDate","{0:dd-MMM-yy}")%>'></asp:Label>
</div>
</td>
</tr>
<tr valign="top">
<td colspan="2">
<asp:LinkButton CssClass="linkbutton" ID="lnkabout" runat="server" OnClick="lnkabout_Click" Text="About Movie"></asp:LinkButton> |
<asp:LinkButton CssClass="linkbutton" ID="lnkGallery" runat="server" Text="Photos"></asp:LinkButton> |
<a class="fancyYoutube" href='<%#Eval("TrailerUrl") %>'>View Trailer</a>
</td>
</tr>
<tr valign="top">
<td>
<b>Director</b>
</td>
<td>
<asp:Label ID="lblDirector" runat="server" Text='<%#Eval("Director") %>'></asp:Label>
</td>
</tr>
<tr>
<td valign="top">
<b>Producer</b>
</td>
<td>
<asp:Label ID="Label1" runat="server" Text='<%#Eval("Producer") %>'></asp:Label>
</td>
</tr>
<tr valign="top">
<td>
<b>Staring</b>
</td>
<td>
<asp:Label ID="lblstarring" runat="server" Text='<%#Eval("Cast") %>'></asp:Label>
</td>
</tr>
</table>
</td>
</tr>
</ItemTemplate>
<ItemSeparatorTemplate>
<tr style="width: 600px">
<td colspan="2">
<div style="border-top: solid 1px #FFF; width: 100%">
</div>
</td>
</tr>
</ItemSeparatorTemplate>
</asp:ListView>
并且在后面的代码中我没有编写任何用于分页的内容。