Я хочу отобразить своего рода список людей и некоторую информацию, связанную с днем месяца в выбранном интервале, например:
Emp. | 01 | 02 | 03 |
Albert | aaa | bbb | ccc |
Dana | ccc | aaa | bbb |
John | bbb | ccc | aaa |
Я настроил ретранслятор так:
<asp:TextBox ID="txtDataDa" Type="date" runat="server" ToolTip="Data Da" autocomplete="off"></asp:TextBox>
<asp:TextBox ID="txtDataA" Type="date" runat="server" ToolTip="Data A" autocomplete="off"></asp:TextBox>
<asp:Button ID="btnVai" runat="server" Text="Vai" OnClick="btnVai_Click"/>
<asp:Repeater ID="rptParent" runat="server">
<HeaderTemplate>
<table style="width: 100%;">
<tr>
<td>Dip</td>
</HeaderTemplate>
<ItemTemplate>
<td>
<asp:Label ID="lblGiorno" Text='<%# DataBinder.Eval(Container.DataItem, "data", "{0:dd}")%>' runat="server" />
</td>
<%--<asp:Repeater ID="rptChild" runat="server">
<ItemTemplate>
</ItemTemplate>
</asp:Repeater>--%>
</ItemTemplate>
<FooterTemplate>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>
Бит Eval внутри метки получает день из таблицы данных, сгенерированной из начальной и конечной даты, установленной с помощью элемента управления 2 календаря. Я управляю этим с помощью этого бита в коде:
Protected Sub btnVai_Click(sender As Object, e As EventArgs)
Dim data1, data2 As DateTime
data1 = Date.ParseExact(txtDataDa.Text, "yyyy-MM-dd", CultureInfo.CreateSpecificCulture("en-US")).Date
data2 = Date.ParseExact(txtDataA.Text, "yyyy-MM-dd", CultureInfo.CreateSpecificCulture("en-US")).Date
Dim dtGiorni As New DataTable
' Define columns
dtGiorni.Columns.Add("data", GetType(System.DateTime))
dtGiorni.Columns.Add("giorno", GetType(System.String))
' Add a row of data
Dim data As DateTime = data1.AddDays(-1)
Dim ita As Globalization.CultureInfo = New Globalization.CultureInfo("it-IT")
While data < data2
data = data.AddDays(1)
Dim nomeGiorno As String = ita.DateTimeFormat.GetDayName(data.DayOfWeek)
dtGiorni.Rows.Add(data, nomeGiorno.Substring(0, 1).ToUpper() + nomeGiorno.Substring(1))
End While
rptParent.DataSource = dtGiorni
rptParent.DataBind()
End Sub
Если я выберу 1-е марта и 31-е марта, все столбцы заголовков будут отображаться правильно с указанным днем. Теперь я хочу создать неопределенное количество строк на основе результата запроса mssql, чтобы отобразить людей в первом столбце и всю информацию в нужный день. Я думаю, что мне нужно использовать вложенный повторитель, но я не знаю, как настроить его с остальной частью таблицы. Любая помощь, пожалуйста? Спасибо
EDIT:
Я не против использовать другой метод вместо повторителя, но, пожалуйста, дайте подсказку, чтобы начать