You've already forked linux-packaging-mono
							
							
		
			
				
	
	
		
			176 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			176 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| //------------------------------------------------------------------------------
 | |
| // <copyright file="TemplateColumn.cs" company="Microsoft">
 | |
| //     Copyright (c) Microsoft Corporation.  All rights reserved.
 | |
| // </copyright>                                                                
 | |
| //------------------------------------------------------------------------------
 | |
| 
 | |
| namespace System.Web.UI.WebControls {
 | |
| 
 | |
|     using System;
 | |
|     using System.Collections;
 | |
|     using System.ComponentModel;
 | |
|     using System.Web;
 | |
|     using System.Web.UI;
 | |
| 
 | |
|     /// <devdoc>
 | |
|     ///    <para>Defines the template for controls layout within a 
 | |
|     ///    <see cref='System.Web.UI.WebControls.DataGrid'/> 
 | |
|     ///    column.</para>
 | |
|     /// </devdoc>
 | |
|     // 
 | |
| 
 | |
| 
 | |
|     public class TemplateColumn : DataGridColumn {
 | |
| 
 | |
|         private ITemplate headerTemplate;
 | |
|         private ITemplate footerTemplate;
 | |
|         private ITemplate itemTemplate;
 | |
|         private ITemplate editItemTemplate;
 | |
| 
 | |
|         
 | |
| 
 | |
|         /// <devdoc>
 | |
|         ///    Initializes a new instance of the <see cref='System.Web.UI.WebControls.TemplateColumn'/> class.
 | |
|         /// </devdoc>
 | |
|         public TemplateColumn() {
 | |
|         }
 | |
| 
 | |
|         
 | |
| 
 | |
|         /// <devdoc>
 | |
|         /// <para>Specifies the <see cref='System.Web.UI.ITemplate' qualify='true'/> that defines how items in edit mode are rendered. </para>
 | |
|         /// </devdoc>
 | |
|         [
 | |
|             Browsable(false),
 | |
|             DefaultValue(null),
 | |
|             WebSysDescription(SR.TemplateColumn_EditItemTemplate),
 | |
|             PersistenceMode(PersistenceMode.InnerProperty),
 | |
|             TemplateContainer(typeof(DataGridItem))
 | |
|         ]
 | |
|         public virtual ITemplate EditItemTemplate {
 | |
|             get {
 | |
|                 return editItemTemplate;
 | |
|             }
 | |
|             set {
 | |
|                 editItemTemplate = value;
 | |
|                 OnColumnChanged();
 | |
|             }
 | |
|         }
 | |
|         
 | |
| 
 | |
|         /// <devdoc>
 | |
|         /// <para>Specifies the <see cref='System.Web.UI.ITemplate' qualify='true'/> that defines how the control footer is rendered. </para>
 | |
|         /// </devdoc>
 | |
|         [
 | |
|             Browsable(false),
 | |
|             DefaultValue(null),
 | |
|             WebSysDescription(SR.TemplateColumn_FooterTemplate),
 | |
|             PersistenceMode(PersistenceMode.InnerProperty),
 | |
|             TemplateContainer(typeof(DataGridItem))
 | |
|         ]
 | |
|         public virtual ITemplate FooterTemplate {
 | |
|             get {
 | |
|                 return footerTemplate;
 | |
|             }
 | |
|             set {
 | |
|                 footerTemplate = value;
 | |
|                 OnColumnChanged();
 | |
|             }
 | |
|         }
 | |
|         
 | |
| 
 | |
|         /// <devdoc>
 | |
|         /// <para>Specifies the <see cref='System.Web.UI.ITemplate' qualify='true'/>
 | |
|         /// that defines how the control header is rendered.</para>
 | |
|         /// </devdoc>
 | |
|         [
 | |
|             Browsable(false),
 | |
|             DefaultValue(null),
 | |
|             WebSysDescription(SR.TemplateColumn_HeaderTemplate),
 | |
|             PersistenceMode(PersistenceMode.InnerProperty),
 | |
|             TemplateContainer(typeof(DataGridItem))
 | |
|         ]
 | |
|         public virtual ITemplate HeaderTemplate {
 | |
|             get {
 | |
|                 return headerTemplate;
 | |
|             }
 | |
|             set {
 | |
|                 headerTemplate = value;
 | |
|                 OnColumnChanged();
 | |
|             }
 | |
|         }
 | |
| 
 | |
| 
 | |
|         /// <devdoc>
 | |
|         /// <para> Specifies the <see cref='System.Web.UI.ITemplate' qualify='true'/> that defines how items are rendered. </para>
 | |
|         /// </devdoc>
 | |
|         [
 | |
|             Browsable(false),
 | |
|             DefaultValue(null),
 | |
|             WebSysDescription(SR.TemplateColumn_ItemTemplate),
 | |
|             PersistenceMode(PersistenceMode.InnerProperty),
 | |
|             TemplateContainer(typeof(DataGridItem))
 | |
|         ]
 | |
|         public virtual ITemplate ItemTemplate {
 | |
|             get {
 | |
|                 return itemTemplate;
 | |
|             }
 | |
|             set {
 | |
|                 itemTemplate = value;
 | |
|                 OnColumnChanged();
 | |
|             }
 | |
|         }
 | |
|         
 | |
| 
 | |
|         /// <internalonly/>
 | |
|         /// <devdoc>
 | |
|         /// </devdoc>
 | |
|         public override void InitializeCell(TableCell cell, int columnIndex, ListItemType itemType) {
 | |
|             base.InitializeCell(cell, columnIndex, itemType);
 | |
| 
 | |
|             ITemplate contentTemplate = null;
 | |
|             switch (itemType) {
 | |
|                 case ListItemType.Header:
 | |
|                     contentTemplate = headerTemplate;
 | |
|                     break;
 | |
|                     
 | |
|                 case ListItemType.Footer:
 | |
|                     contentTemplate = footerTemplate;
 | |
|                     break;
 | |
|                     
 | |
|                 case ListItemType.Item:
 | |
|                 case ListItemType.AlternatingItem:
 | |
|                 case ListItemType.SelectedItem:
 | |
|                     contentTemplate = itemTemplate;
 | |
|                     break;
 | |
|                     
 | |
|                 case ListItemType.EditItem:
 | |
|                     if (editItemTemplate != null)
 | |
|                         contentTemplate = editItemTemplate;
 | |
|                     else
 | |
|                         goto case ListItemType.Item;
 | |
|                     break;
 | |
|             }
 | |
|             
 | |
|             if (contentTemplate != null) {
 | |
|                 // The base class might have added a control or some text for some cases
 | |
|                 // such as header text which need to be removed before
 | |
|                 // the corresponding template is used.
 | |
|                 // Note that setting text also has the effect of clearing out any controls.
 | |
|                 cell.Text = String.Empty;
 | |
|                 
 | |
|                 contentTemplate.InstantiateIn(cell);
 | |
|             }
 | |
|             else {
 | |
|                 if (itemType == ListItemType.Item || 
 | |
|                     itemType == ListItemType.AlternatingItem || 
 | |
|                     itemType == ListItemType.SelectedItem || 
 | |
|                     itemType == ListItemType.EditItem) {
 | |
|                     cell.Text = " ";
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 |