web-dev-qa-db-ja.com

表示属性に追加されたときに、文字列が有効なブール値として認識されませんでした

listviewitemtemplateテーブルにtrueまたはfalseのVisible属性を追加しようとしています。私がしたことは、特定の列を表示するかどうかを指定できるように、ページの読み込み時に設定される非表示フィールドがあることです。これは私の隠しフィールドと列です:

隠しフィールド

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

Td列

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

これはバックエンドの私のコードです:

  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
                }

「文字列が有効なブール値として認識されませんでした」というエラーがスローされます。私はc#にそれほど精通していないため、この方法を使用して列の可視性を取得することにしました。

5
marchemike

文字列値_"False"_をBooleanプロパティに割り当てているため、割り当てる前に、Convert.ToBoolean()メソッドを使用して適切に変換する必要があります。

OR

ブール値falseは、引用符なしで直接割り当てることができます。

これを置き換えます:

_uoHiddenFieldPriority.Value = "False"; 
_

これとともに:

_uoHiddenFieldPriority.Value = Convert.ToBoolean("False"); 
_

OR

_uoHiddenFieldPriority.Value = false;
_
7