0

だから私はメニューの情報を含む階層データソースを持っています...私はそれをListViewにデータバインドし、CSSを使用してメニューにフォーマットします..すべてが良いです..次のステップは理解できないようです. .

ハイライトするにはどうすればよいですか(のクラスを設定します

  • ) 選択したばかりのメニュー項目.. それらは単なるリンクです.. クリックされたものの ID を何らかの方法で識別し、それを使用して何らかの方法でループスルーする必要があります..?

    ここに私がこれまでに得たものがあるので、正しい方向へのヒントは何でも良いです.

     <asp:ListView ID="lvMainOuter" runat="server">
                            <LayoutTemplate>
                                <ul id="menunav" runat="server">
                                    <asp:PlaceHolder ID="itemPlaceHolder" runat="server" />
                                </ul>
                            </LayoutTemplate>
                            <ItemTemplate>
                                <li <%# (Container.DataItem as FigLeafMenuItem).ItemSelected == "true" ? @" class=""MainMenuSelected""" : @" class=""""" %>>
                                    <asp:HyperLink ID="nodeLink" runat="server" Text='<%# (Container.DataItem as FigLeafMenuItem).Name %>' NavigateUrl='<%# (Container.DataItem as FigLeafMenuItem).Url %>' />
    
                                    <asp:ListView ID="lvMainInner" DataSource="<%# (Container.DataItem as FigLeafMenuItem).Children %>" runat="server">
                                        <LayoutTemplate>
                                            <ul id="menunav" runat="server">
                                                <asp:PlaceHolder ID="itemPlaceHolder" runat="server" />
                                            </ul>
                                        </LayoutTemplate>
                                        <ItemTemplate>
                                            <li>
                                                <asp:HyperLink ID="nodeLink" runat="server" Text='<%# (Container.DataItem as FigLeafMenuItem).Name %>' NavigateUrl='<%# (Container.DataItem as FigLeafMenuItem).Url %>' />
                                            </li>
                                        </ItemTemplate>
                                    </asp:ListView>
                                </li>
                            </ItemTemplate>
                        </asp:ListView>
       public int SelectedMenuId { get; set; }
    
    protected void Page_Load(object sender, EventArgs e)
    {
        lvMainOuter.ItemDataBound += lvMainOuter_ItemDataBound;
        lvMainOuter.DataSource = new FigLeafMenu().GetFigLeafTopMenu();
        lvMainOuter.DataBind();
    
    }
    
    void lvMainOuter_ItemDataBound(object sender, ListViewItemEventArgs e)
    {
        if (e.Item.ItemType == ListViewItemType.DataItem)
        {
            ListViewDataItem dataItem = (ListViewDataItem)e.Item;
            //WHAT DO I DO NOW TO GET THE SELECTED ITEM AND ASSIGN IT A CLASS? 
        }
    }
    
  • 4

    2 に答える 2

    1

    これを試して

            <asp:ListView ID="lvMainInner" DataSource="<%# (Container.DataItem as FigLeafMenuItem).Children %>"
            runat="server">
            <LayoutTemplate>
                <ul id="menunav" runat="server">
                    <asp:PlaceHolder ID="itemPlaceHolder" runat="server" />
                </ul>
            </LayoutTemplate>
            <ItemTemplate>
                <li>
                    <asp:HyperLink ID="nodeLink" runat="server" Text='<%# (Container.DataItem as FigLeafMenuItem).Name %>'
                        NavigateUrl='<%# (Container.DataItem as FigLeafMenuItem).Url %>' />
                </li>
            </ItemTemplate>
            <SelectedItemTemplate>
                <li>
                    <asp:HyperLink ID="nodeLink" CssClass="MyHighlightClass" runat="server" Text='<%# (Container.DataItem as FigLeafMenuItem).Name %>'
                        NavigateUrl='<%# (Container.DataItem as FigLeafMenuItem).Url %>' />
                </li>
            </SelectedItemTemplate>
        </asp:ListView>
    

    または、コードビハインドを使用できます...

       lvMainInner.SelectedIndexChanged += (o, args) =>
                {
                  //You can do whatever here
                };
    
    于 2012-10-10T19:16:56.170 に答える
    0

    ハイパーリンク マークアップでは、CssClassをいくつかのステートメントに基づいて条件付きステートメントに設定できますか?

    于 2012-10-10T17:09:32.967 に答える