Обработка событий в Meny

KaPrAL666
Дата: 26.03.2010 14:27:50
Добрый день!
Извините за безграмотность, так как с ASP.NET работаю третий день.
Мой проект состоит из трёх форм: Default.aspx, 1.aspx и 2.aspx. На Default.aspx есть меню и TextBox. Нужно сделать так, чтобы значение из TextBox-а было доступно на всех формах.
Если делать так:
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    End Sub

    Protected Sub Menu1_MenuItemClick(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.MenuEventArgs) Handles Menu1.MenuItemClick
        Menu1.Items(0).NavigateUrl = "~/1.aspx"
        Menu1.Items(1).NavigateUrl = "~/2.aspx"
        Session("Direktoria") = TextBox1.Text
    End Sub

то событие срабатывает со второго раза, да и использовать Session не хочется, так как значение TextBox может поменяться... Как быть?
prustr
Дата: 26.03.2010 16:00:47
Безграмотность, как и бедность - не порок.
Но немного раздражает то, что ничего из вашего поста непонятно вообще. Поэтому и ответов нет.
prustr
Дата: 26.03.2010 16:04:49
передавайте через параметры строки запроса

Protected Sub Menu1_MenuItemClick(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.MenuEventArgs) Handles Menu1.MenuItemClick

        Menu1.Items(0).NavigateUrl = "~/1.aspx?param=" + TextBox1.Text;
        Menu1.Items(1).NavigateUrl = "~/2.aspx?param=" + TextBox1.Text;
       
End Sub

Zoria
Дата: 26.03.2010 16:19:00
prustr,

cудя по всему, топикстартер только в событии MenuItemClick присваивает NavigateUrl поэтому переход на другую страницу происходит лишь при повторном клике на меню
prustr
Дата: 26.03.2010 16:23:29
ну так ясень пень инициализацию меню это надо перенести в Page_Load.
Я конечно не заметил, но разработчик то куда смотрел?
prustr
Дата: 26.03.2010 16:32:23
короче, все так.
1. Меню не должно никуда ничего перенапрявлять, если мы хотим сохранить значение Text без задействования javascript.
2. Меню надо переделать в обчный dropdownlist, ну или если очень хочется, то в меню, но кнопочного типа.

тогда будет возможно сделать так
  
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.MenuEventArgs) Handles Menu1.MenuItemClick
        switch (Menu1.SelectedIndex)
{
  case 0:      
Response.Redirect("1.aspx?param=" + TextBox1.Text)
break
case 1: 
Response.Redirect("2.aspx?param=" + TextBox1.Text)
break
}
    End Sub


но меню здесь явно перегрузка, да передавать значение текстбокса на другую страницу - ересь.