2

コード ビハインドから 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);
}

もう1つは機能する可能性がある代替手段を試しましたが、スタックしています:

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?
}

ありがとうございました

4

1 に答える 1

0

しかし、本当に CSS クラスが必要な場合は、Attributes.Add メソッドを使用できる可能性があります...このようなものmyItem.Attributes.Add( "class", "pretty" );

于 2013-11-09T22:40:21.717 に答える