2017-08-23 75 views
0

隱藏一個div內的按鈕,我有一個aspx頁面,我想隱藏CS文件基於我的一些條件按鈕從代碼

我的.aspx的樣子:

<asp: Content Id="contentid" > 
<% if (!IsRedeemCardFlowOptin) 
     { %> 
     <ul id="ulid" class="abc">  
     </ul> 
     <div class="bcd" id ="div1"> 
       <div id="div2"></div> 
       <div id="div3"></div> 
      <div id="div4" runat="server"> 
        <h4><%= m_AutoRenewInfo.NewPageContent.ArCsidOffHeader%></h4> 
        <button class="abc bcd cde" title="Button" id="buttondiv"><span>Button</span></button> //Want to hide this button 
       </div> 
      </div> 
<% } %> 
</asp:Content> 

現在在CS文件我想隱藏ID爲「buttondiv」按鈕,我怎麼能做到這一點

在我的CS文件,我嘗試這2個東西,但它不工作

Control myDiv = (Control)FindControl("buttondiv"); 
myDiv.Visible = false; 

或者

foreach (Control c in contentid.Controls) 
{ 
    if (c.ID == "buttondiv") 
     { 
      c.Visible = false; 
     } 
} 

任何人都可以讓我知道

+0

只要給該按鈕包含CSS類:'顯示:none'。 –

+0

我想在cs文件的基礎上,根據一些條件 – remitly1

+0

所以,只需在.cs代碼中有條件地添加類。 –

回答

1

爲了被用作服務器端控件,該按鈕將需要服務器端控制。添加runat="server"

<button class="abc bcd cde" title="Button" id="buttondiv" runat="server"> 

然後(除非你已經打破了設計師在某種程度上,它已經有一段時間,因爲我已經使用Web窗體),你應該在你的類的對象HtmlControl您可以設置,而無需「找到」控件:

this.buttondiv.Visible = false; 
+0

我在上面的div中保留了'runat =「server」',因爲我不想讓頁面刷新,並且我在該按鈕上有一些JavaScript關聯,所以不能在按鈕上保留'runat =「server」''。 – remitly1

+0

@ remitly1:爲什麼你不能讓按鈕成爲服務器端控件?這正是您在代碼隱藏方面所要做的。如果這樣做會導致其他不相關代碼出現其他問題,請解決該問題。雖然我想你還有其他選擇,例如圍繞服務器端條件語句中的按鈕來發出或不發出基於某些類級別條件的按鈕。不過,這並不是真正的「網絡形式」。 – David

0

請保留在css文件中。

#buttondiv{ 
display:none; 
} 

或應用風格的行內象下面這樣:

<button class="abc bcd cde" title="Button" id="buttondiv" style="display:none"><span>Button</span></button> 
+0

這與在代碼隱藏中設置'.Visible'屬性的效果非常不同。在CSS的情況下,HTML內容仍然發送給客戶端。從服務器端進行設置時,不是。 – David

+0

他意味着根據他有服務器端的條件來隱藏它,而不是隻是總是隱藏元素 – quirimmo

+0

哦,好吧,得到了 –