GridView模板列

      TemplateField允许每一列定义一个完全定制的模板,可以再模板中加入控件标记,任意的html元素以及数据绑定表达式,你可以按照你的方式布置一切
      
<asp:TemplateField HeaderText="Employees">
                  
<ItemTemplate>                    
                    
<%# Eval("EmployeeID"%> - 
                    
<%# Eval("TitleOfCourtesy"%> <%# Eval("FirstName"%>
                    
<%# Eval("LastName"%>      
                  
</ItemTemplate>
<asp:TemplateField>       

      绑定GridView后,GridView从数据源获取数据并循环项目的集合,为每个项目处理ItemTemplate,计算其中的数据绑定表达式,并把生成的Html加到表中。
      这里表达式使用了Eval()方法,它是System.Web.UI.DataBinder类的一个静态方法.Eval()使用方便---它自动读取绑定到当前行的数据项,使用反射找到匹配的字段或属性并获得值。反射的过程稍微增加了一些负载,但不会给整个请求的处理增加很长时间。如果不用Eval()方法,可以使用Container.DataItem属性访问数据对像,像下面那样:
      
<%# ((EmployeeDetails)Container.DataItem)["FirstName"%>

      Eval()方法加入了一个格式化字段的功能,
<%# Eval("BirthDate","{0:MM/dd/yy}"%> 

      你还可以自由地组合模板列和其他类型的列
            <asp:TemplateField HeaderText="Employees">
                  
<ItemTemplate>
                  
<b>
                    
<%# Eval("EmployeeID"%> - 
                    
<%# Eval("TitleOfCourtesy"%> <%# Eval("FirstName"%>
                    
<%# Eval("LastName"%>
                  
</b>
                  
<hr />
                  
<small><i>
                    
<%# Eval("Address"%><br />
                    
<%# Eval("City"%><%# Eval("Country"%>,
                    
<%# Eval("PostalCode"%><br />
                    
<%# Eval("HomePhone"%></i>
                    
<br /><br />
                    
<%# Eval("Notes"%>
                  
</small>   
                  
</ItemTemplate>
            
</asp:TemplateField>    
            
                  


posted @ 2009-09-22 09:00  i'm zjz  阅读(6994)  评论(0编辑  收藏  举报