Hi yara,
I have changed your code and html. Refer the below code.
HTML
<p>
</p>
<br />
<br />
<asp:GridView ID="GridView1" runat="server" align="center" BackColor="White" BorderColor="#CCCCCC"
BorderStyle="None" BorderWidth="1px" CellPadding="4" AutoGenerateColumns="False"
DataSourceID="ObjectDataSource1" DataKeyNames="Attendance_ID" ShowFooter="True"
Style="margin-left: 172px; margin-top: 33px;">
<Columns>
<asp:TemplateField>
<FooterTemplate>
<asp:LinkButton ValidationGroup="INSERT" OnClick="lbInsert_Click" ID="lbInsert" runat="server"
ForeColor="#000066">Insert</asp:LinkButton>
</FooterTemplate>
</asp:TemplateField>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
<asp:TemplateField HeaderText="No." SortExpression="Attendance_ID">
<EditItemTemplate>
<asp:TextBox ID="txtAttendanceID" runat="server" Text='<%# Bind("Attendance_ID") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblAttendanceID" runat="server" Text='<%# Bind("Attendance_ID") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtID" runat="server" BorderStyle="None"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name" SortExpression="Attendance_Name">
<EditItemTemplate>
<asp:TextBox ID="txtAttendanceName" runat="server" Text='<%# Bind("Attendance_Name") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblAttendanceName" runat="server" Text='<%# Bind("Attendance_Name") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtName" runat="server" BorderStyle="None"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Attendance" SortExpression="Attendance_Con">
<EditItemTemplate>
<asp:TextBox ID="txtAttendanceCon" runat="server" Text='<%# Bind("Attendance_Con") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblAttendanceCon" runat="server" Text='<%# Bind("Attendance_Con") %>'></asp:Label>
<asp:CheckBox ID="cbAttendanceCon" runat="server" BorderStyle="None" AutoPostBack="true"
Checked='<%# Bind("Attendance_Con") %>' OnCheckedChanged="LoggedIn"></asp:CheckBox>
</ItemTemplate>
<FooterTemplate>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Login Time" SortExpression="LogInDate_Time">
<EditItemTemplate>
<asp:TextBox ID="txtLogInDateTime" runat="server" Text='<%# Bind("LogInDate_Time") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblLoggedInDateTime" runat="server" Text='<%# Bind("LogInDate_Time") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtLogIn" runat="server" BorderStyle="None"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Leaving" SortExpression="Leaving_Con">
<EditItemTemplate>
<asp:TextBox ID="txtLeavingCon" runat="server" Text='<%# Bind("Leaving_Con") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblLeavingCon" runat="server" Text='<%# Bind("Leaving_Con") %>'></asp:Label>
<asp:CheckBox ID="cbLeavingCon" runat="server" BorderStyle="None" AutoPostBack="True"
Checked='<%# Bind("Leaving_Con") %>' OnCheckedChanged="LoggedOut"></asp:CheckBox>
</ItemTemplate>
<FooterTemplate>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Logout Time" SortExpression="LogOutDate_Time">
<EditItemTemplate>
<asp:TextBox ID="txtLogOutDateTime" runat="server" Text='<%# Bind("LogOutDate_Time") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblLoggedOutDateTime" runat="server" Text='<%# Bind("LogOutDate_Time") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtLogOut" runat="server" BorderStyle="None"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="White" ForeColor="#000066" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
<RowStyle ForeColor="#000066" />
<SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
<SortedAscendingCellStyle BackColor="#F1F1F1" />
<SortedAscendingHeaderStyle BackColor="#007DBB" />
<SortedDescendingCellStyle BackColor="#CAC9C9" />
<SortedDescendingHeaderStyle BackColor="#00547E" />
</asp:GridView>
<br />
<br />
<asp:Button ID="btnSave" Text="Save" runat="server" OnClick="btnSave_Click" Style="margin-left: 794px"
Width="40px" />
<br />
<asp:Label ID="lblMessage" ForeColor="Green" runat="server" />
<br />
Code
protected void LoggedIn(object sender, EventArgs e)
{
CheckBox checkedCheckBox = (sender as CheckBox);
GridViewRow checkedRow = (checkedCheckBox.NamingContainer as GridViewRow);
Label loggedInDateTime = checkedRow.FindControl("lblLoggedInDateTime") as Label;
if (checkedCheckBox.Checked)
{
loggedInDateTime.Text = DateTime.Now.ToString();
}
else
{
loggedInDateTime.Text = "";
}
}
protected void LoggedOut(object sender, EventArgs e)
{
CheckBox checkedCheckBox = (sender as CheckBox);
GridViewRow checkedRow = (checkedCheckBox.NamingContainer as GridViewRow);
Label loggedOutDateTime = checkedRow.FindControl("lblLoggedOutDateTime") as Label;
if (checkedCheckBox.Checked)
{
loggedOutDateTime.Text = DateTime.Now.ToString();
}
else
{
loggedOutDateTime.Text = "";
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
{
string id = (row.FindControl("lblAttendanceID") as Label).Text;
string name = (row.FindControl("lblAttendanceName") as Label).Text;
string loggedInTime = (row.FindControl("lblLoggedInDateTime") as Label).Text;
string loggedOutTime = (row.FindControl("lblLoggedOutDateTime") as Label).Text;
InsertData(id, name, loggedInTime, loggedOutTime);
}
lblMessage.Text = "All Records Saved Successfully!!";
}
public void InsertData(string id, string name, string inTime, string outTime)
{
//Your saving code.
}