上次提出的问题,其中还是遇到很多问题,小弟现在把问题说全,请各位帮忙,感激
问题如下:
在新增时
输入一个开始时间,一个结束时间,得到这个时间段所有的天数比如:2010-05-10~2010-11-11这个时间段的天数,然后月份显示出来,其中每一个日期还要对应每一周的星期,大致如下图描述:
,在开始日期前的天数不用显示,在结束日期后的日期不用显示,进行新增操作时,如果没有选中一个日期,则提示至少选中一个日期,然后将选中的日期插入数据库,
更新时,从数据库里读出日期信息,并如图所示,把对应日期勾选上,修改后,提交更新,更新数据库,问题大致如下了,谢谢大家帮忙,求具体实例代码,3Q
问题如下:
在新增时
输入一个开始时间,一个结束时间,得到这个时间段所有的天数比如:2010-05-10~2010-11-11这个时间段的天数,然后月份显示出来,其中每一个日期还要对应每一周的星期,大致如下图描述:
,在开始日期前的天数不用显示,在结束日期后的日期不用显示,进行新增操作时,如果没有选中一个日期,则提示至少选中一个日期,然后将选中的日期插入数据库,
更新时,从数据库里读出日期信息,并如图所示,把对应日期勾选上,修改后,提交更新,更新数据库,问题大致如下了,谢谢大家帮忙,求具体实例代码,3Q
OnRowDataBound="gdvAdd_RowDataBound" OnRowCommand="gdvAdd_RowCommand" >
<Columns>
<asp:TemplateField HeaderText="星期日" ShowHeader="False">
<ItemTemplate>
<asp:Button ID="Button1" runat="server" Width=100px CausesValidation="false" CommandName="Sunday"
Text='<%# Eval("Sunday") %>' CommandArgument='<%# Eval("Sunday") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="星期一" ShowHeader="False">
<ItemTemplate>
<asp:Button ID="Button2" runat="server" Width=100px CausesValidation="false" CommandName="Monday"
Text='<%#Eval("Monday")%>' CommandArgument='<%# Eval("Monday") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="星期二" ShowHeader="False">
<ItemTemplate>
<asp:Button ID="Button3" runat="server" Width=100px CausesValidation="false" CommandName="Tuesday"
Text='<%# Eval("Tuesday") %>' CommandArgument='<%# Eval("Tuesday") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="星期三" ShowHeader="False">
<ItemTemplate>
<asp:Button ID="Button4" runat="server" Width=100px CausesValidation="false" CommandName="Wednesday"
Text='<%# Eval("Wednesday") %>' CommandArgument='<%# Eval("Wednesday") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="星期四" ShowHeader="False">
<ItemTemplate>
<asp:Button ID="Button5" runat="server" Width=100px CausesValidation="false" CommandName="Thursday"
Text='<%# Eval("Thursday") %>' CommandArgument='<%# Eval("Thursday") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="星期五" ShowHeader="False">
<ItemTemplate>
<asp:Button ID="Button6" runat="server" Width=100px CausesValidation="false" CommandName="Friday"
Text='<%# Eval("Friday") %>' CommandArgument='<%# Eval("Friday") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="星期六" ShowHeader="False">
<ItemTemplate>
<asp:Button ID="Button7" runat="server" Width=100px CausesValidation="false" CommandName="Saturday"
Text='<%# Eval("Saturday") %>' CommandArgument='<%# Eval("Saturday") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
{
string Mast_ID = Request[RequestKey.nowEdit];
m_MasterTable = m_bllMasterTable.GetModel(Convert.ToInt64(Mast_ID));
string Mast_StartDate = m_MasterTable.Mast_StartDate.ToString();
string Mast_EndDate = m_MasterTable.Mast_EndDate.ToString(); DateTime dtime =DateTime.Parse( m_MasterTable.Mast_StartDate.ToString());
Label2.Text = dtime.ToLongDateString();
ViewState["Table_Date"] = dtime; dataBind(sender, e);
DateTime s1 = DateTime.Parse(Mast_StartDate);
DateTime s2 = DateTime.Parse(Mast_EndDate); int count = int.Parse(ClsSchedulingSet.DateTimeManger.DateDiff(Business.Scheduling.ClsSchedulingSet.DateInterval.Day, s1, s2).ToString()); DataTable dt = new DataTable();
dt.Columns.Add("Sunday");
dt.Columns.Add("Monday");
dt.Columns.Add("Tuesday");
dt.Columns.Add("Wednesday");
dt.Columns.Add("Thursday");
dt.Columns.Add("Friday");
dt.Columns.Add("Saturday");
DataRow dr = dt.NewRow();
for (int i = 0; i < count + 1; i++)
{
switch (s1.AddDays(i).DayOfWeek)
{
case DayOfWeek.Sunday:
dr["Sunday"] = s1.AddDays(i).ToLongDateString();
break;
case DayOfWeek.Monday:
dr["Monday"] = s1.AddDays(i).ToLongDateString();
break;
case DayOfWeek.Tuesday:
dr["Tuesday"] = s1.AddDays(i).ToLongDateString();
break;
case DayOfWeek.Wednesday:
dr["Wednesday"] = s1.AddDays(i).ToLongDateString();
break;
case DayOfWeek.Thursday:
dr["Thursday"] = s1.AddDays(i).ToLongDateString();
break;
case DayOfWeek.Friday:
dr["Friday"] = s1.AddDays(i).ToLongDateString();
break;
case DayOfWeek.Saturday:
dr["Saturday"] = s1.AddDays(i).ToLongDateString();
dt.Rows.Add(dr);
dr = dt.NewRow();
break;
}
if (i == count && s1.AddDays(i).DayOfWeek != DayOfWeek.Saturday)
{
dt.Rows.Add(dr);
break;
} }
gdvAdd.DataSource = dt;
gdvAdd.DataBind(); }
{ Button btn = e.CommandSource as Button;
DateTime Table_Date = DateTime.Parse(btn.Text);
ViewState["Table_Date"] = Table_Date;
dataBind(sender, e);
Label2.Text = Table_Date.ToLongDateString();
}
protected void gdvAdd_RowDataBound(object sender, GridViewRowEventArgs e)
{
for (int i = 1; i <= 7; i++)
{
string t = "Button" + i.ToString();
Button btn = e.Row.FindControl(t) as Button;
if (btn != null)
{
if (btn.Text == "")
{
btn.Visible = false;
}
}
}
}
/// 比较日期相差的天数
/// </summary>
public enum DateInterval
{
Second, Minute, Hour, Day, Week, Month, Quarter, Year
} public sealed class DateTimeManger
{ public static long DateDiff(DateInterval Interval, System.DateTime StartDate, System.DateTime EndDate)
{
long lngDateDiffValue = 0;
System.TimeSpan TS = new System.TimeSpan(EndDate.Ticks - StartDate.Ticks);
switch (Interval)
{
case DateInterval.Second:
lngDateDiffValue = (long)TS.TotalSeconds;
break;
case DateInterval.Minute:
lngDateDiffValue = (long)TS.TotalMinutes;
break;
case DateInterval.Hour:
lngDateDiffValue = (long)TS.TotalHours;
break;
case DateInterval.Day:
lngDateDiffValue = (long)TS.Days;
break;
case DateInterval.Week:
lngDateDiffValue = (long)(TS.Days / 7);
break;
case DateInterval.Month:
lngDateDiffValue = (long)(TS.Days / 30);
break;
case DateInterval.Quarter:
lngDateDiffValue = (long)((TS.Days / 30) / 3);
break;
case DateInterval.Year:
lngDateDiffValue = (long)(TS.Days / 365);
break;
}
return (lngDateDiffValue);
} }
代码如下:protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
ArrayList arr =null; if (ViewState["AttendanceDays"] != null)
{
arr = ViewState["AttendanceDays"] as ArrayList;
}
if (arr == null)
{
arr = new ArrayList();
}
Button btn = e.CommandSource as Button;
if (btn != null)
{
string t = e.CommandArgument.ToString();
if (arr.Contains(t))
{
btn.BackColor = System.Drawing.Color.Empty;
arr.Remove(t);
}
else
{
btn.BackColor = System.Drawing.Color.Red;
arr.Add(t);
}
}
ViewState["AttendanceDays"] = arr;
}
插入时判断就好了
if (ViewState["AttendanceDays"] != null)
{
arr = ViewState["AttendanceDays"] as ArrayList;
}
if (arr != null)
{
foreach (string t in arr)
{
}
}