2

私はここで愚かな何かを見逃しているに違いありませんが、私はそれを見ることができません。私の仕事では、サイトでインラインコードを使用しています。例:

<panel runat="server" id="myid" visible='<%# MyboolVal %>'>
    some stuff
</panel>

それは彼らにとってうまくいくようです、彼らの条件が満たされるとパネルが表示されます。

私は自宅の私のサイトで同様のアプローチを使用しようとしています(金曜日の夜遅くなので、上司に尋ねることは現時点では最善のアイデアではありません)。何も出力できません。うまくいかなかった可視フィールドで試してみたので、画面に何かを書いてもらうだけだと思いました。

<p>some text <%# String.Format("meeee {0}", Mybool) %></p>

しかし、インラインコードから出力が得られません。「テキスト」は表示されますが、「meeee」またはブール値は表示されません。

私は現時点でユーザーコントロール内でこれを行っていますが、それが原因になるとは思いません。

何かアイデアはありますか?

ありがとう

編集....

OK、返信してくれたFreddy Riosに感謝します。テキストを表示することはできますが、試してみると次のようになります。

Visible='<%= mybool %>'

次のコンパイルエラーが発生します:

可視プロパティの文字列表現からSystem.boolean型のオブジェクトを作成できません。

私は正確に何が起こっているのか混乱しています。私が手に入らないボンネットの下にプロセスの一部があるに違いありません。

編集2:

123行目にエラーが表示されます。

<fieldset class="myclass" id="projectarea" runat="server" visible='<%= ShowProjectSearchArea %>'>

ShowProjectSearchAreaは私のブール値であり、falseに設定されています。

エラーリストウィンドウでエラーをダブルクリックすると、ポップアップに次のように表示されます。これは、これまでに見たことのないものです。

  Cannot open file '%1'. It might not be in the solution.
4

3 に答える 3

14

<%#サーバー側のコントロール、特にデータバインドされたコントロールに値を設定するために使用されるデータバインディングタグです。

<%=の省略形でResponse.Write()、値を出力に書き込みます。したがって、静的なhtml要素で使用します。

于 2009-12-05T00:16:22.097 に答える
10

バージョンで#の代わりに=を使用してみてください。

<p>some text <%= String.Format("meeee {0}", Mybool) %></p>

#はデータバインディング用であるため、元のコードではどこかにDataBindを呼び出す必要があります。

于 2009-12-04T23:51:08.020 に答える
0

問題は、visibleプロパティが文字列型の値を期待していて、bool.tryで値を文字列にキャストしようとしているためだと思います。

乾杯

于 2009-12-05T00:39:05.327 に答える