DataColumnSelectionConverter.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WebForms / System / Web / UI / Design / DataColumnSelectionConverter.cs / 1 / DataColumnSelectionConverter.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

namespace System.Web.UI.Design { 
 
    using System;
    using System.Collections; 
    using System.ComponentModel;
    using System.ComponentModel.Design;
    using System.Data;
    using System.Design; 
    using System.Diagnostics;
    using System.Runtime.InteropServices; 
    using System.Globalization; 
    using System.Web.UI.Design.WebControls;
    using System.Web.UI.WebControls; 

    /// 
    /// 
    ///     
    ///       Provides design-time support for a gridview's bound field's data field properties.
    ///     
    ///  
    [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, Flags=System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)]
    public class DataColumnSelectionConverter : TypeConverter { 

        /// 
        /// 
        ///     
        ///       Initializes a new instance of .
        ///     
        ///  
        public DataColumnSelectionConverter() {
        } 

        /// 
        /// 
        ///     
        ///       Gets a value indicating whether this converter can
        ///       convert an object in the given source type to the native type of the converter 
        ///       using the context. 
        ///    
        ///  
        public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) {
            if (sourceType == typeof(string)) {
                return true;
            } 
            return false;
        } 
 
        /// 
        ///  
        ///    
        ///       Converts the given object to the converter's native type.
        ///    
        ///  
        public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) {
            if (value == null) { 
                return String.Empty; 
            }
            else if (value.GetType() == typeof(string)) { 
                return (string)value;
            }
            throw GetConvertFromException(value);
        } 

        ///  
        ///  
        ///    
        ///       Gets the data fields of the bound fields and autogenerated fields in the current gridview for the 
        ////      RowHeaderColumn and SummaryHeaderColumn properties.
        ///    
        /// 
        public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) { 
            string[] names = null;
            ArrayList namesList = new ArrayList(); 
 
            if (context != null) {
                IComponent component = context.Instance as IComponent; 
                if (component != null) {
                    GridView gridView = component as GridView;
                    if (gridView != null) {
                        if (gridView.AutoGenerateColumns) { 
                            // add all the fields
                            DataFieldConverter dataFieldConverter = new DataFieldConverter(); 
                            StandardValuesCollection values = dataFieldConverter.GetStandardValues(context); 
                            foreach (object value in values) {
                                namesList.Add(value); 
                            }
                        }
                        DataControlFieldCollection fields = gridView.Columns;
                        foreach (DataControlField field in fields) { 
                            BoundField boundField = field as BoundField;
                            if (boundField != null) { 
                                string dataField = boundField.DataField; 
                                if (!namesList.Contains(dataField)) {
                                    namesList.Add(dataField); 
                                }
                            }
                        }
 
                        namesList.Sort();
                        names = new string[namesList.Count]; 
                        namesList.CopyTo(names, 0); 
                    }
                } 
            }
            return new StandardValuesCollection(names);
        }
 
        /// 
        ///  
        ///     
        ///       Gets a value indicating whether the collection of standard values returned from
        ///     is an exclusive 
        ///       list of possible values, using the specified context.
        ///    
        /// 
        public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) { 
            return false;
        } 
 
        /// 
        ///  
        ///    
        ///       Gets a value indicating whether this object supports a standard set of values
        ///       that can be picked from a list.
        ///     
        /// 
        public override bool GetStandardValuesSupported(ITypeDescriptorContext context) { 
            if (context != null && context.Instance is IComponent) { 
                // We only support the dropdown in single-select mode.
                return true; 
            }
            return false;
        }
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.


                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK