Hi All,
I have the following code and attached a screen shot in the grid the column headers should be sorted as 1 2 3 4 etc and for the text values like holiday and absent the link should be disabled.I need it to be resolved as soon as possible.
I have the following code and attached a screen shot in the grid the column headers should be sorted as 1 2 3 4 etc and for the text values like holiday and absent the link should be disabled.I need it to be resolved as soon as possible.
using System;using System.Collections;using System.Collections.Specialized;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data;using System.Drawing;using System.Diagnostics;using Telerik.Web;using Telerik.Web.UI;using System.Data.SqlClient;using MSI.Emailing;using AttendenceManagement.Business_Layer;namespace AttendenceManagement.Controls{ public partial class AttendenceDetailsGrid : System.Web.UI.UserControl { AttendenceDetailsDAO objAttendenceDetailsDAO = new AttendenceDetailsDAO(); AttendenceDetailsEntities objAttendenceDetailsEntities = new AttendenceDetailsEntities(); public string EmpId = "0MSI1132"; protected void Page_Load(object sender, EventArgs e) { rdpTo.MaxDate = DateTime.Now; rcbxEmployee.EmptyMessage = ""; if (!IsPostBack) { rdpTo.SelectedDate = DateTime.Now.AddDays(-1); rdpFrom.SelectedDate = DateTime.Now.AddMonths(-1); objAttendenceDetailsEntities.EmployeId = EmpId; lblFromdatewithyear.Text = rdpFrom.SelectedDate.Value.Date.ToShortDateString(); lblTodatewithyear.Text = rdpTo.SelectedDate.Value.Date.ToShortDateString(); objAttendenceDetailsEntities.FromDate = Convert.ToDateTime(rdpFrom.SelectedDate); objAttendenceDetailsEntities.ToDate = Convert.ToDateTime(rdpTo.SelectedDate); LoadAttendenceGrid(); LoadRadCboxEmployee(); } } protected void rbtnSelect_Click(object sender, EventArgs e) { ArrayList checkedItems = new ArrayList(); checkedItems = GetCheckedItems(); ArrayList arrlist = new ArrayList(); foreach (RadComboBoxItem item in checkedItems) { arrlist.Add(item.Text); } string[] strEmpId = arrlist.ToArray(typeof(string)) as string[]; string strEmployeeId = string.Join(",", strEmpId); rgAttendenceDetails.Columns.Clear(); lblFromdatewithyear.Text = rdpFrom.SelectedDate.Value.Date.ToShortDateString(); lblTodatewithyear.Text = rdpTo.SelectedDate.Value.Date.ToShortDateString(); objAttendenceDetailsEntities.EmployeId = strEmployeeId; objAttendenceDetailsEntities.FromDate = Convert.ToDateTime(rdpFrom.SelectedDate); objAttendenceDetailsEntities.ToDate = Convert.ToDateTime(rdpTo.SelectedDate); LoadAttendenceGrid(); } protected void rgAttendenceDetails_ItemCommand(object sender, GridCommandEventArgs e) { string strEmployeeID; string strDate; if (e.CommandName == "AttendenceCheck") { if (e.Item is GridDataItem) { GridDataItem item = (GridDataItem)e.Item; strEmployeeID = item["Emp_ID"].Text; rtxtEmployeeName.Text = strEmployeeID; strDate = e.CommandArgument.ToString(); rtxtDate.Text = strDate; rwdAttendenceDetails.VisibleOnPageLoad = true; objAttendenceDetailsEntities.EmployeId = strEmployeeID; objAttendenceDetailsEntities.Date = Convert.ToDateTime(strDate); LoadAttendenceGridPopUp(); } } } protected void rgAttendenceDetails_ItemDataBound(object sender, GridItemEventArgs e) { } protected void rbOk_Click(object sender, EventArgs e) { objAttendenceDetailsEntities.EmployeId = EmpId; objAttendenceDetailsEntities.Date = Convert.ToDateTime(rtxtDate.Text); objAttendenceDetailsEntities.RequestComment = rtbxComments.Text; objAttendenceDetailsEntities.ResponseComment = ""; objAttendenceDetailsEntities.TypeId = Convert.ToInt32(rcbxType.SelectedValue); objAttendenceDetailsEntities.Status = ""; objAttendenceDetailsDAO.SaveStatusDetails(objAttendenceDetailsEntities); } protected void rbSendMail_Click(object sender, EventArgs e) { Emailclass objEmailclass = new Emailclass(); string[] cc = { "naveen.kacham@mediaus.com" }; objEmailclass.SendMailMessage("naveen.kacham@mediaus.com", cc, "TestingMail", "Testing"); } protected void rbClose_Click(object sender, EventArgs e) { rwdAttendenceDetails.VisibleOnPageLoad = false; } protected void rgMyAttendenceDetails_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e) { //rgMyAttendenceDetails.DataSource = new int[] { }; } private void LoadAttendenceGrid() { string[] strEmplId = objAttendenceDetailsEntities.EmployeId.Split(','); DataSet dataSet = new DataSet(); dataSet = objAttendenceDetailsDAO.GetFullAttendenceDetails(objAttendenceDetailsEntities); dataSet.Tables[0].DefaultView.Sort = "Att_Date"; rgAttendenceDetails.AutoGenerateColumns = false; rgAttendenceDetails.MasterTableView.AutoGenerateColumns = false; DataTable dtAttendence = new DataTable(); DataColumn dc = new DataColumn(); DataColumn dcCol2 = new DataColumn(); GridBoundColumn boundColumn = new GridBoundColumn(); //GridBoundColumn bndcolPresent = new GridBoundColumn(); //GridBoundColumn bndcolLeave = new GridBoundColumn(); //GridBoundColumn bndcolHoliday = new GridBoundColumn(); //GridBoundColumn bndcolCompOff = new GridBoundColumn(); //GridBoundColumn bndcolTempId = new GridBoundColumn(); //GridBoundColumn bndcolWorkFromHome = new GridBoundColumn(); //GridBoundColumn bndcolRegular = new GridBoundColumn(); //GridBoundColumn bndcolAbsent = new GridBoundColumn(); //GridButtonColumn lnkbtnLeave = new GridButtonColumn(); //GridButtonColumn lnkbtnHoliday = new GridButtonColumn(); //GridButtonColumn lnkbtnCompOff = new GridButtonColumn(); //GridButtonColumn lnkbtnTempId = new GridButtonColumn(); //GridButtonColumn lnkbtnWorkFromHome = new GridButtonColumn(); //GridButtonColumn lnkbtnRegular = new GridButtonColumn(); //GridButtonColumn lnkbtnAbsent = new GridButtonColumn(); GridTemplateColumn tempcolPresentType = new GridTemplateColumn(); GridTemplateColumn tempcolLeaveType = new GridTemplateColumn(); GridTemplateColumn tempcolHolidayType = new GridTemplateColumn(); GridTemplateColumn tempcolCompOffType = new GridTemplateColumn(); GridTemplateColumn tempcolTempIdType = new GridTemplateColumn(); GridTemplateColumn tempcolWorkHomeType = new GridTemplateColumn(); GridTemplateColumn tempcolRegularType = new GridTemplateColumn(); GridTemplateColumn tempcolAbsentType = new GridTemplateColumn(); for (int iLength = 0; iLength < strEmplId.Length; iLength++) { DataRow[] dr = dataSet.Tables[0].Select("Emp_ID='" + strEmplId[iLength] + "'"); DataRow drRow = dtAttendence.NewRow(); if (dr.Length + 1 != dtAttendence.Columns.Count) { boundColumn = new GridBoundColumn(); boundColumn.HeaderText = "Employee Id"; boundColumn.DataField = "Emp_ID"; boundColumn.UniqueName = "Emp_ID"; dc.ColumnName = "Emp_ID"; dtAttendence.Columns.Add(dc); rgAttendenceDetails.MasterTableView.Columns.Add(boundColumn); } drRow[dc.ColumnName] = dr[iLength]["Emp_ID"].ToString(); for (int i = 0; i < dr.Length; i++) { if (dr.Length + 1 != dtAttendence.Columns.Count) { dcCol2 = new DataColumn(); dtAttendence.Columns.Add(dcCol2); dcCol2.ColumnName = dr[i]["Att_Date"].ToString(); } string AttendenceType = dr[i]["Details"].ToString(); if (AttendenceType == AttendenceDetailsDAO.AttendenceType.Present.ToString()) { //bndcolPresent = new GridBoundColumn(); //bndcolPresent.HeaderText = dr[i]["Day"].ToString(); //bndcolPresent.UniqueName = dcCol2.ColumnName; //bndcolPresent.DataField = dcCol2.ColumnName; //rgAttendenceDetails.MasterTableView.Columns.Add(bndcolPresent); //bndcolPresent.ItemStyle.BackColor = Color.FromName("White"); //bndcolPresent.ItemStyle.ForeColor = Color.Black; tempcolPresentType = new GridTemplateColumn(); tempcolPresentType.HeaderText = dr[i]["Day"].ToString(); string strcolName = dcCol2.ColumnName; tempcolPresentType.ItemTemplate = new MyTemplate(strcolName, "false", ListItemType.Item); tempcolPresentType.UniqueName = dcCol2.ColumnName; tempcolPresentType.DataField = dcCol2.ColumnName; tempcolPresentType.ItemStyle.BackColor = Color.FromName("White"); tempcolPresentType.ItemStyle.ForeColor = Color.Black; if (dr.Length != rgAttendenceDetails.Columns.Count - 1) { rgAttendenceDetails.MasterTableView.Columns.Add(tempcolPresentType); } drRow[dr[i]["Att_Date"].ToString()] = dr[i]["Details"].ToString(); } else if (AttendenceType == AttendenceDetailsDAO.AttendenceType.Leave.ToString()) { TimeSpan tsWorkedHours = TimeSpan.Parse(dr[i]["WorkedHours"].ToString()); if (tsWorkedHours == TimeSpan.Zero) { //bndcolLeave = new GridBoundColumn(); //bndcolLeave.HeaderText = dr[i]["Day"].ToString(); //bndcolLeave.UniqueName = dcCol2.ColumnName; //bndcolLeave.DataField = dcCol2.ColumnName; //rgAttendenceDetails.MasterTableView.Columns.Add(bndcolLeave); //bndcolLeave.ItemStyle.BackColor = Color.FromName("#FFFF99"); //bndcolLeave.ItemStyle.ForeColor = Color.Black; tempcolLeaveType = new GridTemplateColumn(); tempcolLeaveType.HeaderText = dr[i]["Day"].ToString(); string strcolName = dcCol2.ColumnName; tempcolLeaveType.ItemTemplate = new MyTemplate(strcolName, "false", ListItemType.Item); tempcolLeaveType.UniqueName = dcCol2.ColumnName; tempcolLeaveType.DataField = dcCol2.ColumnName; tempcolLeaveType.ItemStyle.BackColor = Color.FromName("#FFFF99"); tempcolLeaveType.ItemStyle.ForeColor = Color.Black; if (dr.Length != rgAttendenceDetails.Columns.Count - 1) { rgAttendenceDetails.MasterTableView.Columns.Add(tempcolLeaveType); } drRow[dr[i]["Att_Date"].ToString()] = dr[i]["Details"].ToString(); } else { //lnkbtnLeave = new GridButtonColumn(); //lnkbtnLeave.ButtonType = GridButtonColumnType.LinkButton; //lnkbtnLeave.HeaderText = dr[i]["Day"].ToString(); //lnkbtnLeave.UniqueName = dcCol2.ColumnName; //lnkbtnLeave.DataTextField = dcCol2.ColumnName; //lnkbtnLeave.ItemStyle.BackColor = Color.FromName("#FFFF99"); //lnkbtnLeave.ItemStyle.ForeColor = Color.Blue; //lnkbtnLeave.CommandName = "AttendenceCheck"; //lnkbtnLeave.CommandArgument = dr[i]["Att_Date"].ToString(); //rgAttendenceDetails.MasterTableView.Columns.Add(lnkbtnLeave); tempcolLeaveType = new GridTemplateColumn(); tempcolLeaveType.HeaderText = dr[i]["Day"].ToString(); string strcolName = dcCol2.ColumnName; tempcolLeaveType.ItemTemplate = new MyTemplate(strcolName, "true", ListItemType.Item); tempcolLeaveType.UniqueName = dcCol2.ColumnName; tempcolLeaveType.DataField = dcCol2.ColumnName; tempcolLeaveType.ItemStyle.BackColor = Color.FromName("#FFFF99"); tempcolLeaveType.ItemStyle.ForeColor = Color.Blue; if (dr.Length != rgAttendenceDetails.Columns.Count - 1) { rgAttendenceDetails.MasterTableView.Columns.Add(tempcolLeaveType); } drRow[dr[i]["Att_Date"].ToString()] = dr[i]["WorkedHours"].ToString().Remove(5); } } else if (AttendenceType == AttendenceDetailsDAO.AttendenceType.Holiday.ToString() || AttendenceType == AttendenceDetailsDAO.AttendenceType.RestrictedHoliday.ToString()) { TimeSpan tsWorkedHours = TimeSpan.Parse(dr[i]["WorkedHours"].ToString()); if (tsWorkedHours == TimeSpan.Zero) { //bndcolHoliday = new GridBoundColumn(); //bndcolHoliday.HeaderText = dr[i]["Day"].ToString(); //bndcolHoliday.UniqueName = dcCol2.ColumnName; //bndcolHoliday.DataField = dcCol2.ColumnName; //bndcolHoliday.ItemStyle.BackColor = Color.FromName("#31849B"); //bndcolHoliday.ItemStyle.ForeColor = Color.Black; //rgAttendenceDetails.MasterTableView.Columns.Add(bndcolHoliday); tempcolHolidayType = new GridTemplateColumn(); tempcolHolidayType.HeaderText = dr[i]["Day"].ToString(); string strcolName = dcCol2.ColumnName; tempcolHolidayType.ItemTemplate = new MyTemplate(strcolName, "false", ListItemType.Item); tempcolHolidayType.UniqueName = dcCol2.ColumnName; tempcolHolidayType.DataField = dcCol2.ColumnName; tempcolHolidayType.ItemStyle.BackColor = Color.FromName("#31849B"); tempcolHolidayType.ItemStyle.ForeColor = Color.Black; if (dr.Length != rgAttendenceDetails.Columns.Count - 1) { rgAttendenceDetails.MasterTableView.Columns.Add(tempcolHolidayType); } drRow[dr[i]["Att_Date"].ToString()] = dr[i]["Details"].ToString(); } else { //lnkbtnHoliday = new GridButtonColumn(); //lnkbtnHoliday.ButtonType = GridButtonColumnType.LinkButton; //lnkbtnHoliday.HeaderText = dr[i]["Day"].ToString(); //lnkbtnHoliday.UniqueName = dcCol2.ColumnName; //lnkbtnHoliday.DataTextField = dcCol2.ColumnName; //rgAttendenceDetails.MasterTableView.Columns.Add(lnkbtnHoliday); //lnkbtnHoliday.ItemStyle.BackColor = Color.FromName("#31849B"); //lnkbtnHoliday.ItemStyle.ForeColor = Color.Blue; //lnkbtnHoliday.CommandName = "AttendenceCheck"; //lnkbtnHoliday.CommandArgument = dr[i]["Att_Date"].ToString(); tempcolHolidayType = new GridTemplateColumn(); tempcolHolidayType.HeaderText = dr[i]["Day"].ToString(); string strcolName = dcCol2.ColumnName; tempcolHolidayType.ItemTemplate = new MyTemplate(strcolName, "true", ListItemType.Item); tempcolHolidayType.UniqueName = dcCol2.ColumnName; tempcolHolidayType.DataField = dcCol2.ColumnName; tempcolHolidayType.ItemStyle.BackColor = Color.FromName("#31849B"); tempcolHolidayType.ItemStyle.ForeColor = Color.Blue; if (dr.Length != rgAttendenceDetails.Columns.Count - 1) { rgAttendenceDetails.MasterTableView.Columns.Add(tempcolHolidayType); } drRow[dr[i]["Att_Date"].ToString()] = dr[i]["WorkedHours"].ToString().Remove(5); } } else if (AttendenceType == AttendenceDetailsDAO.AttendenceType.CompOFF.ToString()) { TimeSpan tsWorkedHours = TimeSpan.Parse(dr[i]["WorkedHours"].ToString()); if (tsWorkedHours == TimeSpan.Zero) { //bndcolCompOff = new GridBoundColumn(); //bndcolCompOff.HeaderText = dr[i]["Day"].ToString(); //bndcolCompOff.UniqueName = dcCol2.ColumnName; //bndcolCompOff.DataField = dcCol2.ColumnName; //rgAttendenceDetails.MasterTableView.Columns.Add(bndcolCompOff); //bndcolCompOff.ItemStyle.BackColor = Color.FromName("#E6B9B8"); //bndcolCompOff.ItemStyle.ForeColor = Color.Black; tempcolCompOffType = new GridTemplateColumn(); tempcolCompOffType.HeaderText = dr[i]["Day"].ToString(); string strcolName = dcCol2.ColumnName; tempcolCompOffType.ItemTemplate = new MyTemplate(strcolName, "false", ListItemType.Item); tempcolCompOffType.UniqueName = dcCol2.ColumnName; tempcolCompOffType.DataField = dcCol2.ColumnName; tempcolCompOffType.ItemStyle.BackColor = Color.FromName("#E6B9B8"); tempcolCompOffType.ItemStyle.ForeColor = Color.Black; if (dr.Length != rgAttendenceDetails.Columns.Count - 1) { rgAttendenceDetails.MasterTableView.Columns.Add(tempcolCompOffType); } drRow[dr[i]["Att_Date"].ToString()] = dr[i]["Details"].ToString(); } else { //lnkbtnCompOff = new GridButtonColumn(); //lnkbtnCompOff.ButtonType = GridButtonColumnType.LinkButton; //lnkbtnCompOff.HeaderText = dr[i]["Day"].ToString(); //lnkbtnCompOff.UniqueName = dcCol2.ColumnName; //lnkbtnCompOff.DataTextField = dcCol2.ColumnName; //lnkbtnCompOff.ItemStyle.BackColor = Color.FromName("#E6B9B8"); //lnkbtnCompOff.ItemStyle.ForeColor = Color.Blue; //lnkbtnCompOff.CommandName = "AttendenceCheck"; //lnkbtnCompOff.CommandArgument = dr[i]["Att_Date"].ToString(); //rgAttendenceDetails.MasterTableView.Columns.Add(lnkbtnCompOff); tempcolCompOffType = new GridTemplateColumn(); tempcolCompOffType.HeaderText = dr[i]["Day"].ToString(); string strcolName = dcCol2.ColumnName; tempcolCompOffType.ItemTemplate = new MyTemplate(strcolName, "true", ListItemType.Item); tempcolCompOffType.UniqueName = dcCol2.ColumnName; tempcolCompOffType.DataField = dcCol2.ColumnName; tempcolCompOffType.ItemStyle.BackColor = Color.FromName("#E6B9B8"); tempcolCompOffType.ItemStyle.ForeColor = Color.Blue; if (dr.Length != rgAttendenceDetails.Columns.Count - 1) { rgAttendenceDetails.MasterTableView.Columns.Add(tempcolCompOffType); } drRow[dr[i]["Att_Date"].ToString()] = dr[i]["WorkedHours"].ToString().Remove(5); } } else if (AttendenceType == AttendenceDetailsDAO.AttendenceType.TemporaryId.ToString()) { TimeSpan tsWorkedHours = TimeSpan.Parse(dr[i]["WorkedHours"].ToString()); if (tsWorkedHours == TimeSpan.Zero) { //bndcolTempId = new GridBoundColumn(); //bndcolTempId.HeaderText = dr[i]["Day"].ToString(); //bndcolTempId.UniqueName = dcCol2.ColumnName; //bndcolTempId.DataField = dcCol2.ColumnName; //bndcolTempId.ItemStyle.BackColor = Color.FromName("#538ED5"); //bndcolTempId.ItemStyle.ForeColor = Color.Black; //rgAttendenceDetails.MasterTableView.Columns.Add(bndcolTempId); tempcolTempIdType = new GridTemplateColumn(); tempcolTempIdType.HeaderText = dr[i]["Day"].ToString(); string strcolName = dcCol2.ColumnName; tempcolTempIdType.ItemTemplate = new MyTemplate(strcolName, "false", ListItemType.Item); tempcolTempIdType.UniqueName = dcCol2.ColumnName; tempcolTempIdType.DataField = dcCol2.ColumnName; tempcolTempIdType.ItemStyle.BackColor = Color.FromName("#538ED5"); tempcolTempIdType.ItemStyle.ForeColor = Color.Black; if (dr.Length != rgAttendenceDetails.Columns.Count - 1) { rgAttendenceDetails.MasterTableView.Columns.Add(tempcolTempIdType); } drRow[dr[i]["Att_Date"].ToString()] = dr[i]["Details"].ToString(); } else { //lnkbtnTempId = new GridButtonColumn(); //lnkbtnTempId.ButtonType = GridButtonColumnType.LinkButton; //lnkbtnTempId.HeaderText = dr[i]["Day"].ToString(); //lnkbtnTempId.UniqueName = dcCol2.ColumnName; //lnkbtnTempId.DataTextField = dcCol2.ColumnName; //lnkbtnTempId.ItemStyle.BackColor = Color.FromName("#538ED5"); //lnkbtnTempId.ItemStyle.ForeColor = Color.Blue; //lnkbtnTempId.CommandName = "AttendenceCheck"; //lnkbtnTempId.CommandArgument = dr[i]["Att_Date"].ToString(); //rgAttendenceDetails.MasterTableView.Columns.Add(lnkbtnTempId); tempcolTempIdType = new GridTemplateColumn(); tempcolTempIdType.HeaderText = dr[i]["Day"].ToString(); string strcolName = dcCol2.ColumnName; tempcolTempIdType.ItemTemplate = new MyTemplate(strcolName, "true", ListItemType.Item); tempcolTempIdType.UniqueName = dcCol2.ColumnName; tempcolTempIdType.DataField = dcCol2.ColumnName; tempcolTempIdType.ItemStyle.BackColor = Color.FromName("#538ED5"); tempcolTempIdType.ItemStyle.ForeColor = Color.Blue; if (dr.Length != rgAttendenceDetails.Columns.Count - 1) { rgAttendenceDetails.MasterTableView.Columns.Add(tempcolTempIdType); } drRow[dr[i]["Att_Date"].ToString()] = dr[i]["WorkedHours"].ToString().Remove(5); } } else if (AttendenceType == AttendenceDetailsDAO.AttendenceType.WorkFromHome.ToString()) { TimeSpan tsWorkedHours = TimeSpan.Parse(dr[i]["WorkedHours"].ToString()); if (tsWorkedHours == TimeSpan.Zero) { //bndcolWorkFromHome = new GridBoundColumn(); //bndcolWorkFromHome.HeaderText = dr[i]["Day"].ToString(); //bndcolWorkFromHome.UniqueName = dcCol2.ColumnName; //bndcolWorkFromHome.DataField = dcCol2.ColumnName; //bndcolWorkFromHome.ItemStyle.BackColor = Color.FromName("#33CC33"); //bndcolWorkFromHome.ItemStyle.ForeColor = Color.Black; //rgAttendenceDetails.MasterTableView.Columns.Add(bndcolWorkFromHome); tempcolWorkHomeType = new GridTemplateColumn(); tempcolWorkHomeType.HeaderText = dr[i]["Day"].ToString(); string strcolName = dcCol2.ColumnName; tempcolWorkHomeType.ItemTemplate = new MyTemplate(strcolName, "false", ListItemType.Item); tempcolWorkHomeType.UniqueName = dcCol2.ColumnName; tempcolWorkHomeType.DataField = dcCol2.ColumnName; tempcolWorkHomeType.ItemStyle.BackColor = Color.FromName("#33CC33"); tempcolWorkHomeType.ItemStyle.ForeColor = Color.Black; if (dr.Length + 1 != rgAttendenceDetails.Columns.Count - 1) { rgAttendenceDetails.MasterTableView.Columns.Add(tempcolWorkHomeType); } drRow[dr[i]["Att_Date"].ToString()] = dr[i]["Details"].ToString(); } else { //lnkbtnWorkFromHome = new GridButtonColumn(); //lnkbtnWorkFromHome.ButtonType = GridButtonColumnType.LinkButton; //lnkbtnWorkFromHome.HeaderText = dr[i]["Day"].ToString(); //lnkbtnWorkFromHome.UniqueName = dcCol2.ColumnName; //lnkbtnWorkFromHome.DataTextField = dcCol2.ColumnName; //lnkbtnWorkFromHome.ItemStyle.BackColor = Color.FromName("#33CC33"); //lnkbtnWorkFromHome.ItemStyle.ForeColor = Color.Blue; //lnkbtnWorkFromHome.CommandName = "AttendenceCheck"; //lnkbtnWorkFromHome.CommandArgument = dr[i]["Att_Date"].ToString(); //rgAttendenceDetails.MasterTableView.Columns.Add(lnkbtnWorkFromHome); tempcolWorkHomeType = new GridTemplateColumn(); tempcolWorkHomeType.HeaderText = dr[i]["Day"].ToString(); string strcolName = dcCol2.ColumnName; tempcolWorkHomeType.ItemTemplate = new MyTemplate(strcolName, "true", ListItemType.Item); tempcolWorkHomeType.UniqueName = dcCol2.ColumnName; tempcolWorkHomeType.DataField = dcCol2.ColumnName; tempcolWorkHomeType.ItemStyle.BackColor = Color.FromName("#33CC33"); tempcolWorkHomeType.ItemStyle.ForeColor = Color.Blue; if (dr.Length != rgAttendenceDetails.Columns.Count - 1) { rgAttendenceDetails.MasterTableView.Columns.Add(tempcolWorkHomeType); } drRow[dr[i]["Att_Date"].ToString()] = dr[i]["WorkedHours"].ToString().Remove(5); } } else if (AttendenceType == AttendenceDetailsDAO.AttendenceType.Regular.ToString()) { TimeSpan tsWorkedHours = TimeSpan.Parse(dr[i]["WorkedHours"].ToString()); if (tsWorkedHours == TimeSpan.Zero) { //bndcolRegular = new GridBoundColumn(); //bndcolRegular.HeaderText = dr[i]["Day"].ToString(); //bndcolRegular.UniqueName = dcCol2.ColumnName; //bndcolRegular.DataField = dcCol2.ColumnName; //bndcolRegular.ItemStyle.BackColor = Color.FromName("#996633"); //bndcolRegular.ItemStyle.ForeColor = Color.Black; //rgAttendenceDetails.MasterTableView.Columns.Add(bndcolRegular); tempcolRegularType = new GridTemplateColumn(); tempcolRegularType.HeaderText = dr[i]["Day"].ToString(); string strcolName = dcCol2.ColumnName; tempcolRegularType.ItemTemplate = new MyTemplate(strcolName, "false", ListItemType.Item); tempcolRegularType.UniqueName = dcCol2.ColumnName; tempcolRegularType.DataField = dcCol2.ColumnName; tempcolRegularType.ItemStyle.BackColor = Color.FromName("#996633"); tempcolRegularType.ItemStyle.ForeColor = Color.Black; if (dr.Length != rgAttendenceDetails.Columns.Count - 1) { rgAttendenceDetails.MasterTableView.Columns.Add(tempcolRegularType); } drRow[dr[i]["Att_Date"].ToString()] = dr[i]["Details"].ToString(); } else { //lnkbtnRegular = new GridButtonColumn(); //lnkbtnRegular.ButtonType = GridButtonColumnType.LinkButton; //lnkbtnRegular.HeaderText = dr[i]["Day"].ToString(); //lnkbtnRegular.UniqueName = dcCol2.ColumnName; //lnkbtnRegular.DataTextField = dcCol2.ColumnName; //lnkbtnRegular.ItemStyle.BackColor = Color.FromName("#996633"); //lnkbtnRegular.ItemStyle.ForeColor = Color.Blue; //lnkbtnRegular.CommandName = "AttendenceCheck"; //lnkbtnRegular.CommandArgument = dr[i]["Att_Date"].ToString(); //rgAttendenceDetails.MasterTableView.Columns.Add(lnkbtnRegular); tempcolRegularType = new GridTemplateColumn(); tempcolRegularType.HeaderText = dr[i]["Day"].ToString(); string strcolName = dcCol2.ColumnName; tempcolRegularType.ItemTemplate = new MyTemplate(strcolName, "true", ListItemType.Item); tempcolRegularType.UniqueName = dcCol2.ColumnName; tempcolRegularType.DataField = dcCol2.ColumnName; tempcolRegularType.ItemStyle.BackColor = Color.FromName("#996633"); tempcolRegularType.ItemStyle.ForeColor = Color.Blue; if (dr.Length != rgAttendenceDetails.Columns.Count - 1) { rgAttendenceDetails.MasterTableView.Columns.Add(tempcolRegularType); } drRow[dr[i]["Att_Date"].ToString()] = dr[i]["WorkedHours"].ToString().Remove(5); } } else if (AttendenceType == AttendenceDetailsDAO.AttendenceType.Absent.ToString()) { TimeSpan tsWorkedHours = TimeSpan.Parse(dr[i]["WorkedHours"].ToString()); if (tsWorkedHours != TimeSpan.Zero) { //lnkbtnAbsent = new GridButtonColumn(); //lnkbtnAbsent.ButtonType = GridButtonColumnType.LinkButton; //lnkbtnAbsent.HeaderText = dr[i]["Day"].ToString(); //lnkbtnAbsent.UniqueName = dcCol2.ColumnName; //lnkbtnAbsent.DataTextField = dcCol2.ColumnName; //lnkbtnAbsent.ItemStyle.BackColor = Color.FromName("#C00000"); //lnkbtnAbsent.ItemStyle.ForeColor = Color.Blue; //lnkbtnAbsent.CommandName = "AttendenceCheck"; //lnkbtnAbsent.CommandArgument = dr[i]["Att_Date"].ToString(); //rgAttendenceDetails.MasterTableView.Columns.Add(lnkbtnAbsent); tempcolAbsentType = new GridTemplateColumn(); tempcolAbsentType.HeaderText = dr[i]["Day"].ToString(); string strcolName = dcCol2.ColumnName; tempcolAbsentType.ItemTemplate = new MyTemplate(strcolName, "true", ListItemType.Item); tempcolAbsentType.UniqueName = dcCol2.ColumnName; tempcolAbsentType.DataField = dcCol2.ColumnName; tempcolAbsentType.ItemStyle.BackColor = Color.FromName("#C00000"); tempcolAbsentType.ItemStyle.ForeColor = Color.Blue; if (dr.Length != rgAttendenceDetails.Columns.Count - 1) { rgAttendenceDetails.MasterTableView.Columns.Add(tempcolAbsentType); } drRow[dr[i]["Att_Date"].ToString()] = dr[i]["WorkedHours"].ToString().Remove(5); } else { //bndcolAbsent = new GridBoundColumn(); //bndcolAbsent.HeaderText = dr[i]["Day"].ToString(); //bndcolAbsent.UniqueName = dr[i]["Att_Date"].ToString(); //bndcolAbsent.DataField = dr[i]["Att_Date"].ToString(); //bndcolAbsent.ItemStyle.BackColor = Color.FromName("#C00000"); //bndcolAbsent.ItemStyle.ForeColor = Color.Black; //rgAttendenceDetails.MasterTableView.Columns.Add(bndcolAbsent); tempcolAbsentType = new GridTemplateColumn(); tempcolAbsentType.HeaderText = dr[i]["Day"].ToString(); string strcolName = dcCol2.ColumnName; tempcolAbsentType.ItemTemplate = new MyTemplate(strcolName, "false", ListItemType.Item); tempcolAbsentType.UniqueName = dcCol2.ColumnName; tempcolAbsentType.DataField = dcCol2.ColumnName; tempcolAbsentType.ItemStyle.BackColor = Color.FromName("#C00000"); tempcolAbsentType.ItemStyle.ForeColor = Color.Black; if (dr.Length != rgAttendenceDetails.Columns.Count - 1) { rgAttendenceDetails.MasterTableView.Columns.Add(tempcolAbsentType); } drRow[dr[i]["Att_Date"].ToString()] = dr[i]["Details"].ToString(); } } } dtAttendence.Rows.Add(drRow); } rgAttendenceDetails.DataSource = dtAttendence; rgAttendenceDetails.DataBind(); } private ArrayList GetCheckedItems() { ArrayList checkedItems = new ArrayList(); foreach (RadComboBoxItem item in rcbxEmployee.Items) { CheckBox checkBox = (CheckBox)item.FindControl("chkEmployee"); if (checkBox.Checked) { checkedItems.Add(item); } } return checkedItems; } private void LoadRadCmboxType() { List<AttendenceDetailsEntities> objAttendenceDetailsEntitiesList = null; objAttendenceDetailsEntities = null; objAttendenceDetailsEntitiesList = objAttendenceDetailsDAO.GetTypes(); rcbxType.DataSource = objAttendenceDetailsEntitiesList; rcbxType.DataValueField = "TypeId"; rcbxType.DataTextField = "TypeName"; rcbxType.DataBind(); } private void LoadRadCboxEmployee() { List<AttendenceDetailsEntities> objAttendenceDetailsEntitiesList = null; objAttendenceDetailsEntities.EmployeId = EmpId; objAttendenceDetailsEntitiesList = objAttendenceDetailsDAO.GetEmployeeName(objAttendenceDetailsEntities); rcbxEmployee.DataSource = objAttendenceDetailsEntitiesList; rcbxEmployee.DataTextField = "EmployeId"; this.rcbxEmployee.DataBind(); } private void LoadAttendenceGridPopUp() { DataSet AttdataSet = new DataSet(); AttdataSet = objAttendenceDetailsDAO.GetAttPunchedInandOutDtls(objAttendenceDetailsEntities); DataTable dtAttendence = new DataTable(); DataRow drAttendence = null; dtAttendence.Columns.Add("PunchIn", typeof(string)); dtAttendence.Columns.Add("PunchOut", typeof(string)); dtAttendence.Columns.Add("PunchIn2", typeof(string)); dtAttendence.Columns.Add("PunchOut2", typeof(string)); dtAttendence.Columns.Add("PunchIn3", typeof(string)); dtAttendence.Columns.Add("PunchOut3", typeof(string)); dtAttendence.Columns.Add("PunchIn4", typeof(string)); dtAttendence.Columns.Add("PunchOut4", typeof(string)); drAttendence = dtAttendence.NewRow(); for (int i = 0; i < AttdataSet.Tables[0].Rows.Count; i++) { if (i == 0) { drAttendence["PunchIn"] = AttdataSet.Tables[0].Rows[i]["Punch_In"].ToString().Remove(5); drAttendence["PunchOut"] = AttdataSet.Tables[0].Rows[i]["Punch_Out"].ToString().Remove(5); } else if (i == 1) { drAttendence["PunchIn2"] = AttdataSet.Tables[0].Rows[i]["Punch_In"].ToString().Remove(5); drAttendence["PunchOut2"] = AttdataSet.Tables[0].Rows[i]["Punch_Out"].ToString().Remove(5); } else if (i == 2) { drAttendence["PunchIn3"] = AttdataSet.Tables[0].Rows[i]["Punch_In"].ToString().Remove(5); drAttendence["PunchOut3"] = AttdataSet.Tables[0].Rows[i]["Punch_Out"].ToString().Remove(5); } else if (i == 3) { drAttendence["PunchIn4"] = AttdataSet.Tables[0].Rows[i]["Punch_In"].ToString().Remove(5); drAttendence["PunchOut4"] = AttdataSet.Tables[0].Rows[i]["Punch_Out"].ToString().Remove(5); } } dtAttendence.Rows.Add(drAttendence); rgMyAttendenceDetails.DataSource = dtAttendence; rgMyAttendenceDetails.DataBind(); LoadRadCmboxType(); } private class MyTemplate : ITemplate, IBindableTemplate { protected LinkButton lnkButton; protected LiteralControl lControl; private string colname; private string controlType; private ListItemType lstItemType; private string controlId; private string literalId; private string lnkbuttonId; public MyTemplate(string CName, string ctlType, ListItemType type) { this.colname = CName; this.controlType = ctlType; ; this.lstItemType = type; literalId = "lbl_" + type.ToString() + "_" + CName; lnkbuttonId = "lnk_" + type.ToString() + "_" + CName; } public void InstantiateIn(System.Web.UI.Control container) { switch (lstItemType) { case ListItemType.Item: if (controlType == "true") { lnkButton = new LinkButton(); controlId = "lnk_" + lstItemType.ToString() + "_" + colname; lnkButton.ID = controlId; lnkButton.Enabled = true; lnkButton.CommandName = "AttendenceCheck"; lnkButton.DataBinding += new EventHandler(lnkButton_DataBinding); container.Controls.Add(lnkButton); } else if (controlType == "false") { lnkButton = new LinkButton(); controlId = "lnk_" + lstItemType.ToString() + "_" + colname; lnkButton.ID = controlId; lnkButton.Enabled = false; lnkButton.DataBinding += new EventHandler(lnkButton_DataBinding); container.Controls.Add(lnkButton); } break; } } public void lnkButton_DataBinding(object sender, EventArgs e) { LinkButton lnk = (LinkButton)sender; GridDataItem container = (GridDataItem)lnk.NamingContainer; lnk.Text = ((DataRowView)container.DataItem)[colname].ToString(); } //public void lControl_DataBinding(object sender, EventArgs e) //{ // LiteralControl ltlControl = (LiteralControl)sender; // GridDataItem container = (GridDataItem)ltlControl.NamingContainer; // ltlControl.Text = ((DataRowView)container.DataItem)[colname].ToString(); //} public System.Collections.Specialized.IOrderedDictionary ExtractValues(System.Web.UI.Control container) { OrderedDictionary od = new OrderedDictionary(); od.Add("ProviderName", ((LinkButton)((GridDataItem)container).FindControl(controlId)).Text); return od; } } }}using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Data;using System.Data.SqlClient;using MSI.DataAccess;using Entities;using MSI.Logging;using System.Reflection;using System.ComponentModel;namespace AttendenceManagement.Business_Layer{ public class AttendenceDetailsDAO { //DataAccess objects Declared to set connection to Database. MSI.DataAccess.DataAccess objDataAccess = new MSI.DataAccess.DataAccess(); Entities.DataAccess objdAccess = new Entities.DataAccess(); LoggingClass objLoggingClass = new LoggingClass(); /// <summary> ///Method Required to Declare Enums for Constants. /// </summary> public enum AttendenceType { [DescriptionAttribute("P")] Present = 1, [DescriptionAttribute("A")] Absent = 2, [DescriptionAttribute("H")] Holiday, [DescriptionAttribute("RH")] RestrictedHoliday, [DescriptionAttribute("C")] CompOFF, [DescriptionAttribute("L")] Leave, [DescriptionAttribute("T")] TemporaryId, [DescriptionAttribute("WH")] WorkFromHome, [DescriptionAttribute("R")] Regular } /// <summary> /// Method Requried to represent String Enums. /// </summary> /// <param name="value"></param> /// <returns></returns> public static string GetEnumDescription(Enum value) { FieldInfo fi = value.GetType().GetField(value.ToString()); DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false); if (attributes != null && attributes.Length > 0) return attributes[0].Description; else return value.ToString(); } /// <summary> /// Method to Reterive Attendence Details for an Employee for a given date. /// </summary> /// <param name="objAttDtls"></param> /// <returns></returns> public DataSet GetAttendenceDetails(AttendenceDetailsEntities objAttDtls) { try { SqlParameter[] sqlParameter = new SqlParameter[3]; sqlParameter[0] = new SqlParameter("@FromDate", SqlDbType.Date); sqlParameter[0].Value = objAttDtls.FromDate; sqlParameter[1] = new SqlParameter("@ToDate", SqlDbType.Date); sqlParameter[1].Value = objAttDtls.ToDate; sqlParameter[2] = new SqlParameter("@EmpId", SqlDbType.NVarChar); sqlParameter[2].Value = objAttDtls.EmployeId; DataSet dataSet = new DataSet(); dataSet = objDataAccess.GetDataSet("Attendence_SEL", sqlParameter); return dataSet; } catch (Exception ex) { objLoggingClass.WriteToErrorLog(ex.Message); throw ex; } } /// <summary> /// Method to Reterive Attendence Details by Concatenating Hours and Minutes. /// </summary> /// <param name="objAttDtls"></param> /// <returns></returns> public DataSet GetFullAttendenceDetails(AttendenceDetailsEntities objAttDtls) { DataSet configdataSet = new DataSet(); configdataSet = GetConfigurationDetails(); DataSet dataSet = new DataSet(); TimeSpan tsWorkHoursDay; DataSet daTemp = new DataSet(); daTemp = GetAttendenceDetails(objAttDtls); daTemp.Tables[0].Columns.Add("WorkedHours"); daTemp.Tables[0].Columns.Add("Details"); daTemp.Tables[0].Columns.Add("Day"); DataSet dsLeaveType = new DataSet(); dsLeaveType = GetLeaveTypeDetails(objAttDtls); string[] strarryEmpId = objAttDtls.EmployeId.Split(','); try { for (int iLength = 0; iLength <strarryEmpId.Length; iLength++) { for (DateTime currDate = objAttDtls.FromDate.Date; currDate <= objAttDtls.ToDate.Date; currDate = currDate.AddDays(1)) { //daTemp.Tables[0].DefaultView.Table.Select("Att_Date="+currDate.ToString()); string curdate = currDate.ToString("yyyy-MM-dd"); DataRow[] dr = daTemp.Tables[0].Select("Att_Date=#" + curdate + "# and Emp_ID='" + strarryEmpId[iLength].ToString() + "'"); //daTemp.Tables[0].DefaultView.RowFilter = "Att_Date=#"+curdate+"#"; DataRow[] drLeaveType = dsLeaveType.Tables[0].Select("Date=#" + curdate + "# and Emp_ID='" + strarryEmpId[iLength].ToString() + "'"); if (dr.Length != 0) { string strHoursWorked = Convert.ToString(dr[0]["Hours_worked"]); string strMinsWorked = Convert.ToString(dr[0]["Minutes_worked"]); string strAttType = Convert.ToString(dr[0]["Att_Type"]); string strWorkHoursDay; if (strHoursWorked != "" && strMinsWorked != "") { strWorkHoursDay = strHoursWorked + ":" + strMinsWorked; tsWorkHoursDay = TimeSpan.Parse(strWorkHoursDay); } else { tsWorkHoursDay = TimeSpan.Zero; } string strConfigWorkHoursDay = Convert.ToString(configdataSet.Tables[0].Rows[0]["workHourDay"]); TimeSpan tsConfigWorkHoursDay = TimeSpan.Parse(strConfigWorkHoursDay); dr[0]["Day"] = currDate.Day; dr[0]["WorkedHours"] = tsWorkHoursDay; objAttDtls.Date = currDate; if (tsWorkHoursDay >= tsConfigWorkHoursDay) { dr[0]["Details"] = AttendenceType.Present; } else if (currDate.DayOfWeek.ToString() == "Sunday" || currDate.DayOfWeek.ToString() == "Saturday") { dr[0]["Details"] = AttendenceType.Holiday; } else if (strAttType == "TempID") { dr[0]["Details"] = AttendenceType.TemporaryId; } else if (strAttType == "WH") { dr[0]["Details"] = AttendenceType.WorkFromHome; } else if (strAttType == "Regular") { dr[0]["Details"] = AttendenceType.Regular; } else if (drLeaveType.Length != 0) { string strLeaveType = Convert.ToString(drLeaveType[0]["LeaveType"]); if (strLeaveType == "CompOff") { dr[0]["Details"] = AttendenceType.CompOFF; } else if (strLeaveType == "Leave") { dr[0]["Details"] = AttendenceType.Leave; } else if (strLeaveType == "RH") { dr[0]["Details"] = AttendenceType.RestrictedHoliday; } else if (strLeaveType == "Holiday") { dr[0]["Details"] = AttendenceType.Holiday; } } else { dr[0]["Details"] = AttendenceType.Absent; } } else { DataRow drtemp = daTemp.Tables[0].NewRow(); drtemp["Emp_ID"] = strarryEmpId[iLength].ToString(); drtemp["Att_Date"] = curdate; drtemp["Day"] = currDate.Day; drtemp["WorkedHours"] = "00:00:00"; if (currDate.DayOfWeek.ToString() == "Sunday" || currDate.DayOfWeek.ToString() == "Saturday") { drtemp["Details"] = AttendenceType.Holiday; } else if (drLeaveType.Length != 0) { string strLeaveType = Convert.ToString(drLeaveType[0]["LeaveType"]); if (strLeaveType == "CompOff") { drtemp["Details"] = AttendenceType.CompOFF; } else if (strLeaveType == "Leave") { drtemp["Details"] = AttendenceType.Leave; } else if (strLeaveType == "RH") { drtemp["Details"] = AttendenceType.RestrictedHoliday; } else if (strLeaveType == "Holiday") { drtemp["Details"] = AttendenceType.Holiday; } } else { drtemp["Details"] = AttendenceType.Absent.ToString(); } daTemp.Tables[0].Rows.Add(drtemp); } } } return daTemp; } catch (Exception ex) { objLoggingClass.WriteToErrorLog(ex.Message); throw ex; } } /// <summary> /// Method to Reterive Configuration Details. /// </summary> /// <returns></returns> public DataSet GetConfigurationDetails() { try { SqlParameter[] sqlParameter = new SqlParameter[0]; DataSet configdataSet = new DataSet(); configdataSet = objDataAccess.GetDataSet("ConfigurationSettings_Sel", sqlParameter); return configdataSet; } catch (Exception ex) { objLoggingClass.WriteToErrorLog(ex.Message); throw ex; } } /// <summary> /// Method to Reterive the Leave Type Details. /// </summary> /// <param name="objAttDtls"></param> /// <returns></returns> public DataSet GetLeaveTypeDetails(AttendenceDetailsEntities objAttDtls) { try { SqlParameter[] sqlParameter = new SqlParameter[3]; sqlParameter[0] = new SqlParameter("@FromDate", SqlDbType.Date); sqlParameter[0].Value = objAttDtls.FromDate; sqlParameter[1] = new SqlParameter("@Todate", SqlDbType.Date); sqlParameter[1].Value = objAttDtls.ToDate; sqlParameter[2] = new SqlParameter("@EmpId", SqlDbType.NVarChar); sqlParameter[2].Value = objAttDtls.EmployeId; DataSet dataSet = new DataSet(); dataSet = objDataAccess.GetDataSet("LeaveType_sel", sqlParameter); return dataSet; } catch (Exception ex) { objLoggingClass.WriteToErrorLog(ex.Message); throw ex; } } /// <summary> /// Method to Reterive the Attendence Punched In and Out Detials /// </summary> /// <param name="objAttDtls"></param> /// <returns></returns> public DataSet GetAttPunchedInandOutDtls(AttendenceDetailsEntities objAttDtls) { try { SqlParameter[] sqlParameter = new SqlParameter[2]; sqlParameter[0] = new SqlParameter("@EmpId", SqlDbType.NVarChar); sqlParameter[0].Value = objAttDtls.EmployeId; sqlParameter[1] = new SqlParameter("@Date", SqlDbType.Date); sqlParameter[1].Value = objAttDtls.Date; DataSet dataSet = new DataSet(); dataSet = objDataAccess.GetDataSet("AttendenceDetails_SEL", sqlParameter); return dataSet; } catch (Exception ex) { objLoggingClass.WriteToErrorLog(ex.Message); throw ex; } } /// <summary> /// Method To Reterive Type Details and Bind it to Type Combobox. /// </summary> /// <returns></returns> public List<AttendenceDetailsEntities> GetTypes() { List<AttendenceDetailsEntities> objAttendenceDetailsEntitiesList = null; AttendenceDetailsEntities objAttendenceDetailsEntities = null; try { SqlParameter[] sqlParameter = new SqlParameter[0]; DataSet typedataSet = new DataSet(); typedataSet = objDataAccess.GetDataSet("Types_SEL", sqlParameter); if (typedataSet != null && typedataSet.Tables.Count > 0 && typedataSet.Tables[0].Rows.Count > 0) { objAttendenceDetailsEntitiesList = new List<AttendenceDetailsEntities>(); //for a blank entry objAttendenceDetailsEntities = new AttendenceDetailsEntities(); objAttendenceDetailsEntities.TypeId = 0; objAttendenceDetailsEntities.TypeName = ""; objAttendenceDetailsEntitiesList.Add(objAttendenceDetailsEntities); foreach (DataRow row in typedataSet.Tables[0].Rows) { objAttendenceDetailsEntities = new AttendenceDetailsEntities(); objAttendenceDetailsEntities.TypeId = Convert.ToInt32(row["TypeId"]); objAttendenceDetailsEntities.TypeName = Convert.ToString(row["TypeName"]); objAttendenceDetailsEntitiesList.Add(objAttendenceDetailsEntities); } } return objAttendenceDetailsEntitiesList; } catch (Exception ex) { objLoggingClass.WriteToErrorLog(ex.Message); throw ex; } } /// <summary> /// Method To Reterive Employee Details and Bind it to Employee Combobox. /// </summary> /// <returns></returns> public List<AttendenceDetailsEntities> GetEmployeeName(AttendenceDetailsEntities objAttendenceDetailsEntities) { List<AttendenceDetailsEntities> objAttendenceDetailsEntitiesList = null; try { SqlParameter[] sqlParameter = new SqlParameter[1]; sqlParameter[0] = new SqlParameter("@Emp_ID", SqlDbType.NVarChar); sqlParameter[0].Value = objAttendenceDetailsEntities.EmployeId; DataSet typedataSet = new DataSet(); typedataSet = objDataAccess.GetDataSet("Employee_SEL", sqlParameter); if (typedataSet != null && typedataSet.Tables.Count > 0 && typedataSet.Tables[0].Rows.Count > 0) { objAttendenceDetailsEntitiesList = new List<AttendenceDetailsEntities>(); //for a blank entry objAttendenceDetailsEntities = new AttendenceDetailsEntities(); objAttendenceDetailsEntities.EmployeId = ""; objAttendenceDetailsEntitiesList.Add(objAttendenceDetailsEntities); foreach (DataRow row in typedataSet.Tables[0].Rows) { objAttendenceDetailsEntities = new AttendenceDetailsEntities(); objAttendenceDetailsEntities.EmployeId = Convert.ToString(row["Emp_ID"]); objAttendenceDetailsEntitiesList.Add(objAttendenceDetailsEntities); } } return objAttendenceDetailsEntitiesList; } catch (Exception ex) { objLoggingClass.WriteToErrorLog(ex.Message); throw ex; } } /// <summary> /// Method To Save Status Details To DataBase. /// </summary> /// <param name="objAttendenceDetailsEntities"></param> public void SaveStatusDetails(AttendenceDetailsEntities objAttendenceDetailsEntities) { try { SqlParameter[] sqlParameter = new SqlParameter[6]; sqlParameter[0] = new SqlParameter("@EmpId", SqlDbType.VarChar); sqlParameter[0].Value = objAttendenceDetailsEntities.EmployeId; sqlParameter[1] = new SqlParameter("@Date", SqlDbType.Date); sqlParameter[1].Value = objAttendenceDetailsEntities.Date; sqlParameter[2] = new SqlParameter("@RequestComment", SqlDbType.VarChar); sqlParameter[2].Value = objAttendenceDetailsEntities.RequestComment; sqlParameter[3] = new SqlParameter("@ResponseComment", SqlDbType.VarChar); sqlParameter[3].Value = objAttendenceDetailsEntities.ResponseComment; sqlParameter[4] = new SqlParameter("@TypeId", SqlDbType.Int); sqlParameter[4].Value = objAttendenceDetailsEntities.TypeId; sqlParameter[5] = new SqlParameter("@Status", SqlDbType.VarChar); sqlParameter[5].Value = objAttendenceDetailsEntities.Status; objDataAccess.SaveData("Status_INS", sqlParameter); } catch (Exception ex) { objLoggingClass.WriteToErrorLog(ex.Message); throw ex; } } }}<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="AttendenceDetails.ascx.cs" Inherits="AttendenceManagement.Controls.AttendenceDetailsGrid" %><%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %><link href="../CSS/AttendenceStyle.css" rel="stylesheet" type="text/css" /><link href="../CSS/TelerikCustomSkins/Grid.css" rel="stylesheet" type="text/css" /><script type="text/javascript"> function stopPropagation(e) { e.cancelBubble = true; if (e.stopPropagation) { e.stopPropagation(); } }</script><div class="divMainContent"> <div class="divPickerLabel"> <div class="divPicker"> <div class="divFromDate"> <asp:Label ID="lblFromDate" runat="server" Text="From"></asp:Label> <telerik:RadDatePicker ID="rdpFrom" runat="server" CssClass="rtxtFromStyle" Width="125px"> </telerik:RadDatePicker> </div> <div class="divToDate"> <asp:Label ID="lblToDate" runat="server" Text="To"> </asp:Label> <telerik:RadDatePicker ID="rdpTo" runat="server" CssClass="rtxtToStyle" Width="125px"> </telerik:RadDatePicker> </div> <div class="divSelectEmployee"> <asp:Label ID="lblSelectEmployee" runat="server" Text="Select Employee" Visible="True"></asp:Label> <telerik:RadComboBox ID="rcbxEmployee" runat="server" CssClass="rcbxEmployeeStyle" HighlightTemplatedItems="true" Visible="True" Width="125px"> <ItemTemplate> <asp:CheckBox ID="chkEmployee" runat="server" onclick="stopPropagation(event);" Text="" /> <%# DataBinder.Eval(Container,"Text")%> </ItemTemplate> </telerik:RadComboBox> <telerik:RadButton ID="rbtnSelect" runat="server" Text="Select" OnClick="rbtnSelect_Click" CssClass="rbtnSelectStyle"> </telerik:RadButton> </div> <div class="divbtnSelect"> </div> </div> <div class="divfromdatetodatelbl"> <asp:Label ID="lblAttendenceDetaisFrom" runat="server" Text="Attendence Details From"></asp:Label> <asp:Label ID="lblFromdatewithyear" runat="server"></asp:Label> <asp:Label ID="lblTo" runat="server" Text="To"></asp:Label> <asp:Label ID="lblTodatewithyear" runat="server"></asp:Label> </div> </div> <div class="divlegend"> <asp:Panel ID="pnllegend" runat="server" BackColor="Gray" Width="160px" Height="192px"> <div class="divStatus"> <telerik:RadTextBox ID="rtxtPresent" runat="server" Text="P" BackColor="White" Width="25px" BorderStyle="None"> </telerik:RadTextBox> <asp:Label ID="lblPresent" runat="server" Text="Present" ForeColor="White"></asp:Label></div> <div class="divStatus" style="position: relative; margin: 0px 0px 0px 5px;"> <telerik:RadTextBox ID="rtxtLeave" runat="server" Text="L" BackColor="#FFFF99" Width="25px" BorderStyle="None"> </telerik:RadTextBox> <asp:Label ID="lblLeave" runat="server" Text="Leave" ForeColor="White"></asp:Label></div> <div class="divStatus"> <telerik:RadTextBox ID="rtxtAbsent" runat="server" Text="A" BackColor="#C00000" Width="25px" BorderStyle="None"> </telerik:RadTextBox> <asp:Label ID="lblAbsent" runat="server" Text="Absent" ForeColor="White"></asp:Label></div> <div class="divStatus"> <telerik:RadTextBox ID="rtxtHoliday" runat="server" Text="H" BackColor="#31849B" Width="25px" BorderStyle="None"> </telerik:RadTextBox> <asp:Label ID="lblHoilday" runat="server" Text="Holiday" ForeColor="White"></asp:Label></div> <div class="divStatus"> <telerik:RadTextBox ID="rtxtCompoff" runat="server" Text="C" BackColor="#E6B9B8" Width="25px" BorderStyle="None"> </telerik:RadTextBox> <asp:Label ID="lblCompoff" runat="server" Text="CompOff" ForeColor="White"></asp:Label></div> <div class="divStatus"> <telerik:RadTextBox ID="rtxtTemporaryId" runat="server" Text="T" BackColor="#538ED5" Width="25px" BorderStyle="None"> </telerik:RadTextBox> <asp:Label ID="lblTemporaryId" runat="server" Text="TemporaryId" ForeColor="White"></asp:Label> </div> <div class="divStatus"> <telerik:RadTextBox ID="rtxtWorkFromHome" runat="server" Text="WH" BackColor="#33CC33" Width="25px" BorderStyle="None"> </telerik:RadTextBox> <asp:Label ID="lblWorkFromHome" runat="server" Text="WorkFromHome" ForeColor="White"></asp:Label> </div> <div class="divStatus"> <telerik:RadTextBox ID="rtxtRegular" runat="server" Text="R" BackColor="#996633" Width="25px" BorderStyle="None"> </telerik:RadTextBox> <asp:Label ID="lblRegular" runat="server" Text="Regular" ForeColor="White"></asp:Label> </div> </asp:Panel> </div></div><div class="divrGrid"> <telerik:RadGrid ID="rgAttendenceDetails" runat="server" GridLines="Both" AutoGenerateColumns="false" ShowHeader="true" ShowFooter="true" EnableEmbeddedSkins="false" OnItemCommand="rgAttendenceDetails_ItemCommand" OnItemDataBound="rgAttendenceDetails_ItemDataBound" Skin="Internal" CssClass="RadGridStyle"> <HeaderStyle VerticalAlign="Middle" HorizontalAlign="Center" CssClass="RadGridStyle" /> <MasterTableView AutoGenerateColumns="false" EnableNoRecordsTemplate="true" ShowHeadersWhenNoRecords="true" ShowHeader="true" ShowFooter="true" CssClass="RadGridStyle"> <NoRecordsTemplate> <div> <asp:Literal ID="ltlNoRecords" runat="server" Text="No Records"></asp:Literal> </div> </NoRecordsTemplate> </MasterTableView> </telerik:RadGrid></div><div> <telerik:RadWindowManager ID="rwmAttendenceDetails" runat="server" ShowContentDuringLoad="false" VisibleStatusbar="false" ReloadOnShow="true" Modal="true" VisibleTitlebar="false" Behaviors="Close" EnableViewState="false" EnableEmbeddedSkins="false"> <Windows> <telerik:RadWindow ID="rwdAttendenceDetails" runat="server" ShowContentDuringLoad="true" VisibleStatusbar="false" Modal="true" EnableShadow="true" VisibleTitlebar="false" VisibleOnPageLoad="false" Behaviors="Close" Overlay="true" BorderWidth="0" BorderStyle="None" Height="500px" Width="800px"> <ContentTemplate> <asp:Panel ID="pnlWindow" runat="server"> <div class="divClose"> <telerik:RadButton ID="rbClose" runat="server" ButtonType="LinkButton" Text="Close" OnClick="rbClose_Click"> </telerik:RadButton> </div> <div class="divlblAttendenceDetails"> <asp:Label ID="lblAttendenceDetails" runat="server" Text="My Attendence Details"></asp:Label> </div> <div class="divEmplyeeDetail"> <asp:Label ID="lblEmployeeName" runat="server" Text="Employee Name"></asp:Label> <telerik:RadTextBox ID="rtxtEmployeeName" runat="server" CssClass="rtxtEmployeeNameStyle" Width="160px"> </telerik:RadTextBox> <asp:Label ID="lblDate" runat="server" Text="Date" CssClass="lblDateStyle"></asp:Label> <telerik:RadTextBox ID="rtxtDate" runat="server" CssClass="rtbxDateStyle" Width="160px"> </telerik:RadTextBox> </div> <div class="divGrid"> <telerik:RadGrid ID="rgMyAttendenceDetails" runat="server" GridLines="None" AutoGenerateColumns="false" ShowHeader="true" ShowFooter="true" EnableEmbeddedSkins="false" OnNeedDataSource="rgMyAttendenceDetails_NeedDataSource" Skin="Internal" CssClass="RadGridStyle"> <HeaderStyle VerticalAlign="Middle" HorizontalAlign="Center" CssClass="RadGridStyle" /> <MasterTableView AutoGenerateColumns="false" EnableNoRecordsTemplate="true" ShowHeadersWhenNoRecords="true" ShowHeader="true" ShowFooter="true" CssClass="RadGridStyle"> <NoRecordsTemplate> <div> <asp:Literal ID="ltlNoRecords" runat="server" Text="No Records"></asp:Literal> </div> </NoRecordsTemplate> <Columns> <telerik:GridBoundColumn HeaderText="PunchIn" DataField ="PunchIn"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="PunchOut" DataField="PunchOut"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="PunchIn2" DataField="PunchIn2"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="PunchOut2" DataField="PunchOut2"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="PunchIn3" DataField="PunchIn3"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="PunchOut3" DataField="PunchOut3"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="PunchIn4" DataField="PunchIn4"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="PunchOut4" DataField="PunchOut4"> </telerik:GridBoundColumn> </Columns> </MasterTableView> </telerik:RadGrid> <asp:Label ID="lblDetails" runat="server" Visible="True"></asp:Label> </div> <div class="divComments"> <asp:Label ID="lblComments" runat="server" Text="Comments" Visible="true"></asp:Label> <telerik:RadTextBox ID="rtbxComments" runat="server" Width="350px" Height="50px" TextMode="MultiLine" MaxLength="300" CssClass="rtbxCommentsStyle" Visible="true"> </telerik:RadTextBox> </div> <div class="divType"> <asp:Label ID="lblType" runat="server" Text="Type" Visible="true"></asp:Label> <telerik:RadComboBox ID="rcbxType" runat="server" CssClass="rcbxTypeStyle" Visible="true" AutoPostBack="false" Width="125px"> </telerik:RadComboBox> </div> <div class="divbtn"> <telerik:RadButton ID="rbOk" runat="server" Text="Ok" ButtonType="StandardButton" Width="75px" Visible="true" OnClick="rbOk_Click"> </telerik:RadButton> <telerik:RadButton ID="rbSendMail" runat="server" Text="SendMail" ButtonType="StandardButton" Width="75px" Visible="true" OnClick="rbSendMail_Click"> </telerik:RadButton> <telerik:RadButton ID="rbApprove" runat="server" Text="Approve" ButtonType="StandardButton" Width="75px" Visible="false"> </telerik:RadButton> <telerik:RadButton ID="rbReject" runat="server" Text="Reject" ButtonType="StandardButton" Width="75px" Visible="false"> </telerik:RadButton> </div> </asp:Panel> </ContentTemplate> </telerik:RadWindow> </Windows> </telerik:RadWindowManager></div>