String was not recognized as a valid Boolean when added to visible attribute

marchemike picture marchemike · Jul 17, 2014 · Viewed 51.5k times · Source

I'm trying to add a true or false Visible attribute to my listview itemtemplate table. What I did is that I have a hiddenfield that is set at page load so that I can make a specific column visible or not. This is my hiddenfield and column:

Hidden Field

<asp:HiddenField ID="uoHiddenFieldPriority" runat="server" Value="false" />

Td column

<td class="leftAligned" visible='<%# (Convert.ToBoolean(uoHiddenFieldPriority.Value)) %>' >
some Text
</td>

This is my code in the backend:

  int visibility = 0;
  if (visibility = 0)//sample condition I am using to test if the value is changing
     {
        SelectTH.Visible = false;// this is working, this is for the column header
        uoHiddenFieldPriority.Value = "False"; //this is not
                }

What happens is that the error "String was not recognized as a valid Boolean" is thrown. I am not really that proficient with c# which is why I decided to use this way of getting the visibility of a column.

Answer

Sudhakar Tillapudi picture Sudhakar Tillapudi · Jul 17, 2014

You are assigning the String value "False" to the Boolean property so before assigning it ,you should convert it properly using Convert.ToBoolean() method.

OR

You can assign Boolean value false directly without having any quotation marks.

Replace This:

uoHiddenFieldPriority.Value = "False"; 

With This:

uoHiddenFieldPriority.Value = Convert.ToBoolean("False"); 

OR

uoHiddenFieldPriority.Value = false;