ASP: Menu.SelectedValue не работает - PullRequest
0 голосов
/ 18 июля 2011

Я пытался использовать свойство ASP: Menu.SelectedValue, но оно не работает, поэтому, если кто-то использовал это раньше, пожалуйста, читайте дальше.Вот код.

<asp:Menu ID="Menu1" runat="server" BackColor="#B5C7DE" 
            DynamicHorizontalOffset="2" Font-Names="Verdana" Font-Size="0.8em" 
            ForeColor="#284E98" onmenuitemclick="Menu1_MenuItemClick1" 
            StaticSubMenuIndent="10px" Visible="False">
            <DynamicHoverStyle BackColor="#284E98" ForeColor="White" />
            <DynamicMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" />
            <DynamicMenuStyle BackColor="#B5C7DE" />
            <DynamicSelectedStyle BackColor="#507CD1" />
            <Items>
                <asp:MenuItem Selectable="False" Text="Analysis" Value="Analysis">
                    <asp:MenuItem Selectable="False" Text="Descriptive" Value="Descriptive">
                        <asp:MenuItem Text="Mean" Value="Mean"></asp:MenuItem>
                        <asp:MenuItem Text="Median" Value="Median"></asp:MenuItem>
                        <asp:MenuItem Text="Mode" Value="Mode"></asp:MenuItem>
                    </asp:MenuItem>
                </asp:MenuItem>
            </Items>
            <StaticHoverStyle BackColor="#284E98" ForeColor="White" />
            <StaticMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" />
            <StaticSelectedStyle BackColor="#507CD1" />
</asp:Menu>

И код позади

protected void Menu1_MenuItemClick(object sender, MenuEventArgs e)
        {
            MenuItem selectedItem = Menu1.SelectedItem;
            lblUpload.Text = Menu1.SelectedItem.Text;

            if (Menu1.SelectedItem.Text == "Mean")
            {
                lblSet.Visible = true;
                DropDownList1.Visible = true;
                btnCalculate.Visible = true;
            }
        }

Я добавил в строку

 lblUpload.Text = Menu1.SelectedItem.Text;

, чтобы проверить вывод на видимом и работающемлейбл, но ничего не возвращается.Кто-нибудь может увидеть проблему с этим?Я также проверил;

lblUpload.Text = SelectedItem.Text/.value;
lblUpload.Text = Menu1.SelectedItem.Value;
lblUpload.Text = Menu1.SelectedItem.ValuePath;

Ни один из них так или иначе не влияет на лейбл.Есть проблемы с этим контролем вообще, или я пропускаю очевидную ошибку.Спасибо за любые отзывы.

Ответы [ 2 ]

0 голосов
/ 18 июля 2011

Это работает, как только вы сделаете Menu1 видимым и измените onmenuitemclick = "Menu1_MenuItemClick1" на onmenuitemclick = "Menu1_MenuItemClick".

I Menu1 необходимо изменить видимость, предоставьте код, который показывает, как вы это делаете.

Отредактировано:

Попробуйте разбить проблему на мелкие кусочки:

  1. Возможно, проблема в том, что вы пытаетесь получить доступ к выбранному пункту меню
  2. У вас могут быть проблемы с отображением выбранного элемента в lblUpload

Лучший способ проверки - установить точку останова на Menu1_MenuItemClick, начать отладку, нажав F5, и взглянуть на Menu1.SelectedItem.Text.

0 голосов
/ 18 июля 2011

Попробуйте

lblUpload.Text = e.Item.Text;
...