На основе выбранного ответа в этом сообщении Отображение записей, сгруппированных по месяцам и годам в asp.net , у меня есть модификация для работы с.
В подпрограмме rpt_RowDataBound вместо использования объекта FileInfo мне нужно использовать значение базы данных («statusupdate»).
If month <> TryCast(e.Item.DataItem, FileInfo).CreationTime.Month OrElse year <> TryCast(e.Item.DataItem, FileInfo).CreationTime.Year Then
Как заменить "FileInfo
" в приведенной выше строке кода на datarow("statusupdate")
Код:
HTML:
<asp:Repeater ID="rpt" runat="server" OnItemDataBound="rpt_RowDataBound" Visible="true">
<ItemTemplate>
<table width="100%" runat="server" visible="true" id="headerTable">
<tr>
<td colspan="3" style="color: White;" class="TextFont"><asp:Label ID="headerTitle" runat="server"></asp:Label></td>
</tr>
<tr>
<td Font-Size="Smaller" align="center" style="width:10%; background-color: #3A4F63; color: White;">View<br>Record</td>
<td Font-Size="Smaller" align="center" style="width:20%; background-color: #3A4F63; color: White;">ManagerID</td>
<td Font-Size="Smaller" style="width:20%; background-color: #3A4F63; color: White;">DBCost</td>
<td Font-Size="Smaller" style="width:20%; background-color: #3A4F63; color: White;">GroupID</td>
<td Font-Size="Smaller" style="width:20%; background-color: #3A4F63; color: White;">Updated</td>
<td Font-Size="Smaller" style="width:20%; background-color: #3A4F63; color: White;">RepID</td>
</tr>
</table>
<table width="100%" border="1">
<tr>
<td style="width:10%;" align="center"><asp:Label ID="lblISONum" runat="server"></asp:Label>
<asp:HyperLink ID="imgFileType" ImageUrl="images/mag.gif" NavigateUrl='<%# SetNavigateUrl(Eval("RecID")) %>' runat="server"></asp:HyperLink>
</td>
<td style="width:15%;"><asp:Label Font-Size="Smaller" ID="lblMID" runat="server" Text='<%#Eval("managerid") %>'></asp:Label></td>
<td style="width:20%;"><asp:Label Font-Size="Smaller" ID="lblDBA" runat="server" Text='<%#Eval("dbCost") %>'></asp:Label></td>
<td style="width:20%;"><asp:Label Font-Size="Smaller" ID="lblGroup" runat="server" Text='<%#Eval("GroupID") %>'></asp:Label></td>
<td style="width:20%;"><asp:Label Font-Size="Smaller" ID="lblStatus" runat="server" Text='<%#Eval("statusdate") %>'></asp:Label></td>
<td style="width:20%;"><asp:Label Font-Size="Smaller" ID="lblSalesRep" runat="server" Text='<%#Eval("SalesRepID") %>'></asp:Label></td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
Код сзади:
Protected Sub rpt_RowDataBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs)
If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then
If month <> TryCast(e.Item.DataItem, FileInfo).CreationTime.Month OrElse year <> TryCast(e.Item.DataItem, FileInfo).CreationTime.Year Then
month = TryCast(e.Item.DataItem, FileInfo).CreationTime.Month
year = TryCast(e.Item.DataItem, FileInfo).CreationTime.Year
e.Item.FindControl("headerTable").Visible = True
TryCast(e.Item.FindControl("headerTitle"), Label).Text = MonthName(TryCast(e.Item.DataItem, FileInfo).CreationTime.Month()) & " " & TryCast(e.Item.DataItem, FileInfo).CreationTime.Year()
Else
e.Item.FindControl("headerTable").Visible = False
End If
End If
End Sub
Событие Page_Load:
Dim dt As DataTable = New DataTable()
Dim da As SqlDataAdapter = New SqlDataAdapter(strSQL, myConnection)
da.Fill(dt)
rpt.DataSource = dt
rpt.DataBind()