свойство имеет то же значение после его установки - PullRequest
4 голосов
/ 20 апреля 2011

Q:

У меня есть панель visibility = false в файле .aspx, в какой-то момент в моем коде я установил visibility = true.but проблема в : когда я отслеживаю код, я нахожу видимое свойство по-прежнему равно false, хотя я установил его в 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();
                }
            }
        }

что может вызвать эту проблему?

Ответы [ 3 ]

4 голосов
/ 20 апреля 2011

Свойство Visible имеет специальное свойство: когда вы читаете значение, оно сообщает не только о самом элементе управления, но и о его родительском элементе. Получаемое вами значение является «реальной» видимостью.

Так что, очевидно, родитель вашего контроля все еще невидим!

Когда вы установите для родителя значение Visible, ваш элемент управления также станет видимым.

1 голос
/ 20 апреля 2011

Возможное объяснение - неявная видимость через иерархию элементов управления.

Например, если у вас есть местозаполнитель, который содержит другие элементы управления, а заполнитель имеет видимое значение false, все его дочерние элементы управления также будут иметь Visible, устанавливающий значение false, даже если вы явно задаете свойство самостоятельно.

1 голос
/ 20 апреля 2011

Я считаю, что свойство Control.Visible возвращает false, если какой-либо из родителей имеет Visible = false.

...