功能实现:

   节假日维护:为配合国家节假日要求,要求维护全年节假日

 界面实现:

  首先查询本月的日期,现实在列表中包含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事件

 

我做项目的难点是在于怎么获得当前选中行 ,后来在网上搜索终于找到答案了,现分享出来,多谢大家支持