功能实现:
节假日维护:为配合国家节假日要求,要求维护全年节假日
界面实现:
首先查询本月的日期,现实在列表中包含2列:是否节假日(模板列checkbox) 和日期
代码:
1。 点击查询 ,列表显示本月的所有日期
protected void Button2_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("date");
DataRow dr;
string year = ddlYear.SelectedValue;
string month =this.ddlMonth.SelectedValue;
DateTime dtStartDate =DateTime.Parse( year + "-" + month + "-01");
DateTime dtEndDate = dtStartDate.AddMonths(1).AddDays(-1);
for (DateTime dtime = dtStartDate; dtime <= dtEndDate; dtime = dtime.AddDays(1))
{
dr=dt.NewRow();
dr[0] = dtime.ToString("yyyy-MM-dd");
dt.Rows.Add(dr);
}
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}
2。 点击复选框,获得复选框的值。同时更新数据库
protected void CheckBox2_CheckedChanged(object sender, EventArgs e)
{
bool ch = ((CheckBox)sender).Checked;
GridViewRow gvr = (GridViewRow)((CheckBox)sender).Parent.Parent;
string strDate = this.GridView1.Rows[gvr.RowIndex].Cells[1].Text.ToString();
string strIsHoliday = ch.ToString();
// LogicLab.Holiday.AddHoliDay(strDate, strIsHoliday); 更新数据库
}
CheckBox2_CheckedChanged为列表的checkBox的CheckedChanged事件
我做项目的难点是在于怎么获得当前选中行 ,后来在网上搜索终于找到答案了,现分享出来,多谢大家支持