现在要做一个dropdownlist级联.. 效果如下:
|-(这只是一个样式,无所谓的)作为一级分类
|-中国
|-北京市
|-海淀区
|-韩国
当我选择一级分类时,在文本框里输入美国后,执行添加,就会加到最顶级里去
效果如下:
|-中国
|-北京市
|-海淀区
|-韩国
|-美国
当我选择中国时,在文本框里输入湖南省后,执行添加,就会加到中国里去
效果如下:
|-中国
|-北京市
|-海淀区
|-湖南省
当我选择北京市进行添加的时候,在文本框里输入XX区后,执行添加,效果如下
|-中国
|-北京市
|-海淀区
|-XX区
|-湖南省
数据库表结构如下:
[id] [int] IDENTITY(1,1) NOT NULL,--编号,自动增长
[lan] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,--多国化语言(这里可以不用到)
[name] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,--地区名称
[parentid] [int] NOT NULL,--父级编号
[num] [nvarchar](50),--编号
请问哪位大虾可以帮小弟实现一下?我们主管说是用到递归,但是小弟不会.. 请各位大虾帮帮忙.. 还有,我不需要用到JS.我用的是vs2003 .net1.1版本的.
|-(这只是一个样式,无所谓的)作为一级分类
|-中国
|-北京市
|-海淀区
|-韩国
当我选择一级分类时,在文本框里输入美国后,执行添加,就会加到最顶级里去
效果如下:
|-中国
|-北京市
|-海淀区
|-韩国
|-美国
当我选择中国时,在文本框里输入湖南省后,执行添加,就会加到中国里去
效果如下:
|-中国
|-北京市
|-海淀区
|-湖南省
当我选择北京市进行添加的时候,在文本框里输入XX区后,执行添加,效果如下
|-中国
|-北京市
|-海淀区
|-XX区
|-湖南省
数据库表结构如下:
[id] [int] IDENTITY(1,1) NOT NULL,--编号,自动增长
[lan] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,--多国化语言(这里可以不用到)
[name] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,--地区名称
[parentid] [int] NOT NULL,--父级编号
[num] [nvarchar](50),--编号
请问哪位大虾可以帮小弟实现一下?我们主管说是用到递归,但是小弟不会.. 请各位大虾帮帮忙.. 还有,我不需要用到JS.我用的是vs2003 .net1.1版本的.
解决方案 »
- 关于Page.RegisterStartupScript()的问题
- 100分求助,如何在ASP.NET2.0中把GridView中的数据导出到excel文件中?
- Visual Studio 2005 express edition有中文正式版吗?
- 求助~~
- 正则表达式文体????
- .NET里用excel做报表,我已经能产生报表文件并SAVEAS到本地机器,我如何不SAVEAS直接输出到客户端浏览器上?难道必须重定向到那个EXCEL文件
- asp.net 初级问题
- 业务逻辑层与表示层的信息传递问题,大家给个建议!
- bool型怎么转整型呢 ?(急)
- 帮帮忙啊!很急的50分
- 数据库备份语句错了么?
- 在GridView里的LinkButton控件如何获得该行文本框的值?谢谢!
不是什么级联 只是一个和TREE树状结构而已
对于你在一个DropDownList里完成的话,那不是DropDownList的级联.
有很好的效果!!!!!
{
//根据parentId读数据库集合
InfoList infoList = DBFunction.GetInfByParentId(List);
//设置显示效果
string html = "|-";
for(int i = 0; i < index; i ++)
{
html = " " + html;
}
//递归
foreach(Info info in infoList)
{
dropdownList.items.add(info.id,html + info.name);
GetInfoList(info.id,index++);
}
}page_load()
{
dropdownList.items.clear();
GetInfoList(0,0);
}大概是这样子。可以根据自己的要求调整下。
<item text="运销管理" id="YXMG" im0="folderClosed.gif">
<userdata name="url">
../Module
</userdata>
<userdata name="thisurl">
../Module/WG.aspx
</userdata>
<!--运销报表-->
<item text="运销报表" id="3" im0="leaf_new.gif">
<userdata name="url">
../Module
</userdata>
<userdata name="thisurl">
../Module/YunXiao.aspx
</userdata>
</item> <!--襄樊处魏岗站原油运销统计月报表-->
<item text="襄樊处魏岗站原油运销统计月报表" id="3" im0="leaf_new.gif">
<userdata name="url">
../Module
</userdata>
<userdata name="thisurl">
../Module/YunXiao.aspx
</userdata>
</item> <!--襄樊处荆门站原油运销统计月报表-->
<item text="襄樊处荆门站原油运销统计月报表" id="3" im0="leaf_new.gif">
<userdata name="url">
../Module
</userdata>
<userdata name="thisurl">
../Module/YunXiao.aspx
</userdata>
</item> <!--襄樊处原油运销统计月报表-->
<item text="襄樊处原油运销统计月报表" id="3" im0="leaf_new.gif">
<userdata name="url">
../Module
</userdata>
<userdata name="thisurl">
../Module/YunXiao.aspx
</userdata>
</item>
</item>
String.prototype._dhx_trim = function(){
return this.replace(/ /g," ").replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g,"");
}
/* get node as incoming parameter */
var node=null;
var t=document.location.href.split("?");
var type=null;
var base=t[0].replace("/ReportIndex.s?html","");
if(t[1]!=null){
var u=t[1].split("&");
for(var q=0;q<u.length;q++){
if((node==null)&&(u[q].split("=")[0]=="node")){
node=(u[q].split("=")[1]!=null?u[q].split("=")[1]:null);
if(node!=null){
if(node.length==0){
node=null;
}
};
}
if((type==null)&&(u[q].split("=")[0]=="type")){
type=(u[q].split("=")[1]!=null?u[q].split("=")[1]:null);
}
};
};
function correctSizes(){
document.getElementById('tabbarconteiner').style.height = (document.body.offsetHeight - 210)+'px'
}
/* init tree */
var tree;
var tree_smpl
function loadTree(){
tree=new dhtmlXTreeObject("doctree_box","100%","100%",0);
tree.setImagePath("imgs/");
tree.setOnClickHandler(function(id){openPathDocs(id);});
tree.attachEvent("onOpenEnd",updateTreeSize);
tree.enableCheckBoxes(false);
tree.loadXML("XML/docs_tree.xml?nu=1",autoselectNode);
}
/* open path funtion */
function openPathDocs(id)
{
if (id == "WGG" || id == "kb_faq01" || id == "hj" || id == "JM")
{
return;
}
var struserId = Report_ReportIndex.GetUserID().value;
if (struserId == "null" || struserId == "")
{
window.open('../login.aspx','_parent');
return;
}
var ds = Report_ReportIndex.GetAuthority(id).value;
if (ds.Tables[0].Rows[0].A == 0)
{
alert("你没有操作该报表的权限");
document.getElementById("sampleframe").setAttribute("src","../Module/RptIndex.aspx");
return;
}
if(tree.getUserData(id,"thisurl")!=null){
window.frames.sampleframe.location.href = tree.getUserData(id,"thisurl");
return;
}
var entUrl = "";
var getFileFl = true;
var suffix = "#"+id
do{
var url = tree.getUserData(id,"url");
if(url!=null){
if(getFileFl){
entUrl = url.toString()._dhx_trim()+suffix;
getFileFl = false;
}else{
var arTmp = url.split("/");
if(arTmp[arTmp.length-1].indexOf(".")!=-1){
arTmp[arTmp.length-1] = "";
url = arTmp.join("/");
}
if(url!="")
entUrl = url.toString()._dhx_trim()+"/"+entUrl;
}
}
id = tree.getParentId(id);
}while(id!="0")
window.frames.sampleframe.location.href = entUrl
}
function updateTreeSize(){
this.allTree.style.overflow = "visible";
this.allTree.style.height = this.allTree.scrollHeight+"px";
}
function autoselectNode(){
if(type=="smpl"){
tree_smpl.selectItem(node,true);tree_smpl.openItem(node)
}else{
tree.selectItem(node,true);tree.openItem(node)
}
} </script>