enter code here
ページャーを使用してリストビューに項目を表示するユーザー コントロールを構築しています。ユーザー コントロール (SharePoint 2010 Web パーツ) が 1 つしかない場合、次のコードで完全に機能します。
ASCX :
<asp:ListView ID="ListView" runat="server">
<LayoutTemplate>
<table id="table">
<tr id="tableRow">
<td id="column1" class="tableCell">
<div runat="server" id="itemPlaceholder">
</div>
</td>
</tr>
</table>
</LayoutTemplate>
<ItemTemplate>
...
</ItemTemplate>
</asp:ListView>
<div class="pager">
<asp:DataPager ID="DataPager" PagedControlID="ListView" runat="server">
<Fields>
<asp:NextPreviousPagerField ShowFirstPageButton="False" ShowNextPageButton="False"
ShowPreviousPageButton="true" PreviousPageText="<" RenderDisabledButtonsAsLabels="True" />
<asp:NumericPagerField />
<asp:NextPreviousPagerField ShowLastPageButton="False" ShowPreviousPageButton="False"
ShowNextPageButton="true" NextPageText=">" RenderDisabledButtonsAsLabels="True" />
</Fields>
</asp:DataPager
</div>
コードビハインド:
DataPager.PageSize = X;
ListView.DataSource = items.ToList();
ListView.DataBind();
問題は、これらの ascx をページに 2 つ配置すると、すべてのアイテムが最初のリストビューに移動することです。もちろん、異なる ID を持っていないためです。しかし、事前にユーザーコントロールの数を知ることができないため、別の ID を与えるにはどうすればよいでしょうか?