ASP.NET CheckBox inside Datagrid returns Checked=false in Postback, if the column is not visible.

In one of ASP.NET pages I’ve used CheckBox column inside Datagrid, and  on some condition the column containing checkbox was invisible 
TemplateColumn.Visible=false
On postback my code tried to read if  control is checked, and it always returned  chk.Checked=false.

It seems that it is done by design and  invisible CheckBox does not have ViewState[“Checked”].

As it suggested in the link Invisible column won’t be rendered to the client.(http://www.velocityreviews.com/forums/t93577)-aspnet-datagrid-template-column-when-inivisible.html):

Make the column invisible with css rule display:none.