我要实现一个效果,动态读取竖形的下拉菜单(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)是显出来了,但是再点击别的菜单是,刚才的那个值却不隐藏,新值会出现在旧值的下方,如此,越来越多。
我现在希望,点击哪个菜单,就只出现他自己的值,别的都隐藏,现在有个思路,具体还不知道怎么实现,求解!!!先谢谢了!
<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)是显出来了,但是再点击别的菜单是,刚才的那个值却不隐藏,新值会出现在旧值的下方,如此,越来越多。
我现在希望,点击哪个菜单,就只出现他自己的值,别的都隐藏,现在有个思路,具体还不知道怎么实现,求解!!!先谢谢了!
解决方案 »
- 怎么做出视频播放效果
- GridView“gv”激发了未处理的事件“RowUpdating”。但是我定义了事件啊,求高手指点
- jquery问题 为什么返回 object 实在是没分了 请大家帮忙
- 大家web开发都用什么图表组件chardirector?flashchart?dundas chart?。。。
- 一个上午没有解决的问题aspx?userid={0}&month={1}
- asp.net页面增加了ajax后的数据库查询失效问题
- document.getElementById("zz").style.display="block";
- 还是刚才巨菜的问题,马上结帐,来晚没分了!
- Runtime Error 问题 求大神啊
- 写自定义控件的时候怎么判断是否处于设计时?
- The source contains no DataRows.
- 啥方法能重复显示类似formview的内容?
如果更好的解决方法,也非常欢迎!
function showdd(can)
{
document.getElementById("lbl"+can).style.display="block";
// alert(can);
}
</script>