gpt4 book ai didi

c# - e.Item.Text 返回另一个菜单项的文本

转载 作者:太空宇宙 更新时间:2023-11-03 13:15:27 25 4
gpt4 key购买 nike

我在 ASP.NET 中有一个菜单,如下图所示:

vertical hierachical menu

我已经动态创建了那个菜单。这是 C# 代码:

private void GetMenuItems()
{
string cs = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
SqlConnection con = new SqlConnection(cs);
SqlDataAdapter da = new SqlDataAdapter("spGetMenuData", con);
DataSet ds = new DataSet();
da.Fill(ds);

foreach (DataRow dr in ds.Tables[0].Rows)
{
if (dr["ParentID"].ToString().Trim() == "")
{
MenuItem item = new MenuItem();
item.Text = dr["MenuItemName"].ToString();
//item.NavigateUrl = dr["NavigateUrl"].ToString();
item.Value = dr["NavigateUrl"].ToString();
//item.ToolTip = dr["MenuItemID"].ToString();

foreach (DataRow drChild in ds.Tables[0].Rows)
{
if (drChild["ParentID"].ToString() == dr["MenuItemID"].ToString())
{
GetChildItems(ds, drChild, item);
}
}

Menu1.Items.Add(item);
}
}
}

private static void GetChildItems(DataSet ds, DataRow dr, MenuItem item)
{
MenuItem childItem = new MenuItem();
childItem.Text = dr["MenuItemName"].ToString();
//childItem.NavigateUrl = dr["NavigateUrl"].ToString();
childItem.Value = dr["NavigateUrl"].ToString();
//childItem.ToolTip = dr["MenuItemID"].ToString();

foreach (DataRow drChild in ds.Tables[0].Rows)
{
if (drChild["ParentID"].ToString() == dr["MenuItemID"].ToString())
{
GetChildItems(ds, drChild, childItem);
}
}

item.ChildItems.Add(childItem);
}

我在 Page_Load 事件中使用 IsPostBack = false 调用上面的 GetMenuItems() 方法。

现在我有如下 OnMenuItemClick:

protected void Menu1_MenuItemClick(object sender, MenuEventArgs e)
{
Session["SelectedMenuItemName"] = e.Item.Text;
Response.Redirect(e.Item.Value);
}

现在,假设我如上图所示单击鼠标,当我选中 e.Item.Text 时,我得到“笔记本电脑”,这是同一级别的第一个项目。以类似的方式,如果我在 Electronics 下选择任何项目,我将得到 e.Item.Text = "Laptop"。我也尝试过 Menu1.SelectedItem.Text 但我仍然遇到同样的问题。

最佳答案

我认为是 MenuItem 的 Value 属性的问题。

我的意思是不要将 NavigateUrl 存储在 MenuItem 的值属性中。

然后尝试运行您的项目,我相信您会在 e.Item.Text 中获得所需的值。

如果您有任何问题,请随时在这里发表评论。

谢谢。

关于c# - e.Item.Text 返回另一个菜单项的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26455749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com