2014-10-18 1 views
1

У меня есть форма asp с главной страницей и ContentPlaceHolder Я хочу найти все элементы управления (флажок, текстовое поле, макет, ...) на моей странице Я делаю это (без мастер-страницы)) нормальныйполучить элементы управления в ContentPlaceHolder asp.net с для каждого

Dim c As Control 
    For Each c In Page.Controls 
     For Each childc In c.Controls 
       If CType(childc, TextBox).Text <> "" Then 

но этот код не отвечать MasterPage я не нужен этот код

TextBox TB=Master.FindControl("ContentPlaceHolder1").FindControl("textbox1") as TextBox; 

beacuse я хочу, чтобы все элементы управления

+0

Вы можете начать с 'FindControl (« ContentPlaceHolder1 »). Контролирует' вместо 'Page.Controls'. Но это не будет работать с вложенным контролем (например, в «Panel» или даже «GridView»). Зачем тебе это. Поиск в нужном месте, а не зацикливание всех дочерних элементов управления. –

+0

спасибо, что у меня около 60 элементов управления (текстовое поле, drp, chk, ...) и базы данных, которые я хочу, когда пользователь нажимает кнопку отправки из этого цикла для поиска всех элементов управления и сохраняет значения в базе данных. Я делаю это без мастер-страницы правильно, но я не могу сделать теперь я тестирую ваше решение и chane page.control, но визуальная студия говорит об ошибке «Ссылка на объект не установлена ​​на экземпляр объекта» – user1670642

ответ

2

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

For Each c In Master.FindControl("ContentPlaceHolder1").Controls 
    If TypeOf c Is TextBox Then 
     Dim text As TextBox = CType(c, TextBox) 
     ' Write code textbox handling 
    End If 
    If TypeOf c Is CheckBox Then 
     Dim chk As CheckBox = CType(c, CheckBox) 
     ' Write code checkbox handling 
    End If 
    If TypeOf c Is DropDownList Then 
     Dim ddl As DropDownList = CType(c, DropDownList) 
     ' Write code Dropdownlist handling 
    End If 
Next 
+1

благодарит каждый орган – user1670642