Default.aspx页面有一些控件。一些控制可见性取决于条件。这里,倾向于完成的是根据条件值在运行时更改visible属性。
Sampel Markup(静态模式下的Default.aspx)
<div id="DivBtnImgCopy" runat="server" Visible = "True">
<asp:ImageButton ID="BtnImgCopy" CssClass="image" ToolTip="Copy Mode" ImageUrl="img/tlb_img_copy.gif" runat="server" OnClientClick="CopyImage(); SelectButton(this,true);return false;" />
</div>
我尝试的是在代码隐藏文件中编写一个方法,并尝试从该方法获取值,将visible属性设置为true或false。
CodeBehindFile(Default.aspx.cs)
protected bool ShowHideButton()
{
bool bStatus = false;
try
{
if (sCondition == "false")
{
bStatus = false;
}
else if (sCondition == "true")
{
bStatus = true;
}
return bStatus;
}
catch { }
}
示例标记(动态模式下的Default.aspx)
<div id="DivBtnImgCopy" runat="server" visible = "<% =ShowHideButton() %>">
<asp:ImageButton ID="BtnCopy" ToolTip="Copy Mode" ImageUrl="img/tlb_img_copy.gif"
runat="server" />
</div>
但是,得到以下错误: 无法从其字符串表示'&lt;%= ShowHideButton()%&gt; '创建“ System.Boolean ”类型的对象'可见'财产。
完成此任务的任何解决方案或解决方法。 需要帮助。
答案 0 :(得分:1)
最快的方法是让你的ShowHideButton返回一个bool而不是一个字符串;然后:
<%
DivBtnImgCopy.Visible = ShowHideButton();
%>
<div id="DivBtnImgCopy" runat="server" >
<asp:ImageButton ID="BtnCopy" ToolTip="Copy Mode" ImageUrl="img/tlb_img_copy.gif"
runat="server" />
</div>
最干净的方法是在页面的prerender事件处理程序中包含DivBtnImgCopy.Visible = ShowHideButton();
答案 1 :(得分:0)
我不确定可见的是什么。 如果您不想渲染div,可以将其包装在&lt;%if%&gt;中。 :
<% if(ShowHideButton()) { %>
<div id="DivBtnImgCopy" runat="server">
<asp:ImageButton ID="BtnCopy" ToolTip="Copy Mode" ImageUrl="img/tlb_img_copy.gif"
runat="server" />
</div>
<% } %>