Как использовать датапейджер с повторителем

У меня есть элемент управления Repeater, а внутри элемента управления Repeater у меня есть много элементов управления, таких как gridview, detailsview и некоторые другие элементы управления. Но теперь моя страница становится загроможденной элементами управления, поскольку она повторяется. Я хочу добавить диспетчер данных на свою страницу, чтобы вы могли просматривать все данные в моих элементах управления. например, первая страница будет содержать все элементы в моем репитере с некоторыми данными, вторая страница - все элементы с разными данными.

Вот мой репитер:

<asp:Repeater ID="Repeater1" runat="server"  DataSourceID="SchemeDataSource1">
 <ItemTemplate>
    <table style="border: thin solid #000000"; width: "100%" >
      <tr>
        <td>PRENO
           <asp:Label ID="lblPreno" runat="server" Text='<%# Bind("PRENR") %>'></asp:Label>
            MONTHLY PREMIUM
            <asp:Label ID="lblPrem" runat="server" Text='<%# Bind("PREMIUM") %>'></asp:Label>
        <br />
        </td>
        <td align="right">
         <asp:LinkButton ID="lnkPre" runat="server" 
         ToolTip="Copy Premium To New Scheme" Font-Bold="True" Font-Size="Larger" Visible="true">>></asp:LinkButton>
        </td>
       </tr>

       <tr>
        <td>Relation: [
         <asp:Label ID="lblRel" runat="server" Text='<%# Bind("RELATION") %>'></asp:Label>
        ] UWCODE: [
        <asp:Label ID="lblUw" runat="server" Text='<%# Bind("UWFEECODE") %>'></asp:Label>
       ][
       <asp:Label ID="lblUwDescription" runat="server" Text='<%# Bind("DESCRIPTION") %>'></asp:Label>
       ]
       <br />
       </td>
       </tr>                                                    
       </table>

       <table>
         <tr align="left" valign="top">
          <td align="left">
           <asp:DetailsView ID="dvEarner" runat="server" HeaderText="NO EARNER"
           EmptyDataText="No Results To Display" HeaderStyle-BorderColor="Black"
           HeaderStyle-BorderStyle="Solid" HeaderStyle-BorderWidth="1px"
           BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None"
           BorderWidth="1px" CellPadding="3" CellSpacing="2" EnableViewState="False">
           <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
           <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
           <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center"/>
           <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
           </asp:DetailsView>
                                </td>
                                <td align="left">
                                    <asp:DetailsView ID="dvJVName" runat="server" HeaderText="JV NAME"
                                        HeaderStyle-BorderColor="Black" HeaderStyle-BorderStyle="Solid" HeaderStyle-BorderWidth="1px"
                                        EmptyDataText="JV NAME"
                                        AlternatingRowStyle-BorderStyle="Solid" AlternatingRowStyle-BorderWidth="1px"
                                        BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None"
                                        BorderWidth="1px" CellPadding="3" CellSpacing="2">
                                        <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                        <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                                        <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
                                        <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                        <EmptyDataRowStyle BackColor="#5D7B9D" ForeColor="White" Font-Bold="true" />
                                    </asp:DetailsView>
                                </td>
                                <td align="left">
                                    <asp:DetailsView ID="DetailsView1" runat="server" HeaderText="%"
                                        HeaderStyle-BorderColor="Black" HeaderStyle-BorderStyle="Solid" HeaderStyle-BorderWidth="1px"
                                        EmptyDataText="%"
                                        AlternatingRowStyle-BorderStyle="Solid" AlternatingRowStyle-BorderWidth="1px"
                                        BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None"
                                        BorderWidth="1px" CellPadding="3" CellSpacing="2">
                                        <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                        <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                                        <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
                                        <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                        <EditRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
                                        <EmptyDataRowStyle BackColor="#5D7B9D" ForeColor="White" Font-Bold="true" />
                                    </asp:DetailsView>
                                </td>
                                <td align="left">
                                    <asp:DetailsView ID="dvProduct" runat="server" HeaderText="PRODUCT DETAILS"
                                        HeaderStyle-BorderColor="Black" HeaderStyle-BorderStyle="Solid" HeaderStyle-BorderWidth="1px"
                                        EmptyDataText="No Results To Display"
                                        AlternatingRowStyle-BorderStyle="Solid" AlternatingRowStyle-BorderWidth="1px"
                                        BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None"
                                        BorderWidth="1px" CellPadding="3" CellSpacing="2">
                                        <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                        <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                                        <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
                                        <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                    </asp:DetailsView>
                                </td>
                                <td align="left">
                                    <asp:DetailsView ID="dvFeeDetails" runat="server" HeaderText="ADDITIONAL FEE DETAILS"
                                        HeaderStyle-BorderColor="Black" HeaderStyle-BorderStyle="Solid" HeaderStyle-BorderWidth="1px"
                                        EmptyDataText="No Results To Display"
                                        AlternatingRowStyle-BorderStyle="Solid" AlternatingRowStyle-BorderWidth="1px"
                                        BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None"
                                        BorderWidth="1px" CellPadding="3" CellSpacing="2">
                                        <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                        <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                                        <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
                                        <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                    </asp:DetailsView>
                                    <br />
                                </td>
                            </tr>
                        </table>

             <table>
                             <tr>
                                <td>
                                    <strong><u>UNDERWRITER DETAILS:</u></strong> 
                                    <asp:GridView ID="grdUWDetails" runat="server" ForeColor="#333333" CellPadding="4" AutoGenerateSelectButton="False">
                                        <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                                        <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                        <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                                        <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                        <EmptyDataTemplate>No results to display.</EmptyDataTemplate>
                                    </asp:GridView>
                                    <br />
                                    <hr />
                                </td>
                            </tr>
                        </table>
        </ItemTemplate>
    </asp:Repeater>

