Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / WebControls / AutoGeneratedField.cs / 1305376 / AutoGeneratedField.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.WebControls {
using System;
using System.Collections;
using System.Collections.Specialized;
using System.ComponentModel;
///
/// Creates a field bounded to a data field in a .
///
[EditorBrowsable(EditorBrowsableState.Never)]
public sealed class AutoGeneratedField : BoundField {
private bool _suppressPropertyThrows = false;
private bool _useCheckBox;
private bool _useCheckBoxValid;
///
/// Initializes a new instance of a class.
///
public AutoGeneratedField(string dataField) {
DataField = dataField;
}
///
/// Gets or sets the display format of data in this
/// field.
///
public override string DataFormatString {
get {
return base.DataFormatString;
}
set {
if (!_suppressPropertyThrows) {
throw new NotSupportedException();
}
}
}
///
/// Gets or sets the type of data being displayed by the field.
///
public Type DataType {
get {
object o = ViewState["DataType"];
if (o != null) {
return (Type)o;
}
return typeof(string);
}
set {
ViewState["DataType"] = value;
}
}
///
/// Gets or sets whether the field is visible in Insert mode. Turn off for auto-gen'd db fields
///
public override bool InsertVisible {
get {
return base.InsertVisible;
}
set {
if (!_suppressPropertyThrows) {
throw new NotSupportedException();
}
}
}
///
/// Gets or sets the property that determines whether the BoundField treats empty string as
/// null when the field values are extracted.
///
public override bool ConvertEmptyStringToNull {
get {
return base.ConvertEmptyStringToNull;
}
set {
if (!_suppressPropertyThrows) {
throw new NotSupportedException();
}
}
}
///
/// Determines whether the field should display a text box.
///
private bool UseCheckBox {
get {
if (!_useCheckBoxValid) {
_useCheckBox = (DataType == typeof(bool) || DataType == typeof(bool?));
_useCheckBoxValid = true;
}
return _useCheckBox;
}
}
protected override void CopyProperties(DataControlField newField) {
((AutoGeneratedField)newField).DataType = DataType;
_suppressPropertyThrows = true;
((AutoGeneratedField)newField)._suppressPropertyThrows = true;
base.CopyProperties(newField);
_suppressPropertyThrows = false;
((AutoGeneratedField)newField)._suppressPropertyThrows = false;
}
protected override DataControlField CreateField() {
return new AutoGeneratedField(DataField);
}
///
/// Returns a value to be used for design-time rendering
///
protected override object GetDesignTimeValue() {
if (UseCheckBox) {
return true;
}
return base.GetDesignTimeValue();
}
///
/// Extracts the value of the databound cell and inserts the value into the given dictionary
///
public override void ExtractValuesFromCell(IOrderedDictionary dictionary, DataControlFieldCell cell, DataControlRowState rowState, bool includeReadOnly) {
if (UseCheckBox) {
Control childControl = null;
string dataField = DataField;
object value = null;
if (cell.Controls.Count > 0) {
childControl = cell.Controls[0];
CheckBox checkBox = childControl as CheckBox;
if (checkBox != null) {
if (includeReadOnly || checkBox.Enabled) {
value = checkBox.Checked;
}
}
}
if (value != null) {
if (dictionary.Contains(dataField)) {
dictionary[dataField] = value;
}
else {
dictionary.Add(dataField, value);
}
}
}
else {
base.ExtractValuesFromCell(dictionary, cell, rowState, includeReadOnly);
}
}
protected override void InitializeDataCell(DataControlFieldCell cell, DataControlRowState rowState) {
if (UseCheckBox) {
CheckBox childControl = null;
CheckBox boundControl = null;
if (((rowState & DataControlRowState.Edit) != 0 && ReadOnly == false) || (rowState & DataControlRowState.Insert) != 0) {
CheckBox editor = new CheckBox();
childControl = editor;
if (DataField.Length != 0 && (rowState & DataControlRowState.Edit) != 0) {
boundControl = editor;
}
}
else if (DataField.Length != 0) {
CheckBox editor = new CheckBox();
editor.Enabled = false;
childControl = editor;
boundControl = editor;
}
if (childControl != null) {
childControl.ToolTip = HeaderText;
cell.Controls.Add(childControl);
}
if (boundControl != null) {
boundControl.DataBinding += new EventHandler(this.OnDataBindField);
}
}
else {
base.InitializeDataCell(cell, rowState);
}
}
///
///
protected override void OnDataBindField(object sender, EventArgs e) {
if (UseCheckBox) {
Control boundControl = (Control)sender;
Control controlContainer = boundControl.NamingContainer;
object data = GetValue(controlContainer);
if (!(boundControl is CheckBox)) {
throw new HttpException(SR.GetString(SR.CheckBoxField_WrongControlType, DataField));
}
if (DataBinder.IsNull(data)) {
((CheckBox)boundControl).Checked = false;
}
else {
if (data is Boolean) {
((CheckBox)boundControl).Checked = (Boolean)data;
}
else {
try {
((CheckBox)boundControl).Checked = Boolean.Parse(data.ToString());
}
catch (FormatException fe) {
throw new HttpException(SR.GetString(SR.CheckBoxField_CouldntParseAsBoolean, DataField), fe);
}
}
}
}
else {
base.OnDataBindField(sender, e);
}
}
///
/// Override with an empty body if the field's controls all support callback.
/// Otherwise, override and throw a useful error message about why the field can't support callbacks.
///
public override void ValidateSupportsCallback() {
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.WebControls {
using System;
using System.Collections;
using System.Collections.Specialized;
using System.ComponentModel;
///
/// Creates a field bounded to a data field in a .
///
[EditorBrowsable(EditorBrowsableState.Never)]
public sealed class AutoGeneratedField : BoundField {
private bool _suppressPropertyThrows = false;
private bool _useCheckBox;
private bool _useCheckBoxValid;
///
/// Initializes a new instance of a class.
///
public AutoGeneratedField(string dataField) {
DataField = dataField;
}
///
/// Gets or sets the display format of data in this
/// field.
///
public override string DataFormatString {
get {
return base.DataFormatString;
}
set {
if (!_suppressPropertyThrows) {
throw new NotSupportedException();
}
}
}
///
/// Gets or sets the type of data being displayed by the field.
///
public Type DataType {
get {
object o = ViewState["DataType"];
if (o != null) {
return (Type)o;
}
return typeof(string);
}
set {
ViewState["DataType"] = value;
}
}
///
/// Gets or sets whether the field is visible in Insert mode. Turn off for auto-gen'd db fields
///
public override bool InsertVisible {
get {
return base.InsertVisible;
}
set {
if (!_suppressPropertyThrows) {
throw new NotSupportedException();
}
}
}
///
/// Gets or sets the property that determines whether the BoundField treats empty string as
/// null when the field values are extracted.
///
public override bool ConvertEmptyStringToNull {
get {
return base.ConvertEmptyStringToNull;
}
set {
if (!_suppressPropertyThrows) {
throw new NotSupportedException();
}
}
}
///
/// Determines whether the field should display a text box.
///
private bool UseCheckBox {
get {
if (!_useCheckBoxValid) {
_useCheckBox = (DataType == typeof(bool) || DataType == typeof(bool?));
_useCheckBoxValid = true;
}
return _useCheckBox;
}
}
protected override void CopyProperties(DataControlField newField) {
((AutoGeneratedField)newField).DataType = DataType;
_suppressPropertyThrows = true;
((AutoGeneratedField)newField)._suppressPropertyThrows = true;
base.CopyProperties(newField);
_suppressPropertyThrows = false;
((AutoGeneratedField)newField)._suppressPropertyThrows = false;
}
protected override DataControlField CreateField() {
return new AutoGeneratedField(DataField);
}
///
/// Returns a value to be used for design-time rendering
///
protected override object GetDesignTimeValue() {
if (UseCheckBox) {
return true;
}
return base.GetDesignTimeValue();
}
///
/// Extracts the value of the databound cell and inserts the value into the given dictionary
///
public override void ExtractValuesFromCell(IOrderedDictionary dictionary, DataControlFieldCell cell, DataControlRowState rowState, bool includeReadOnly) {
if (UseCheckBox) {
Control childControl = null;
string dataField = DataField;
object value = null;
if (cell.Controls.Count > 0) {
childControl = cell.Controls[0];
CheckBox checkBox = childControl as CheckBox;
if (checkBox != null) {
if (includeReadOnly || checkBox.Enabled) {
value = checkBox.Checked;
}
}
}
if (value != null) {
if (dictionary.Contains(dataField)) {
dictionary[dataField] = value;
}
else {
dictionary.Add(dataField, value);
}
}
}
else {
base.ExtractValuesFromCell(dictionary, cell, rowState, includeReadOnly);
}
}
protected override void InitializeDataCell(DataControlFieldCell cell, DataControlRowState rowState) {
if (UseCheckBox) {
CheckBox childControl = null;
CheckBox boundControl = null;
if (((rowState & DataControlRowState.Edit) != 0 && ReadOnly == false) || (rowState & DataControlRowState.Insert) != 0) {
CheckBox editor = new CheckBox();
childControl = editor;
if (DataField.Length != 0 && (rowState & DataControlRowState.Edit) != 0) {
boundControl = editor;
}
}
else if (DataField.Length != 0) {
CheckBox editor = new CheckBox();
editor.Enabled = false;
childControl = editor;
boundControl = editor;
}
if (childControl != null) {
childControl.ToolTip = HeaderText;
cell.Controls.Add(childControl);
}
if (boundControl != null) {
boundControl.DataBinding += new EventHandler(this.OnDataBindField);
}
}
else {
base.InitializeDataCell(cell, rowState);
}
}
///
///
protected override void OnDataBindField(object sender, EventArgs e) {
if (UseCheckBox) {
Control boundControl = (Control)sender;
Control controlContainer = boundControl.NamingContainer;
object data = GetValue(controlContainer);
if (!(boundControl is CheckBox)) {
throw new HttpException(SR.GetString(SR.CheckBoxField_WrongControlType, DataField));
}
if (DataBinder.IsNull(data)) {
((CheckBox)boundControl).Checked = false;
}
else {
if (data is Boolean) {
((CheckBox)boundControl).Checked = (Boolean)data;
}
else {
try {
((CheckBox)boundControl).Checked = Boolean.Parse(data.ToString());
}
catch (FormatException fe) {
throw new HttpException(SR.GetString(SR.CheckBoxField_CouldntParseAsBoolean, DataField), fe);
}
}
}
}
else {
base.OnDataBindField(sender, e);
}
}
///
/// Override with an empty body if the field's controls all support callback.
/// Otherwise, override and throw a useful error message about why the field can't support callbacks.
///
public override void ValidateSupportsCallback() {
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MultipartContentParser.cs
- __FastResourceComparer.cs
- IndicShape.cs
- ContentElement.cs
- SubpageParaClient.cs
- CompositeActivityMarkupSerializer.cs
- ChineseLunisolarCalendar.cs
- XamlReader.cs
- FileVersionInfo.cs
- CircleHotSpot.cs
- MethodExecutor.cs
- PropertyToken.cs
- BamlRecordReader.cs
- ConnectivityStatus.cs
- HtmlButton.cs
- Tuple.cs
- StringInfo.cs
- UnsafeNativeMethodsMilCoreApi.cs
- Ipv6Element.cs
- VSWCFServiceContractGenerator.cs
- StylusLogic.cs
- RoutedEventValueSerializer.cs
- QuestionEventArgs.cs
- SoapAttributeOverrides.cs
- GeneratedCodeAttribute.cs
- PtsCache.cs
- ServiceDescription.cs
- DoubleCollectionConverter.cs
- DataGridViewColumnConverter.cs
- SimpleWebHandlerParser.cs
- RubberbandSelector.cs
- CodeDomConfigurationHandler.cs
- XmlSerializationGeneratedCode.cs
- ToolStripDropDownItemDesigner.cs
- CompressionTransform.cs
- CompoundFileReference.cs
- Condition.cs
- GridViewCancelEditEventArgs.cs
- UnhandledExceptionEventArgs.cs
- NominalTypeEliminator.cs
- Int32RectValueSerializer.cs
- DocumentApplicationJournalEntry.cs
- InitializerFacet.cs
- IISUnsafeMethods.cs
- ClientRuntimeConfig.cs
- EntityViewContainer.cs
- FormatException.cs
- OdbcConnectionString.cs
- WindowsPrincipal.cs
- DateTimeStorage.cs
- XmlDocumentType.cs
- ServiceNameCollection.cs
- PriorityQueue.cs
- ServicePointManager.cs
- PointConverter.cs
- SignatureHelper.cs
- Input.cs
- TextFormatterHost.cs
- ConfigurationValidatorAttribute.cs
- RecognizerInfo.cs
- X509ChainPolicy.cs
- HandledEventArgs.cs
- StylusLogic.cs
- GeneralTransform3DGroup.cs
- DataTable.cs
- XmlSchemaSequence.cs
- DataBindingExpressionBuilder.cs
- UnsafePeerToPeerMethods.cs
- DeflateStream.cs
- SuppressIldasmAttribute.cs
- Message.cs
- AssertHelper.cs
- ObjectListDataBindEventArgs.cs
- TextEditorParagraphs.cs
- RangeValidator.cs
- TypeConverter.cs
- ObjectListCommand.cs
- COM2PictureConverter.cs
- StylusPointPropertyInfoDefaults.cs
- sitestring.cs
- ComponentChangingEvent.cs
- DrawingContextWalker.cs
- CodeDOMProvider.cs
- basenumberconverter.cs
- VirtualPathUtility.cs
- Calendar.cs
- ConvertEvent.cs
- XmlWhitespace.cs
- MachineKeyConverter.cs
- EnumConverter.cs
- TextCompositionEventArgs.cs
- UriTemplateEquivalenceComparer.cs
- Error.cs
- CreateUserErrorEventArgs.cs
- CompilerScopeManager.cs
- DocumentSequence.cs
- DynamicExpression.cs
- ProfileParameter.cs
- ellipse.cs
- SqlNode.cs