ASP:菜单.SelectedValue不工作



我一直在尝试使用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;

这些都不会以任何方式影响标签。一般来说,这种控制是否存在问题,或者我错过了一个明显的错误。谢谢。

只要您使Menu1可见并将onmenuitemclick="Menu1_MenuItemClick1"更改为onmenuitemclick="Menu1_MenuItemClick",这就可以工作了。

I Menu1需要改变可见性,请提供代码,显示你如何做到这一点。

编辑:

试着把问题分解成小块:

  1. 问题可能是您在尝试访问所选菜单项时出错
  2. 在lblUpload
  3. 中显示选中的项目可能有问题

最好的检查方法是在Menu1_MenuItemClick上设置一个断点,通过按F5开始调试,并查看Menu1.SelectedItem。文本。

Try

lblUpload.Text = e.Item.Text;

最新更新