この投稿は長らく残っているようです。同じリピータのItemTemplateの[次へ]/[前へ]ボタンを使用してリピータを再バインド
私はネストされたリピータを持つ親リピータを持っています。
私の問題は、私のリピーター(rptTabContent)と内部リピーターもリバウンドするために '次へ'と '前'ボタンを使用しようとしていますが、ItemCommandイベント中にこれらのリンクの状態を操作しようとすると、バインドによって上書きされます。
私がしようとしている「次へ」または「前へ」のいずれかのリンクを一度クリックしてもデータが表示されない場合は、ボタンを無効または有効にすることはできません。
ネストされたリピータは、7列に1週間分のデータを表示します。次のボタンは、次の週のデータと前の週のデータを表示するためのものです。最初のボタンは非アクティブです。
親リピータは、最初にデータ表を含む4つのdivをループするため、再度バインドされます。 1つのリピータで次のボタンが1つクリックされると、すべてのテーブルは次の7日間のデータを表示する必要があります。
各リピータは、同じ数のアイテムを持っています。
最初のページでは、すべてのデータが正しく読み込まれます。
親リピータにバインドする必要があるオブジェクトの日付範囲を計算できるように、最初のアイテムと最後のアイテムの日付を知っています。
HTMLは
<asp:Repeater ID="rptTabContent" runat="server" OnItemCommand="rptTabContent_ItemCommand">
<ItemTemplate>
<div id="<%# Eval("SlotTypeUrl") %>" class="delivery-timetable-container">
<table cellpadding="0" cellspacing="0" border="0">
<asp:Repeater ID="rptDeliverySlots" runat="server">
<ItemTemplate>
<tr class="time-slots">
<th><asp:Label id="lblRowTime" runat="server"></asp:Label></th>
<asp:Repeater ID="rptDeliverySlot" runat="server">
<ItemTemplate>
<td id="tdDay" runat="server">
<cc1:RepeaterRadioButton id="rptrdoDeliverySlot" groupname="del-times" runat="server" />
</td>
</ItemTemplate>
</asp:Repeater>
</tr>
</ItemTemplate>
</asp:Repeater>
<tr>
<td colspan="8"> </td>
</tr>
<tr>
<td colspan="4">
<div class="eco-rollover">
<div>
<img src="icon.gif" />
</div>
</div>
</td>
<td colspan="4">
<asp:LinkButton id="lnkPreviousWeek" enabled="false" runat="server" commandargument="Previous" cssclass="inactive">< Previous week</asp:LinkButton>|
<asp:LinkButton id="lnkNextWeek" runat="server" commandargument="Next" cssclass="active" >Next week ></asp:LinkButton>
</td>
</tr>
</table>
</div>
</ItemTemplate>
</asp:Repeater>
下のマイItemCommandイベントはここです:
Protected Sub rptTabContent_ItemCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterCommandEventArgs)
If (e.Item.ItemType = ListItemType.Item) Or (e.Item.ItemType = ListItemType.AlternatingItem)
Dim filteredProposedDeliveries As New List(Of ProposedDeliverySlotDTO)
Dim firstDate, lastDate As Date
Dim startDate, endDate As Date
If (Session("FirstDeliveryDate") IsNot Nothing) AndAlso (Session("LastDeliveryDate") IsNot Nothing) Then
firstDate = CType(Session("FirstDeliveryDate"), Date)
lastDate = CType(Session("LastDeliveryDate"), Date)
Select Case e.CommandArgument.ToString()
Case "Next"
'Get new startDate using firstDate and store to use next time
'disable next button if startDate > lastDate
Case "Previous"
'Get new startDate from current displayed date and overright stored startdate
'disable previous button if startDate < firstDate
End Select
endDate = startDate.AddDays(7)
End If
'filteredProposedDeliveries = Get object between startDate and EndDate
Dim slots As List(Of SlotType) = PrepareSlotsForBinding(filteredProposedDeliveries)
Dim rptTabContent As Repeater = CType(e.Item.BindingContainer, Repeater)
rptTabContent.DataSource = slots
rptTabContent.DataBind()
End If
End Sub
私は私の '次へ' およびこれらconditons下の '前' リンクを管理するにはどうすればよいです。
感謝
おかげで返信のための非常に。私は転記して以来これについて取り組んでおり、あなたが提案したものと同じ行動をとっています。それは長いポストであることに感謝します。 – w4ymo