2011-04-20 59 views
4

問:酒店設置後,相同的值也

我有一個面板中的知名度=在.aspx檔案造假,在我的代碼設置的知名度一些點= true.but 問題是:當我追蹤代碼時,我發現可見屬性仍然等於假,儘管我將它設置爲true。 我的面板的名字是:pnl_DetailsGeneral

protected void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      if (RadioButtonList1.SelectedValue == "2") 
      { 
       drp_Week.Enabled = false; 
       gv_Details.Visible = false; 
       panel_rmv.Visible = false; 
       pnl_DetailsGeneral.Visible = true;//Here when i put a break point and after setting visible to true i find `pnl_DetailsGeneral.Visible = false` 
       gv_DetailsGeneral.Visible = true; 
       BindGridGeneral(); 

      } 
      else if (RadioButtonList1.SelectedValue == "1") 
      { 
       drp_Week.Enabled = true; 
       gv_Details.Visible = true; 
       gv_DetailsGeneral.Visible = false; 
       pnl_DetailsGeneral.Visible = false; 
       if (drp_Week.SelectedValue != "-1") 
       { 

        BindGrid(); 
       } 
      } 
     } 

什麼可能導致這個問題?

+0

你的RadioButtonList上有AutoPostBack =「true」嗎? – 2011-04-20 10:53:55

回答

4

Visible屬性有一個特殊的屬性:當你讀取它的值時,它不僅報告控件本身,還報告它的父項。您獲得的價值是「真實」的知名度。

顯然,你的控制的父母仍然是看不見的!

當您將父級設置爲可見時,您的控件也將變爲可見。

1

我相信Control.Visible屬性返回false,如果任何父母有Visible = false。

1

可能的解釋是通過控制層次結構的隱式可見性。例如,如果您的佔位符不包含其他控件,並且佔位符的可見性設置爲false,那麼即使您自己明確設置了該屬性,它的所有子控件也都會將Visible設置爲false。