支持树型的GridView控件

 

支持树型的GridView

实现思路: 继承自Gridview,处理gridview的数据源,使其在帮定时,就已经按照树型菜单顺序排列好,那样只需在帮定处理其图片是javascript脚本就可以了

源代码下载:https://files.cnblogs.com/wschacker/TreeListView.rar

效果图:

代码:

 

Code

 

 

 public class TreeListViewRow : GridViewRow
    
{
        
public TreeListViewRow(int rowIndex, int dataItemIndex, DataControlRowType rowType, DataControlRowState rowState)
            : 
base(rowIndex, dataItemIndex, rowType, rowState)
        
{

        }

        
        
protected override void OnPreRender(EventArgs e)
        
{
            
base.OnPreRender(e);
            
if (this.RowType == DataControlRowType.DataRow)
            
{
                
if (this.Parent.Parent is TreeListView)
                
{
                    TreeListView treeListView 
= this.Parent.Parent as TreeListView;
                    DataRow dr 
= ((DataTable)treeListView.DataSource).Rows[this.DataItemIndex] as DataRow;
                    
string str = GetTreeNodeImg(dr, Convert.ToBoolean(dr["TreeListView$Row$IsLeaf"]), Convert.ToBoolean(dr["TreeListView$Row$IsBottom"]));
                    
this.Cells[treeListView.NodeColumnIndex].Text = str + this.Cells[treeListView.NodeColumnIndex].Text;
                    
this.ID = dr["TreeList$ViewRow$ClientID"].ToString();
                    
if (treeListView.ExpendDepth > 0)
                    
{
                        
this.Style["display"= treeListView.ExpendDepth >= Convert.ToInt32(dr["TreeListView$Row$Depth"]) ? "block" : "none";
                    }

                }

            }

            
        }


        
获取Tree的图片

 

Js代码实现折叠效果

 

 

Code

 

posted @ 2008-07-24 14:24  王仕超  阅读(10594)  评论(59编辑  收藏  举报