<asp:GridView ID="grid1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField='id' HeaderText="Id" Visible="False" />
<asp:BoundField DataField='Name' Visible="True" HeaderText="Full Name"/>
<asp:BoundField HeaderText="Monday" />
<asp:BoundField HeaderText="Tuesday" />
<asp:BoundField HeaderText="Wednesday" />
<asp:BoundField HeaderText="Thursday" />
<asp:BoundField HeaderText="Friday" />
</Columns>
</asp:GridView>
<asp:TextBox ID="tbFirstDate" runat="server"></asp:TextBox>
//在作为此grid1源的DataTable中,我有一个列'date',但在Grid中我需要显示该日期的工作日(例如,2012年8月20日星期一)。我还有一个TextBox(tbFirstDate)定义哪一天是星期一,所以使用该信息我需要计算其余的工作日,日期格式是yyyy-mm-dd
我使用PostreSQL,这是SQL查询:
SELECT * FROM Table1
WHERE id1=212 AND date BETWEEN '20.08.2012' AND '24.08.2012'
ORDER BY date
现在这个结果我想像这样在网格中表示
答案 0 :(得分:1)
所以基本上你的实际问题是如何将DateTime's
DayOfWeek
值更改为指定的第一天的指定距离?
然后你可以使用这个方法:
public static int Weekday(DateTime dt, DayOfWeek startOfWeek)
{
return (dt.DayOfWeek - startOfWeek + 7) % 7;
}
例如,假设用户今天输入以指定Tuesday
是本周的开头:
DateTime value = new DateTime(2012, 8, 20);
DayOfWeek weekday = (DayOfWeek)Weekday(value, DateTime.Now.DayOfWeek);
Console.Write("normally:{0} changed to:{1}", value.DayOfWeek, weekday);
如果确实如此,您只需在RowDataBound
的{{1}}中使用此方法,即可根据{GridView
中的指定日期手动设置标签文本1}}和GridViewRow的TemplateField
中的tbFirstDate
值。使用date
获取对Label的引用。