0


0

私がここに私の問題を投稿する前に、私は本当にそのメニューのためにjavascriptとcssを残したいと思うことに注意してください。

今私の問題に。 私は私がasp.netページに入れて問題を抱えているJavaScriptのメニューを持っています、私はより正確であるために適切なhtmlを作り出すことに問題を抱えています。

誰かが私を正しい方向に向けることができれば私は本当に感謝します。

HTMLのメニューは次のようになります。

ホーム


私達についてよくある質問

私たちのチーム
ブログ

お問い合わせ

ご覧のように、* div *は、私が単に_linkをdiv_にラップした子を持たない単一のメニューでは対称的ではありません。 _

私はasp.net側でこのメニューのためにそのようなことをしようとしました(今の名前をリンクすることに気を付けないでください、それらは重要ではありません):

<%#Eval( "menu_name")%>

<%#Eval( "menu_name")%>

そして背後にあるコードは非常に単純で特別なことは何もありません、私がするのはただ最初のリピーターの内側にある2番目のリピーターをバインドしてパネルを表示または非表示にすることです

保護された無効rpt_Menu_DataBound(オブジェクトobj、RepeaterItemEventArgs e){int parent_id = Int32.Parse(((HiddenField)e.Item.FindControl( "hdn_Id"))。Value.ToString()); using(SamaraDataContext mycity = new SamaraDataContext()){var subMenu = mycity.tbl_menus内のsmからここで(sm.menu_parent == parent_id)を選択します。new {menu_id = sm.menu_id、menu_name = sm.menu_name};

int count = 0; foreach(subMenuのvarアイテム){count; }

if(count> 0){((Panel)e.Item.FindControl( "pnl_MainSubmenuDiv"))Visible = true; ((Panel)e.Item.FindControl( "pnl_MainSubmenuClose"))。Visible = true; ((Repeater)e.Item.FindControl( "rpt_SubMenu"))。DataSource = subMenu.ToList(); ((Repeater)e.Item.FindControl( "rpt_SubMenu"))。DataBind(); this.index; }}}}

しかし、私の問題は、パネルが隠されていてもパネルがdivを生成することです。これにより、すべてのhtml構造が分割されます。

私は、divをコードの内側に配置することを嫌います。

2 Answer


2


このセクションの1つの理由で、まあまあです。


Visibleがtrueに設定されている場合、無効なHTMLをレンダリングします。そのため、JavaScriptとCSSのやり取りが遅くなる可能性があります。

そのようになるでしょう。


Panelコントロールが囲んでいるものすべてに対応します。 それで、それを回避する方法を考え出すと、あなたはおそらくあなたの問題を解決するでしょう。


1


bleshの回答を補足するには、 `+ Panel `の代わりに ` PlaceHolder +`コントロールを使用します。 プレースホルダーは、コンテンツを囲むHTMLをレンダリングしません。