Я ищу небольшую помощь с моим проектом здесь. В моем коде у меня есть два выпадающих списка. Первый список заполняется при загрузке страницы результатами, поступающими из запроса LDAP. Таким образом, раскрывающийся список работает хорошо и предоставляет пользователю список активных пользователей в AD.
Теперь вот моя головная боль... У меня есть элемент управления formview в моем проекте. Я разместил дополнительный выпадающий список в шаблоне edititem. Что я хочу сделать, так это скопировать содержимое первого раскрывающегося списка во второй. Проблема, с которой я сталкиваюсь, заключается в том, что когда я пытаюсь написать код для второго, я продолжаю получать сообщение об ошибке, что второй элемент управления еще не был объявлен, что на самом деле имеет смысл для меня, потому что форма на самом деле не существует на страницу, пока кто-нибудь не выберет индекс в элементе управления gridview, к которому привязано представление формы.
Я думаю, что для этого мне нужно использовать оператор .findcontrol в событии edititem formview. Однако, когда я пробовал это, я все еще получал ошибки о том, что идентификатор элемента управления не объявлен. Я буду вставлять то, что я пробовал до сих пор здесь ..
'' Здесь я заполняю этот первый выпадающий список в коде позади
Dim dirEntry As DirectoryEntry = New DirectoryEntry("LDAP:MyIPaddress", "MyDomain/Username", "MyPassword", AuthenticationTypes.FastBind)
Dim searcher As DirectorySearcher = New DirectorySearcher(dirEntry)
'' Filter the search so that it only pulls up Active user accounts. The search filter "!userAccountControl:1.2.840.113556.1.4.803:=2" removes
'' disabled users from the list. For a list of all attributes defined by Active Directory, see https://msdn.microsoft.com/en-us/library/ms675090(v=vs.85).aspx
searcher.Filter = "(&(objectClass=User)(objectCategory=person)(!userAccountControl:1.2.840.113556.1.4.803:=2))"
'' Loop through the search results and add each user as string types to list controls
Dim userNames As New List(Of String)
For Each resEnt As SearchResult In searcher.FindAll()
Dim userName As String = resEnt.Properties("name")(0).ToString()
userNames.Add(userName)
Next
userNames.Sort()
For Each userName In userNames
userList.Items.Add(userName)
Next
'' Вот что у меня пока есть в моих попытках найти второй элемент управления...
Protected Sub FormView1_DataBound(sender As Object, e As System.EventArgs) Handles FormView1.DataBound
If FormView1.CurrentMode = FormViewMode.Edit Then
DropDownList(userListEdit = FormView1.FindControl("userListEdit"))
End If
End Sub
'' Как только я пытаюсь написать последнюю строку, чтобы найти элемент управления, я получаю сообщение об ошибке, говорящее, что элемент управления не объявлен. Я пытался найти решение на многих различных форумах в Интернете. Но, похоже, ничто не дает мне именно то, что мне нужно. Кто-нибудь знает, как я могу найти этот элемент управления и скопировать содержимое кода? Заранее спасибо!