我要实现一个效果,动态读取竖形的下拉菜单(div id=listla ;后台 Literal id=show_do 显示),点击菜单获取id,获取到的id用另一个div(后台用Literal id=lbldiv显示)显示出来——页面代码:
<div class="basic" style="float:left;"  id="list1a">
            <asp:Literal ID="show_do" runat="server"></asp:Literal>
            <asp:HiddenField ID="HiddenField1" runat="server" />
        </div>
<asp:Literal ID="lbldiv" runat="server"></asp:Literal>——后台代码: 
 private void showMenu()
    {
        IList<CTreeView> list1 = CTreeViewManager.GetMenuPrent(0);        StringBuilder st = new StringBuilder();
        StringBuilder sdd = new StringBuilder();        foreach (CTreeView ctrr in list1)
        {            st.Append(" <a>" + ctrr.Ttitle + "</a><div> ");            CTreeView ct1 = CTreeViewManager.GetCTreeViewById(Convert.ToInt32(ctrr.Id));            IList<CTreeView> list2 = CTreeViewManager.GetTreeMenu(1, ct1.Id);
            foreach (CTreeView ctrr1 in list2)
            {
                
                st.Append("<div class=\"Ptext\"  id=\"" + ctrr1.Id + "\" onclick=\"showdd('" + ctrr1.Id + "')\">" + ctrr1.Ttitle + "</div>");                sdd.Append("<div id=\"lbl"+ctrr1.Id+"\"  style=\"display:none\">"+ctrr1.Ttitle+";i="+i+"</div> ");                                lbldiv.Text = sdd.ToString();
            
            }
            st.Append("</div>");        }
        this.show_do.Text = st.ToString();
    }先在功能基本实现了,但是有一个问题:点击菜单时,div(lbldiv)是显出来了,但是再点击别的菜单是,刚才的那个值却不隐藏,新值会出现在旧值的下方,如此,越来越多。
 我现在希望,点击哪个菜单,就只出现他自己的值,别的都隐藏,现在有个思路,具体还不知道怎么实现,求解!!!先谢谢了!

解决方案 »

  1.   

    我现在的想法是,在页面上用 javascript 或者jquery ,把显示值的层都读出来,然后循环显示、隐藏,希望各位可以按照这个思路帮我解决一下
    如果更好的解决方法,也非常欢迎! 
      

  2.   

    怎么实现呢?我的脚本是这样写的: <script type="text/javascript">
        function showdd(can)
        {
              document.getElementById("lbl"+can).style.display="block";
              // alert(can);
        }
        </script>