2013-02-22 63 views
1

我有一個Repeater控件,並在我的Repeater控件中有很多控件,如gridview,detailsview和一些其他控件。但是現在我的網頁在重複時會變得雜亂無章。我想要實現的是將數據添加器添加到我的頁面,以便您可以翻閱我的控件中的所有數據。例如第一頁將包含一些數據在我的轉發器中的所有項目,第二頁包含具有不同數據的所有項目。如何使用數據轉發器Repeater

這裏是我的Repeater控件:

<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。然後我對此進行了一些研究,datapager僅適用於listview。所以現在我需要與數據手冊相同的方法,但也不知道如何實現這一點。有任何想法嗎?

回答

0

解決這個問題是要使用<ajaxToolkit:Accordion></ajaxToolkit:Accordion> 這樣我可以使用窗格隱藏重複控件。

1

您可以擴展Repeater以實現IPageableItemContainer,這裏是codeproject上實現的鏈接。

+0

我發現它並且很忙,想知道是否有另一種方法做它? – Gericke 2013-02-22 09:13:24

相關問題