Coolite comboBox控件动态显示树形结构(无限树)
2010-07-18 16:17
323 查看
效果图:
前台部份:
<ext:Store ID="Store1" runat="server" AutoLoad="false" >
<Reader>
<ext:JsonReader ReaderID="id">
<Fields>
<ext:RecordField Name="id" Type="String" Mapping="id" />
<ext:RecordField Name="name" Type="String" Mapping="name" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:ComboBox ID="cboSortCoding" runat="server" Enabled="true" FieldLabel="知识类别" EmptyText="请选择知识类别"
AllowBlank="false" BlankText="请选择知识类别!" Width="260" DisplayField="name" ValueField="id"
StoreID="Store1" Editable="false" />
后台部分:
System.Data.DataView dv;
List<object> data = new List<object>();
int NodeLevelNum = 0;
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
clsDA_kno_KnowledgeSort myKnoSort = new clsDA_kno_KnowledgeSort();//读数据库
dv =myKnoSort.m_Select().DefaultView;//得到DataTable
m_InitKnoSort(0);
this.Store1.DataSource = data;
this.Store1.DataBind();
}
}
//初始化下拉菜单
private void m_InitKnoSort(int intParentNote)
{
dv.RowFilter = String.Format("ParentNode={0}", intParentNote);
foreach (DataRowView drv in dv)
{
if (intParentNote != 0)//第一个节点不加
{
string strNodeName = drv["NodeName"].ToString();
strNodeName = m_NodeLevel(intParentNote) + strNodeName;
data.Add(new { id = drv["Node"].ToString(), name = strNodeName });
}
m_InitKnoSort((int)drv["Node"]);
}
}
//通过节点级数合成为 2级则为"--"
private string m_NodeLevel(int intParentNote)
{
string str = "";
NodeLevelNum = 0;
m_NodeLevelNum(intParentNote);
for (int i =2; i < NodeLevelNum; i++)
{
str = str + "—";
}
return str;
}
//获取节点级数
private void m_NodeLevelNum(int intParentNote)
{
NodeLevelNum = NodeLevelNum + 1;
System.Data.DataView dv1 = new System.Data.DataView();
dv1=dv;
dv1.RowFilter = String.Format("Node={0}", intParentNote);
foreach (DataRowView drv in dv)
{
m_NodeLevelNum((int)drv["ParentNode"]);
}
}
数据库部分:
select * from kno_KnowledgeSort ORDER BY NodeOrder asc
前台部份:
<ext:Store ID="Store1" runat="server" AutoLoad="false" >
<Reader>
<ext:JsonReader ReaderID="id">
<Fields>
<ext:RecordField Name="id" Type="String" Mapping="id" />
<ext:RecordField Name="name" Type="String" Mapping="name" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:ComboBox ID="cboSortCoding" runat="server" Enabled="true" FieldLabel="知识类别" EmptyText="请选择知识类别"
AllowBlank="false" BlankText="请选择知识类别!" Width="260" DisplayField="name" ValueField="id"
StoreID="Store1" Editable="false" />
后台部分:
System.Data.DataView dv;
List<object> data = new List<object>();
int NodeLevelNum = 0;
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
clsDA_kno_KnowledgeSort myKnoSort = new clsDA_kno_KnowledgeSort();//读数据库
dv =myKnoSort.m_Select().DefaultView;//得到DataTable
m_InitKnoSort(0);
this.Store1.DataSource = data;
this.Store1.DataBind();
}
}
//初始化下拉菜单
private void m_InitKnoSort(int intParentNote)
{
dv.RowFilter = String.Format("ParentNode={0}", intParentNote);
foreach (DataRowView drv in dv)
{
if (intParentNote != 0)//第一个节点不加
{
string strNodeName = drv["NodeName"].ToString();
strNodeName = m_NodeLevel(intParentNote) + strNodeName;
data.Add(new { id = drv["Node"].ToString(), name = strNodeName });
}
m_InitKnoSort((int)drv["Node"]);
}
}
//通过节点级数合成为 2级则为"--"
private string m_NodeLevel(int intParentNote)
{
string str = "";
NodeLevelNum = 0;
m_NodeLevelNum(intParentNote);
for (int i =2; i < NodeLevelNum; i++)
{
str = str + "—";
}
return str;
}
//获取节点级数
private void m_NodeLevelNum(int intParentNote)
{
NodeLevelNum = NodeLevelNum + 1;
System.Data.DataView dv1 = new System.Data.DataView();
dv1=dv;
dv1.RowFilter = String.Format("Node={0}", intParentNote);
foreach (DataRowView drv in dv)
{
m_NodeLevelNum((int)drv["ParentNode"]);
}
}
数据库部分:
select * from kno_KnowledgeSort ORDER BY NodeOrder asc
相关文章推荐
- 第三方控件DEV中的TreeList如何显示树形结构
- EXT公共控件之带树形结构的ComboBox
- 部门树形结构,使用Treeview控件显示部门
- c#动态设置combobox控件下拉项宽度以实现下拉项文字可以完全显示。
- IE Web Control介绍以及TreeView 控件树形结构不能显示的问题
- 在DropDownList中显示树形结构
- js 动态树形控件 xtree
- 使用picture控件动态显示图片方法
- 多叉树结合JavaScript树形控件实现无限级树形菜单(一种构建多级有序树形结构JSON(或XML)数据源的方法)
- 动态添加综合布局---动态添加控件及将某XML动态加入到Activity显示(续)
- vc在edit控件中动态插入数据滚动显示
- js显示树形结构,div+css+js
- linux 如何以树形结构显示文件目录结构
- WPF中ComboBox控件显示的样式设置
- duilib 修复CTreeViewUI控件动态添加子控件时,对是否显示判断不足的bug
- 显示/隐藏ComboBox控件的滚动条提示.
- jquey easyui 右键显示树形结构并且添加
- MFC 对话框Picture Control(图片控件)中静态和动态显示Bmp图片
- EAS 科目F7 单头跟分录 显示树形结构
- C# chart控件实时动态显示数据