c实现treeview动态显示树形结构aries524的专栏csdn博客
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C#实现TreeView动态显示树形结构- aries524的专栏-
CSDN博客
C#实现TreeView动态显示树形结构收藏
/aries524/archive/2008/10/03/3013411. aspx
今日因需要,制作了一个GridView显示树形结构的例子,查阅了不少资料,实现的过程很艰辛啊。
不具体代码拿出来,大家分享一下。
数据表的创建:
CREATE TABLE [crm_treemenu] (
[i_Id] [int] NOT NULL ,
[c_mkdm] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[v_mkmc] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[v_cdlj] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [v_img] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [i_xh] [int] NULL ,
[i_childNum] [int] NULL ,
[IsBasic] [char] (1) COLLATE Chinese_PRC_CI_AS NULL
CONSTRAINT
[DF_crm_treemenu_IsBasic] DEFAULT (1), [IsMaintainable] [char] (1) COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT
[DF_crm_treemenu_IsMaintainable] DEFAULT (0),
[C_BS] [char] (1) COLLATE Chinese_PRC_CI_AS NULL , CONSTRAINT [PK_CRM_TREEMENU] PRIMARY KEY CLUSTERED
(
[i_Id]
) ON [PRIMARY]
) ON [PRIMARY]
GO
存储过程
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
ALTER procedure ShowPrivilege
as
select c_mkdm ,v_mkmc, '0'as fdm from crm_treemenu crm_role,crm_role_Privilege
where len(c_mkdm) =2
union
select c_mkdm ,v_mkmc ,left(c_mkdm, len(c_mkdm) -2) as fdm
from crm_treemenu where len(c_mkdm) >2
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
前台代码:
JS部分用来实现选中复选框的操作,如没有必要,可删除!
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="role_Privilege.aspx.cs"
Inherits="BaseSetting_role_Privilege" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script language="javascript">
function window.onload()
{
document.getElementById("trePrivitegeInfo").onclick = OnTreeNodeChecked;//这里把TreeView名改一下~ }
function OnTreeNodeChecked()
{
var ele = event.srcElement;
if(ele.type=='checkbox')
{
ele.className = "";
var childrenDivID =
ele.id.replace('CheckBox','Nodes');
var div =
document.getElementById(childrenDivID);
if(div!=null)
{
var checkBoxs =
div.getElementsByTagName('INPUT');
for(var i=0;i<checkBoxs.length;i++)
{
if(checkBoxs[i].type=='checkbox')
checkBoxs[i].checked=ele.checked;
}
}
setParentClassName(ele);
}
}
function setParentClassName(currCheckBox)
{
var objParentNode=
public_GetParentNode(currCheckBox);
if(public_IsObjectNull(objParentNode))
return;
var checkBoxs =
objParentNode.getElementsByTagName("INPUT");
var allSelect = true;
var allUnSelect = true;
for(var i=0;i<checkBoxs.length;i++)
{