FindControl в DetailsView Не работает? - PullRequest
0 голосов
/ 31 марта 2011

У меня есть Gridview, и когда нажимается кнопка редактирования, детали этой строки отображаются с использованием подробного просмотра.

При отображении мне нужно найти элемент управления в detailsView, а затем связать его с источником данных.

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

var control=(ControlType)DetailsView1.Findcontrol("ID");

Всегда возвращает ноль.Может быть, я не использую правильное событие, и оно не может найти контроль в этот момент.Любые идеи о мероприятии, которое будет использоваться, и правильный код, пожалуйста?

Спасибо

Ответы [ 2 ]

3 голосов
/ 31 марта 2011

В вашем databound event вам необходимо позаботиться о вашем DetailsView Mode

 if (DetailsView1.CurrentMode == DetailsViewMode.Edit)
    {
      //Put here if you want to find control of your Edit Mode
      var control=(ControlType)DetailsView1.Findcontrol("EditTemplateControlID");
    }

 if (DetailsView1.CurrentMode == DetailsViewMode.Insert)
    {
        //Put here if you want to find control of your Insert Mode
      var control=(ControlType)DetailsView1.Findcontrol("InsertTemplateControlID");
    }
0 голосов
/ 17 января 2017

У меня была такая же проблема, и ответ Мухаммеда Ахтара мне не помог. Проблема была решена после изменения режима по умолчанию для DetailsView с «edit» на «insert».

Я бы также рекомендовал событие ItemCreated вместо события DataBound. Я часто использую его для установки значения по умолчанию в поле DetailsView.

...