如何在.NET 3.5中运行时更改ASP.NET控件的可见属性

时间:2012-11-14 11:50:31

标签: c# javascript asp.net html visual-studio-2008

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 ”类型的对象'可见'财产。

完成此任务的任何解决方案或解决方法。 需要帮助。

2 个答案:

答案 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>
<% } %>