Чтобы связать элементы управления в моем репитере:

Private Sub Repeater1_ItemDataBound(ByVal sender As Object, ByVal e As     System.Web.UI.WebControls.RepeaterItemEventArgs) Handles Repeater1.ItemDataBound
If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then
  Dim strPreno As String = DirectCast(e.Item.FindControl("lblPreno"), Label).Text

  Dim dv As DetailsView = DirectCast(e.Item.FindControl("dvEarner"), DetailsView)
  dv.DataSource = fnLoadPremiums(strPreno)
  dv.DataBind()

  Dim dv1 As DetailsView = DirectCast(e.Item.FindControl("dvProduct"), DetailsView)
  dv1.DataSource = fnLoadProduct(strPreno)
  dv1.DataBind()

  Dim dv2 As DetailsView = DirectCast(e.Item.FindControl("dvFeeDetails"), DetailsView)
  dv2.DataSource = fnLoadFeeDetails(strPreno)
  dv2.DataBind()

  Dim grd As GridView = DirectCast(e.Item.FindControl("grdUWDetails"), GridView)

  grd.DataSource = fnLoadGrid(strPreno)
  grd.DataBind()
End If
End Sub

Или, если у вас есть идеи, как этого добиться, мы будем очень признательны.

Я использовал датапейджер, но получил эту ошибку: элемент управления Repeater1 не реализует IPageableItemContainer. Затем я немного поинтересовался, датапейджер работает только со списком. Итак, теперь мне нужен тот же метод, что и для датапейджера, но я не уверен, как этого добиться. Любые идеи?


person Gericke    schedule 22.02.2013    source источник


Ответы (3)


Вы можете расширить Repeater для реализации IPageableItemContainer, вот ссылка на реализацию на кодпроект.

person scripni    schedule 22.02.2013
comment
Я нашел и занят этим, интересно, есть ли другой способ сделать это? - person Gericke; 22.02.2013

Вы можете использовать PagedDatasource для привязки ретранслятора, проверьте эту ссылку:

http://www.dotnetfunda.com/articles/article980-paging-with-repeater-control.aspx

person RedDevil79    schedule 23.02.2013

решил, что проблема будет использовать <ajaxToolkit:Accordion></ajaxToolkit:Accordion> Таким образом, я могу использовать панели, чтобы скрыть повторяющиеся элементы управления.

person Gericke    schedule 26.02.2013