#asp.net #vb.net
#asp.net #vb.net
Вопрос:
Я не уверен, возможно ли это вообще (может быть, есть другой способ достичь этого), но есть ли способ выполнить итерацию по всем гиперссылкам на Page_PreRender, и если NavigateUrl совпадает с именем файла, тогда я могу добавить класс к ссылке, чтобы показать это как активную страницу.
Или, что еще лучше, выполните итерацию по всем навигационным каталогам гиперссылок в определенном DIV.
Я могу сделать это индивидуально, но это займет слишком много времени, поскольку ссылок так много, и ими будет слишком сложно управлять:
Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
Dim filePath As String = System.Web.HttpContext.Current.Request.Path
If filePath = "/" amp; hMembership.NavigateUrl Then
hMembership.CssClass = "active"
End If
End Sub
Ответ №1:
Вы можете сделать что-то подобное в Page_PreRender:
Dim filePath As String = System.Web.HttpContext.Current.Request.Path
For Each Control As Control In Me.Form.Controls
If TypeOf (Control) Is HyperLink Then
With TryCast(Control, HyperLink)
If .NavigateUrl = filePath Then
.CssClass = "active"
End If
End With
End If
Next Control
Комментарии:
1. Спасибо, Левша, это вывело меня на правильный путь с несколькими изменениями / дополнениями.