2012-11-14 42 views
0

Default.aspx頁面有一些控件。一些控制能見度取決於條件。在這裏,趨向於完成的是在運行時根據條件值更改可見屬性。如何在.NET 3.5 RunTime中更改ASP.NET控件的可見屬性

Sampel標記(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> 

但是,獲得下面的錯誤: 不能創建類型的對象' System.Boolean '從其字符串表示' <%= ShowHideButton()%>'爲'可見'財產。

任何解決方案或解決方法來完成此任務。 需要幫助。

回答

0

我不確定可見性。 如果你想不渲染在div可言,你可以換你在<%,如果%>:

<% if(ShowHideButton()) { %> 
<div id="DivBtnImgCopy" runat="server"> 
    <asp:ImageButton ID="BtnCopy" ToolTip="Copy Mode" ImageUrl="img/tlb_img_copy.gif" 
          runat="server" /> 
</div> 
<% } %> 
+0

通過這樣得到這個錯誤的預渲染事件處理DivBtnImgCopy.Visible = ShowHideButton();:該ID「DivBtnImgCopy」已被另一個控制。 –

+0

嗯奇怪。也許你在這種情況下不需要id和runat服務器..你呢? – Kek

1

最快的方式做到這一點是有你的ShowHideButton返回一個布爾值,而不是字符串的;然後:

<% 
    DivBtnImgCopy.Visible = ShowHideButton(); 
%> 

<div id="DivBtnImgCopy" runat="server" > 
    <asp:ImageButton ID="BtnCopy" ToolTip="Copy Mode" ImageUrl="img/tlb_img_copy.gif" 
          runat="server" /> 
</div> 

乾淨的方式將包括在您的網頁

+0

通過使用這種方法,我得到了以下錯誤:「ID'DivBtnImgCopy'已被其他控件使用。」我檢查所有的代碼,這個ID不會在其他地方使用。那麼,如何克服這一點。 –

+0

與上面相同的錯誤? NB你有沒有注意到我刪除了div上的「Visible」屬性 – jbl

+0

是的,我已經注意到並且在div標籤中沒有可見的屬性嘗試它,但是上面的錯誤再次出現。 –