Asp.net 如何使用带中继器的数据寻呼机
我有一个Repeater控件,在我的Repeater控件中有很多控件,比如gridview、detailsview和一些其他控件。但现在我的页面在重复时会被控件弄得乱七八糟。我想要实现的是将datapager添加到我的页面中,这样您就可以对我控件中的所有数据进行分页。例如,第一页将包含我的中继器中的所有项目和一些数据,第二页将包含所有项目和不同的数据 这是我的中继器控制:Asp.net 如何使用带中继器的数据寻呼机,asp.net,vb.net,repeater,datapager,Asp.net,Vb.net,Repeater,Datapager,我有一个Repeater控件,在我的Repeater控件中有很多控件,比如gridview、detailsview和一些其他控件。但现在我的页面在重复时会被控件弄得乱七八糟。我想要实现的是将datapager添加到我的页面中,这样您就可以对我控件中的所有数据进行分页。例如,第一页将包含我的中继器中的所有项目和一些数据,第二页将包含所有项目和不同的数据 这是我的中继器控制: <asp:Repeater ID="Repeater1" runat="server" DataSourceID="
<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>
或者,如果您有任何想法如何实现这一点,将不胜感激
我使用了datapager,但出现以下错误:控件“Repeater1”未实现IPageableItemContainer。然后我对此做了一些研究,datapager只适用于listview。所以现在我想要与datapager相同的方法,但不确定如何实现这一点。有什么想法吗?您可以扩展
中继器来实现IPageableItemContainer
,这里有一个指向上实现的链接。您可以使用PagedDatasource绑定中继器,请检查此链接:
解决了问题,将使用
这样,我可以使用窗格隐藏重复的控件。我找到了它,正在忙着处理它,想知道是否有其他方法可以做到这一点?
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