ASP.NET:如何在代码隐藏中为菜单项设置 cssclass

标签 asp.net css menu styles menuitem

如何从代码隐藏中为 ASP.NET 菜单控件的每个菜单项设置不同的 cssclass? 所有这些菜单项都在 level2。所以这样的事情是行不通的,因为 level2 上的所有菜单项最终都会有相同的 cssclass(level2class),我希望能够为每个菜单项设置不同的样式:

<LevelMenuItemStyles>
    <asp:MenuItemStyle CssClass="level1class"/>
    <asp:MenuItemStyle CssClass="level2class"/>    
</LevelMenuItemStyles>

所以我想做这样的事情:

MenuItem myMenu = new MenuItem();
myMenu.Text = "MyMenu";
Menu1.Items.Add(myMenu); //Menu1 is the name of the asp.net Menu control

foreach (DataRow row in myDataTable.Rows)
 {
    MenuItem myItem = new MenuItem();
    string myItemName = row["myItemName"].ToString();
    myItem.Text = myItemName; 

    //HERE COMES THE PROBLEM. I'M NOT ABLE TO DEFINE A DIFFERENT CSSCLASS FOR EACH MENUITEM.
    if (myItemName == "x1")
    { 
          myItem.CssClass = "x1class";  //THIS DOES NOT WORK AS MENUITEM DOES NOT HAVE CSSCLASS PROPERTY
    }
   else if (myItemName == "x2")
   {
         myItem.CssClass = "x2class";  //THIS DOES NOT WORK AS MENUITEM DOES NOT HAVE CSSCLASS PROPERTY
   }

   myMenu.ChildItems.Add(myItem);
}

另一个尝试过的替代方案可能有效但也卡住了:

if (myItemName == "x1")
 { 
     MenuItemStyle ms = new MenuItemStyle();
     ms.CssClass = "x1class";
     //HOW DO I SET ms OBJECT TO THE myItem OBJECT?
}
else if (myItemName == "x2")
{
     MenuItemStyle ms = new MenuItemStyle();
     ms.CssClass = "x2class";
     //HOW DO I SET ms OBJECT TO THE myItem OBJECT?
}

谢谢

最佳答案

但是如果你真的想要一个 CSS 类,你可以使用 Attributes.Add 方法...像这样 myItem.Attributes.Add( "class", "pretty");

关于ASP.NET:如何在代码隐藏中为菜单项设置 cssclass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19883721/

相关文章:

c# - 将值作为参数绑定(bind)到 javascript 方法

javascript - 图片尺寸限制

javascript - 如何将图像转换为 HTML 页面中的文本框?

css - bootstrap 在某些断点处改变 flex 方向?

bash - 为什么我的菜单第一次选择失败?

asp.net - 为什么输入元素不呈现在 ASP.Net MVC 中传递的值?

asp.net - 模型在发送到 Controller 的表单上始终为 NULL

html - 如何使用 CSS 使菜单中的一个列表项高于其他列表项?

javascript - 为什么这适用于 Safari 和 Firefox 而不是 Chrome?

css - 使用 CSS 代码更改菜单位置