2013-05-14 3 views
1

У меня есть элемент управления Tab на одной странице ASPX с 5 вкладками. Я загружаю 5 страниц ascx этого элемента управления. У меня есть 4 дочерних элемента управления ascx во втором главном элементе управления ascx. Это что-то вроде мастера на второй главной странице ascx. Когда я загружу эту вторую TAB, я сделаю ее видимой для 1-го детского ascx-управления. Основываясь на выборе любых значений этого элемента управления, я делаю видимым true для второго дочернего элемента ascx и видимого false для 1-го дочернего элемента ascx. Это не работает. Я не вижу ничего на странице. Его загрузка пуста без каких-либо элементов управления.Ascx control visible false issue

В чем может быть проблема?

Родитель ASCX - пользовательское событие от детского ASCX

  Private Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init 
      ReviewEnterReportDetailsId.Visible = True 
      EnterReportDetailId.Visible = True 
      EnterReportViewDetail1.Visible = True 
     End Sub 

     Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
      ReviewEnterReportDetailsId.Visible = True 
      EnterReportDetailId.Visible = False 
      EnterReportViewDetail1.Visible = False 
     End Sub 

     Protected Sub ReviewEnterReportDetailsId_ERDScreenEvent(ByVal sender As Object, ByVal e As System.EventArgs) Handles ReviewEnterReportDetailsId.ERDScreenEvent 
      ReviewEnterReportDetailsId.Visible = False 
      EnterReportDetailId.Visible = True 
      EnterReportViewDetail1.Visible = False 
     End Sub 

Детского ASCX -

Просто поднимая событие, чтобы изменить следующий элемент управления

+1

Некоторый код, пожалуйста? –

+0

Добавил некоторые обновления к моему ответу - должен вас поймать. – Darren

ответ

0

Не видя реальный код это немного трудно сказать, однако, когда вы используете Visible=False, ничего об этом контроле фактически не будет отображаться .Net, поэтому ничего не видно в представлении исходного кода.

В идеале вы должны установить эти элементы управления в <div> и показать/скрыть <div> на основе ваших условий.

UPDATE

Кроме того, глядя на ваш (недавно добавленным) код, вы начинаете в Init, показав все 3, а затем в load скрыть последнее 2. Кажется, немного бессмысленно, как load является уволен сразу после init

Кроме того - если вы не обернуть load и init код в If (Not IsPostback), то он будет уволен каждый обновления страницы. Заверните свой код в If (Not IsPostback), и это предотвратит отмену load от того, что вы установили в ReviewEnterReportDetailsId_ERDScreenEvent

Смежные вопросы