try this,
<asp:BoundField HeaderText ="ID" DataField ="ID" />
remove visible="false" and set visible=false from code behind.
lblID.Text = grdDepartment.SelectedRow.Cells[0].Text;
txtDepartment.Text = grdDepartment.SelectedRow.Cells[1].Text;
grdDepartment.Columns.Item(0).Visible =false;
thanks