look at your code.i think your doing something wrong with fallowing code.
for (int i = 0; i < _dtStudentsFD.Rows.Count; i++)
{
if (_dtStudentsFD.Rows[i]["status"].ToString() == "Paid")
{
chk.Checked = true;
}
else
{
chk.Checked = false;
}
}
Instead of above code , you should try with fallowing approach..
Here,'e.Row.Cells[5].Text' is the value of status field
void GridView1_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
CheckBox chk=(CheckBox)e.Row.cells[0].FindControl("chkMyCheckBox");
if(chk != null)
{
if(e.Row.Cells[5].Text == ""status"")
chk.Checked = true;
}
}
}