/ / FindControl w DetailsView Nie działa? - c #, .net, asp.net, visual-studio, podgląd szczegółów

FindControl w DetailsView Nie działa? - c #, .net, asp.net, visual-studio, szczegóły

Mam widok siatki i po kliknięciu przycisku edycji szczegóły tego wiersza są wyświetlane za pomocą widoku szczegółów.

Podczas wyświetlania muszę znaleźć formant w detailsView, a następnie powiązać go ze źródłem danych.

Przede wszystkim nie jestem pewien co do zdarzenia, które ma być użyte, ale użyłem DetailsView1_DataBound. Jeśli jednak muszę znaleźć formant za pomocą

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

Zawsze zwraca zero. Być może nie używam odpowiedniego zdarzenia i nie mogę w tym momencie znaleźć kontroli. Masz jakieś pomysły na temat zdarzenia, które ma zostać użyte, i proszę o odpowiedni kod?

Dzięki

Odpowiedzi:

3 dla odpowiedzi № 1

W Twoim databound eventmusisz zadbać o swoje 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 dla odpowiedzi nr 2

Miałem ten sam problem i odpowiedź Mahometa Akhtara mi nie pomogła. Problem został rozwiązany po zmianie domyślnego trybu DetailsView z „edytuj” na „wstaw”.

Poleciłbym również zdarzenie ItemCreated zamiast zdarzenia DataBound. Używam go często do ustawiania wartości domyślnej w polu DetailsView.