[英]Find ListView, DataPager, ObjectDataSource in Different Content Controls
與嘗試在不同的內容控件中找到我的ASP .NET控件一樣,我發現一些令人沮喪的事情。 對於布局,我需要將ListView放在一個內容控件中,並將DataPager和ObjectDataSource放在另一個內容控件中。
<asp:Content ID="cPagedContent" ContentPlaceHolderID="cphPagedContent" runat="Server">
<asp:MultiView ID="mvPagedContent" runat="server">
<asp:View ID="mvPagedContentDefault" runat="server">
<asp:ListView ID="lvPagedContent" runat="server" ItemPlaceholderID="itemPlaceholder">
<LayoutTemplate>
<asp:PlaceHolder ID="itemPlaceholder" runat="server" />
</LayoutTemplate>
<ItemTemplate>
<div class="hp-post-even">
<h2>
<a href="<%# Eval("QuickLink") %>">
<%# Eval("Title") %></a></h2>
<p>
<%# Eval("Html") %></p>
</div>
</ItemTemplate>
<AlternatingItemTemplate>
<div class="hp-post">
<h2>
<a href="<%# Eval("QuickLink") %>">
<%# Eval("Title") %></a></h2>
<p>
<%# Eval("Html") %></p>
</div>
</AlternatingItemTemplate>
</asp:ListView>
</asp:View>
<asp:View ID="mvPagedContentTaxonomy" runat="server">
</asp:View>
<asp:View ID="mvPagedContentSearch" runat="server">
</asp:View>
</asp:MultiView>
</asp:Content>
<asp:Content ID="cAboveFooter" ContentPlaceHolderID="cphAboveFooter" runat="Server">
<asp:MultiView ID="mvPager" runat="server">
<asp:View ID="mvPagerDefault" runat="server">
<asp:DataPager ID="dpContentPager" runat="server"
PageSize="6">
<Fields>
<asp:NextPreviousPagerField ButtonType="Link" FirstPageText="[First]" PreviousPageText="[Prev]"
ShowNextPageButton="false" ShowLastPageButton="false" RenderDisabledButtonsAsLabels="true"
ShowFirstPageButton="true" />
<asp:NumericPagerField ButtonCount="4" />
<asp:NextPreviousPagerField ButtonType="Link" ShowFirstPageButton="false" ShowPreviousPageButton="false"
NextPageText="[Next]" LastPageText="[Last]" RenderDisabledButtonsAsLabels="true"
ShowLastPageButton="true" />
</Fields>
</asp:DataPager>
<asp:ObjectDataSource ID="odsContent" runat="server" EnablePaging="true" MaximumRowsParameterName="maximumRows"
SelectCountMethod="GetContentCount" SelectMethod="GetContent" StartRowIndexParameterName="startRowIndex" />
</asp:View>
<asp:View ID="mvPagerTaxonomy" runat="server">
</asp:View>
</asp:MultiView>
</asp:Content>
在我的C#文件中,我可以找到ListView控件。 但是我似乎找不到與ListView關聯的DataPager和ObjectDataSource。
這是Page_Load的片段。
ListView listView;
ObjectDataSource objectDataSource;
DataPager dataPager;
listView = mvPagedContentDefault.Controls[0].FindControl("lvPagedContent") as ListView;
objectDataSource = mvPagerDefault.Controls[0].FindControl("odsContent") as ObjectDataSource;
objectDataSource.TypeName = this.GetType().AssemblyQualifiedName;
listView.DataSourceID = objectDataSource.ID;
dataPager = mvPagerDefault.Controls[0].FindControl("dpContentPager") as DataPager;
dataPager.PagedControlID = listView.ID;
關於如何找到這些吸盤的任何想法? 這讓我有點發瘋。
我不明白問題出在哪里。 您有對MultiView
控件的引用,不是嗎? 它具有Views
屬性,該屬性返回MultiView控件中View
控件的集合。 DataPager
和ObjectDataSource
都在第一個視圖中。
var dpContentPager = (DataPager)mvPager.Views[0].FindControl("dpContentPager");
var odsContent = (ObjectDataSource)mvPager.Views[0].FindControl("odsContent");
從MSDN :
使用PagedControlID屬性可以指定包含將由DataPager控件分頁的數據的控件的ID。 指定的控件必須實現IPageableItemContainer接口,並且必須使用與DataPager控件相同的命名容器 。 您可以指定的控件示例是ListView控件。
您可以嘗試創建一個從DataPager
繼承的自定義尋呼機,該尋呼機將覆蓋FindPageableItemContainer
以查找ListView,即使它位於另一個NamingContainer中也是如此。
在這里看看: http : //forums.asp.net/t/1458342.aspx/1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.