0

Default.aspx ページにはいくつかのコントロールがあります。一部のコントロールの表示は、条件によって異なります。ここでは、実行時に条件値に応じて可視プロパティを変更する傾向があります。

サンプル マークアップ (静的モードの 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>

私が試したのは、コード ビハインド ファイルにメソッドを記述し、そのメソッドから値を取得して、可視プロパティを 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>

しかし、以下のエラー: 'Visible' プロパティの文字列表現 ' <%=ShowHideButton() %> 'からタイプ ' System.Boolean 'のオブジェクトを作成できません。

このタスクを達成するための解決策または回避策。助けが必要。

4

2 に答える 2

1

それを行う最も速い方法は、ShowHideButton が string ではなく 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>

最もクリーンな方法はDivBtnImgCopy.Visible = ShowHideButton();、ページの prerender イベント ハンドラーに含めることです。

于 2012-11-14T12:00:29.170 に答える
0

目に見えるものはわかりません。div をまったくレンダリングしたくない場合は、 <% if %> でラップできます。

<% if(ShowHideButton()) { %>
<div id="DivBtnImgCopy" runat="server">
   <asp:ImageButton ID="BtnCopy" ToolTip="Copy Mode" ImageUrl="img/tlb_img_copy.gif"
                            runat="server" />
</div>
<% } %>
于 2012-11-14T11:57:53.783 に答える