none
Сделать неактивным поле для E-mail RRS feed

  • Вопрос

  • Здравствуйте! Как можно сделать недоступным для редактирования поле для ввода почты?

     Dim b As TextBox = CreateUserWizard1.FindControl("Email"), b.Enabled = False так не получается

    12 ноября 2012 г. 8:15

Ответы

  • Значит у Вас конрол не находится. Попробуйте через рекурсию, если несколько уровней вложенности используется:

    private static T FindControlRecursive<T>(Control rootControl, string controlId) where T : class
        {
          if (rootControl.ID == controlId) return rootControl as T;
          foreach (Control controlToSearch in rootControl.Controls)
          {
            Control controlToReturn = FindControlRecursive<Control>(controlToSearch, controlId);
            if (controlToReturn != null) return controlToReturn as T;
          }
          return null;
        }

    Правда как это будет на Vb.net, не знаю.

    • Помечено в качестве ответа Program-s.g 12 ноября 2012 г. 12:06
    12 ноября 2012 г. 11:45
    Модератор

Все ответы

  • Так должно работать, может у Вас контрол не находится или строка кода не выполняется?
    12 ноября 2012 г. 9:58
    Модератор
  • Код выполняется , так как возникает ошибка

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            RegisterUser.ContinueDestinationPageUrl = Request.QueryString("ReturnUrl")
            RegisterUser.Email = ""
            Dim b As TextBox = RegisterUser.FindControl("Email")
            b.ReadOnly = True
    
        End Sub

    Ошибка Ссылка на объект не указывает на экземпляр объекта.

    12 ноября 2012 г. 11:41
  • Значит у Вас конрол не находится. Попробуйте через рекурсию, если несколько уровней вложенности используется:

    private static T FindControlRecursive<T>(Control rootControl, string controlId) where T : class
        {
          if (rootControl.ID == controlId) return rootControl as T;
          foreach (Control controlToSearch in rootControl.Controls)
          {
            Control controlToReturn = FindControlRecursive<Control>(controlToSearch, controlId);
            if (controlToReturn != null) return controlToReturn as T;
          }
          return null;
        }

    Правда как это будет на Vb.net, не знаю.

    • Помечено в качестве ответа Program-s.g 12 ноября 2012 г. 12:06
    12 ноября 2012 г. 11:45
    Модератор