我遇到的关于下拉列表内容呈现的问题,现在和大家分享
父节点1
-子节点a
--子节点aaaa
--子节点bbbb
-子节点 b
父节点2
-子节点a
-子节点 b
这种形式可以从数据库里读出来, 可是绑定到下拉框里就没的 ,这里涉及到空格被清除的问题
解决办法:用中文全角度空格可以解决这个问题。
下面提供数据库中的查询方法:直接拿过去用好了。
if object_id('pp') is not null
drop proc pp
go
create proc pp @t varchar(20)
as
begin
declare @sql varchar(max)
set @sql='
DECLARE @t_Level TABLE(ID char(3),Level int,Sort varchar(8000))
DECLARE @Level int
SET @Level=0
INSERT @t_Level SELECT ID,@Level,ID FROM '+@t+' WHERE PID IS NULL
WHILE @@ROWCOUNT>0
BEGIN
SET @Level=@Level+1
INSERT @t_Level SELECT a.ID,@Level,b.Sort+a.ID
FROM '+@t+' a,@t_Level b
WHERE a.PID=b.ID
AND b.Level=@Level-1
END
--显示结果
SELECT SPACE(b.Level*2) +''|-- ''+ a.Name
FROM '+@t+' a,@t_Level b
WHERE a.ID=b.ID
ORDER BY b.Sort'
exec (@sql)
end
go
--> 测试数据:[tb]
if object_id('[tb]') is not null drop table [tb]
create table [tb]([ID] varchar(3),[PID] varchar(3),[Name] varchar(6))
insert [tb]
select '001',null,'山东省' union all
select '002','001','烟台市' union all
select '004','002','招远市' union all
select '003','001','青岛市' union all
select '005',null,'四会市' union all
select '006','005','清远市' union all
select '007','006','小分市'
go
exec pp 'tb'