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がそうしなかった理由はわかりませんが、それだけでした。皆様のご協力に改めて感謝いたします。