0

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 を与えるにはどうすればよいでしょうか?

4

1 に答える 1

0

ユーザーコントロールのクライアントIDモードとそのコントロール内の子コントロールを変更する必要があります........

これを使って

 ClientIDMode="AutoID"
于 2012-12-18T17:41:48.440 に答える