zoukankan      html  css  js  c++  java
  • .net 2.0中GridView无限级嵌套的实现

    .net 2.0中GridView无限级嵌套的实现
    说明:简单的说一下.net2.0中GridView的无限级嵌套(稍加修改就是Repeater..的无限级嵌套),当然您在实际的开发中并不一定用得到或者能被其他的方法(自定义控件等)代替.但是前几天在做一个东西的时候涉及到要显示:大类包含不定数个小类,而且小类又包含不定数个小小类.简单的说就是:一对多,多对多,如图:


    下面我就以三层嵌套说明一下!(无限级可在此基础上比葫芦画瓢)
        首先您要是对数据加载和事件的触发以及他们的顺序不太清楚的,请参考:
        http://overred.cnblogs.com/archive/2006/02/23/336462.html

    ++++++++++.aspx代码++++++++++++++++
    OnRowDataBound事件,与1.x中的ItemDataBound有一腿.
    本篇文章来源于 - http://www.itokit.com - web开发技术 原文地址是:http://www.itokit.com/bbs/viewthread.php?tid=2452



    <!--第一层GridView开始-->
        
    <asp:GridView ID="GridView1"  OnRowDataBound="GridView1_RowDataBound"  AutoGenerateColumns=false runat="server">
          
    <Columns>
            
    <asp:TemplateField>
            
    <ItemTemplate> 
               
    <%#Container.DataItem.ToString()%>
                   
    <!--第二层GridView开始-->
                   
    <asp:GridView ID="GridView2" OnRowDataBound="GridView2_RowDataBound"   AutoGenerateColumns=false runat="server">          
                     
    <Columns>
                      
    <asp:TemplateField>
                      
    <ItemTemplate> 
                          
    <%#Container.DataItem.ToString()%>
                           
    <!--第三层GridView开始-->
                          
    <asp:GridView ID="GridView3"  AutoGenerateColumns=false runat=server>
                               
    <Columns>
                                 
    <asp:TemplateField>
                                 
    <ItemTemplate> 
                                  
    <%#Container.DataItem.ToString()%>
                                 
    </ItemTemplate>
                                 
    </asp:TemplateField>                    
                               
    </Columns>
                            
    </asp:GridView>
                           
    <!--第三层GridView 结束-->
                           
                       
    </ItemTemplate>
                      
    </asp:TemplateField>
                     
    </Columns>
                    
    </asp:GridView>
                  
    <!--第二层GridView结束-->
                  
              
    </ItemTemplate>
              
    </asp:TemplateField>
             
    </Columns>
            
    </asp:GridView>
             
    <!--第一层GridView结束-->

    本篇文章来源于 
    - http://www.itokit.com - web开发技术 原文地址是:http://www.itokit.com/bbs/viewthread.php?tid=2452


    ++++++++++.cs代码++++++++++++++++
    RowDataBound与1.x中的ItemDataBound也有一腿!
    本篇文章来源于 - http://www.itokit.com - web开发技术 原文地址是:http://www.itokit.com/bbs/viewthread.php?tid=2452




    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Collections;

    public partial class _Default : System.Web.UI.Page 
    {
        
    protected void Page_Load(object sender, EventArgs e)
        
    {
            
    this.GridView1.DataSource = Al("GridView1Item:");
            
    this.GridView1.DataBind();
        }


        
    //DataSource
        protected ArrayList Al(string GetStr)
        
    {
            ArrayList al 
    = new ArrayList();
            
    for(int i=0;i<2;i++)
            
    {
                al.Add(GetStr
    +i.ToString());
            }


            
    return al;
        }



        
    //GridView1_RowDataBound
        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        
    {
            
    if (e.Row.RowType == DataControlRowType.DataRow)
            
    {
                GridView gv 
    = (GridView)e.Row.FindControl("GridView2");
                gv.DataSource 
    = Al("GridView2Item:");
                gv.DataBind();
                
            }

        }


        
    //GridView2_RowDataBound
        protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e)
        
    {
            
    if (e.Row.RowType == DataControlRowType.DataRow)
            
    {
                GridView gv 
    = (GridView)e.Row.FindControl("GridView3");
                gv.DataSource 
    = Al("GridView3Item:");
                gv.DataBind();

            }

        }

    }


    本篇文章来源于 
    - http://www.itokit.com - web开发技术 原文地址是:http://www.itokit.com/bbs/viewthread.php?tid=2452
  • 相关阅读:
    2020年. NET Core面试题
    java Context namespace element 'component-scan' and its parser class ComponentScanBeanDefinitionParser are only available on JDK 1.5 and higher 解决方法
    vue 淡入淡出组件
    java http的get、post、post json参数的方法
    vue 父子组件通讯案例
    Vue 生产环境解决跨域问题
    npm run ERR! code ELIFECYCLE
    Android Studio 生成apk 出现 :error_prone_annotations.jar (com.google.errorprone:error) 错误
    记忆解析者芜青【总集】
    LwIP应用开发笔记之十:LwIP带操作系统基本移植
  • 原文地址:https://www.cnblogs.com/apiapia/p/1071050.html
Copyright © 2011-2022 走看看