我必须在这里错过一些愚蠢的东西,但我看不到它。我的工作在其网站上使用内联代码,例如:
<panel runat="server" id="myid" visible='<%# MyboolVal %>'>
some stuff
</panel>
这似乎对他们有用,面板会在他们的状况满足时显示。
我试图在家里的一个网站上使用类似的方法(周五晚上,所以在这一点上问老板不是最好的主意)。我根本无法输出任何东西。我在可见区域尝试了它,但是没有用,所以我想我会把它写在屏幕上:
<p>some text <%# String.Format("meeee {0}", Mybool) %></p>
但我没有得到内联代码的任何输出。出现“some text”但没有“meeee”或bool值。
我现在在用户控件内执行此操作,但此时并不认为这是原因。
请问任何想法?
由于
编辑...
好的,感谢Freddy Rios的回复,我可以看到文字出现,但是当我尝试的时候:
Visible='<%= mybool %>'
我收到编译错误:
无法从其可见属性的字符串表示形式创建System.boolean类型的对象。
我对到底发生了什么很困惑。在我没有得到的发动机罩下必须有部分过程。
编辑2:
我在第123行得到错误:
<fieldset class="myclass" id="projectarea" runat="server" visible='<%= ShowProjectSearchArea %>'>
ShowProjectSearchArea是我的bool值,设置为false。
如果我双击错误列表窗口中的错误,我会在弹出窗口中看到以下内容,这是我以前从未见过的:
Cannot open file '%1'. It might not be in the solution.
答案 0 :(得分:14)
<%#
是数据绑定标记,用于将值设置为服务器端控件,尤其是数据绑定控件。
<%=
是Response.Write()
的简写,它将值写入输出。所以我们将它与静态html元素一起使用。
答案 1 :(得分:10)
在您的版本中尝试使用=代替#:
<p>some text <%= String.Format("meeee {0}", Mybool) %></p>
#是用于数据绑定,因此在原始代码中必须在某处调用DataBind。
答案 2 :(得分:0)
我认为问题是因为可见属性需要字符串类型的值,并且您尝试使用bool.try将其设置为将值转换为字符串
干杯