Я узнаю, как получить доступ к элементам управления главной страницей ASP.Net и попытаться расширить конкретный узел TreeView. Я делаю это с другой страницы, которая не является главной страницей.Расширение узла ASP.NET TreeView от кода
objContentPlaceHolder, objLoginView и objTreeView имеют значение, подтвержденное с помощью отладчика.
Вы можете посмотреть этот код и сообщить нам, почему код в цикле for не выполняется? Он достигает цикла for, но просто пропускает цикл for в этой точке.
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim objContentPlaceHolder As ContentPlaceHolder
Dim objLoginView As LoginView
Dim objTreeView As TreeView
objContentPlaceHolder = CType(Master.FindControl("ContentPlaceHolderBody"), ContentPlaceHolder)
If Not objContentPlaceHolder Is Nothing Then
objLoginView = CType(objContentPlaceHolder.FindControl("loginViewMain"), LoginView)
If Not objLoginView Is Nothing Then
objTreeView = CType(objLoginView.FindControl("TreeViewMain"), TreeView)
' Make sure all nodes for Maintenance are expanded.
'--------------------------------------------------
For Each treenode As TreeNode In objTreeView.Nodes
If treenode.Text = "Maintenance" Then
treenode.Expand()
End If
Next treenode
End If
End If
End Sub
* Обновление *
Я изменил обработчик события загрузки страницы в обработчик события PreRenderComplete и вы поверите, что сработало? Не знаю, почему PreRender не сделал этого. Еще раз спасибо всем за помощь.
Спасибо за образец кода. Я попробую и дам вам знать, как это работает. –
Я обнаружил, что «expandTreeNode (treenode)» не будет выполняться, потому что он находится в цикле for, который пропускается. –
@ Emad-ud-deen Я предполагаю, что ваше дерево не связано в то время, вы должны переместить этот код в обработчик события pre_render – jbl