Если вы хотите, чтобы он был доступен с нескольких страниц, вы должны извлечь его из этого отдельного класса страниц и поместить в более глобально доступное место, такое как коллекция приложений. Учитывая наименование переменной, является ли 0SearchHandler делегатом? Я не так хорошо знаком с VB.NET или терминологией.
Обновление: Стив Морган упомянул об использовании коллекции Session, когда было упомянуто «статический» или «общий», я думал более глобально. В зависимости от того, как вы используете переменную, вы можете использовать «Приложение», если оно будет совместно использоваться пользователями и сессиями, или «Сеанс», если оно будет использоваться одним пользователем в одном сеансе. В VB.NET они оба просты в использовании:
Session("yourKey") = YourObjectYouWantToSave
Application("yourKey") = YourObjectYouWantToSave
Очень простые вещи.
'search.aspx
Public Function oSearchString(ByVal oTextBoxName As String) As String
For Each oKey As String In Request.Form.AllKeys
If oKey.Contains(oTextBoxName) Then
Session("searching") = True
Session("search-term") = Request.Form(oKey)
Return Request.Form(oKey)
End If
Next
Return ""
End Function
' theMaster.master.vb
In PageLoad Method:
...
Dim bSearching as Boolean
bSearching = IIf(Session("searching") is Nothing, False, Session("searching") )
ulSearch.visible = bSearching
...
'theMaster.master
<ul style="float: right;" runat="server" id="ulSearch">
<li>
<div class="gsSearch">
<asp:TextBox ID="searchbox" runat="server"></asp:TextBox>
</div>
</li>
<li>
<div class="gsSearch">
<asp:Button ID="searchbutton" runat="server" Text="search" UseSubmitBehavior="true" PostBackUrl="search.aspx" CssClass="searchBtn" />
</div>
</li>
</ul>
Хорошо, это некоторый дополнительный код, но я думаю, что у вас будет меньше проблем с ним. Плюс мой VB немного ржавый. На самом деле, если главной страницей является страница, на которой вы будете ее использовать, я бы поместил переменную в качестве открытого свойства на этой главной странице. Вы можете получить доступ к главной странице страниц с помощью этого .Master (по крайней мере, в C #, я думаю, что это Me.Master в VB.NET).