Repeater后台实现

using System ;
using System.Data ;
using System.Web.UI ;
using System.Web.UI.WebControls ;

namespace WebApplication1
{
    
/// <summary>
    
/// WebForm1 的摘要说明。
    
/// </summary>

    public class WebForm1 : Page
    
{
        
protected Repeater Repeater1 ;
        
private void Page_Load ( object sender , EventArgs e )
        
{
            Repeater1.HeaderTemplate 
= new CreateDL ( ListItemType.Header ) ;
            Repeater1.ItemTemplate 
= new CreateDL ( ListItemType.Item ) ;
            Repeater1.AlternatingItemTemplate 
= new CreateDL ( ListItemType.AlternatingItem ) ;
            Repeater1.FooterTemplate 
= new CreateDL ( ListItemType.Footer ) ;
            CreateDL.Fields ( CreateTable().Columns ) ;
            Repeater1.DataSource 
= CreateTable ( ) ;
            Repeater1.DataBind ( ) ;


        }


        
private static DataTable CreateTable ( )
        
{
            DataTable dt 
= new DataTable ( "Test" ) ;
            dt.Columns.Add ( 
"ID" , typeof ( int ) ) ;
            dt.Columns.Add ( 
"xm" , typeof ( string ) ) ;
            dt.Columns.Add ( 
"xb" , typeof ( string ) ) ;
            dt.Columns.Add ( 
"age" , typeof ( int ) ) ;
            dt.Columns.Add ( 
"gz" , typeof ( int ) ) ;

            
for ( int i = 0 ; i < 100 ; i++ )
            
{
                DataRow dr 
= dt.NewRow ( ) ;
                dr [ 
0 ] = i ;
                dr [ 
1 ] = "a" + i ;
                
if ( i % 2 == 0 )
                
{
                    dr [ 
2 ] = "" ;
                }

                
else
                
{
                    dr [ 
2 ] = "" ;
                }

                dr [ 
3 ] = 12 + i ;
                dr [ 
4 ] = 2500 * i ;
                dt.Rows.Add ( dr ) ;
            }

            
return dt ;
        }


        
Web 窗体设计器生成的代码
    }

}



using System ;
using System.Web.UI ;
using System.Web.UI.WebControls ;
using System.Data;
namespace WebApplication1
{
    
/// <summary>
    
/// Class1 的摘要说明。
    
/// </summary>

    public class CreateDL : ITemplate
    
{
        
private ListItemType TemplateType ;
        
private ListItemType LIT ;
        
private static DataColumnCollection FieldColumn ;

        
public CreateDL ( ListItemType type )
        
{
            TemplateType 
= type ;
        }



        
public static DataColumnCollection Fields(DataColumnCollection DC)
        
{
            FieldColumn 
= DC ;
            
return DC;
        }


        
public void InstantiateIn ( Control container )
        
{
            Literal lc 
= new Literal ( ) ;
            
if ( TemplateType == ListItemType.Header )
            
{
                lc.Text 
= "<table id="table1" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体" cellSpacing="0" borderColorDark="#ffffff" width="623" borderColorLight="#000000" border="1"><tr><td align="middle" width="98" rowSpan="2">序号</td><td align="middle" colSpan="4">详细资料</td></tr><tr><td width="128" align="center">姓名</td><td width="129" align="center">性别</td><td width="129" align="center">年龄</td><td width="129" align="center">工资</td></tr>" ;
            }

            
else if ( TemplateType == ListItemType.Item )
            
{
                ItemType 
= ListItemType.Item ;
                lc.DataBinding 
+= new EventHandler ( TemplateControl_Databinding ) ;
            }

            
else if ( TemplateType == ListItemType.AlternatingItem )
            
{
                ItemType 
= ListItemType.AlternatingItem ;
                lc.DataBinding 
+= new EventHandler ( TemplateControl_Databinding ) ;
            }

            
else if ( TemplateType == ListItemType.Footer )
            
{
                lc.Text 
= "</TABLE>" ;
            }

            container.Controls.Add ( lc ) ;
        }


        
private ListItemType ItemType
        
{
            
get return LIT ; }
            
set { LIT = value ; }
        }


        
private void TemplateControl_Databinding ( object sender , EventArgs e )
        
{
            Literal lc ;
            lc 
= ( Literal ) sender ;
            RepeaterItem container ;
            container 
= ( RepeaterItem ) lc.NamingContainer ;
            lc.Text 
= "<TR>" ;
            
for(int i=0;i<FieldColumn.Count;i++)
            
{
                
if ( ItemType == ListItemType.Item )
                
{
                    lc.Text 
+= "<TD>" ;
                }

                
if ( ItemType == ListItemType.AlternatingItem )
                
{
                    lc.Text 
+= "<TD bgcolor="#F7F7F7">" ;
                }

                lc.Text 
+= DataBinder.Eval ( container.DataItem ,FieldColumn[ i ].ColumnName ) ;
                lc.Text 
+= "</TD>" ;
                
if ( i ==FieldColumn.Count )
                
{
                    lc.Text 
+= "</TR>" ;
                }

            }

        }

    }

}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值