Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / WebControls / BoundColumn.cs / 1305376 / BoundColumn.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.WebControls {
using System;
using System.Collections;
using System.ComponentModel;
using System.Globalization;
using System.Web;
using System.Web.UI;
using System.Web.Util;
///
/// Creates a column bounded to a data field in a .
///
public class BoundColumn : DataGridColumn {
///
/// Specifies a string that represents "this". This field is read-only.
///
public static readonly string thisExpr = "!";
private PropertyDescriptor boundFieldDesc;
private bool boundFieldDescValid;
private string boundField;
private string formatting;
///
/// Initializes a new instance of a class.
///
public BoundColumn() {
}
///
/// Gets or sets the field name from the data model bound to this column.
///
[
WebCategory("Data"),
DefaultValue(""),
WebSysDescription(SR.BoundColumn_DataField)
]
public virtual string DataField {
get {
object o = ViewState["DataField"];
if (o != null)
return (string)o;
return String.Empty;
}
set {
ViewState["DataField"] = value;
OnColumnChanged();
}
}
///
/// Gets or sets the display format of data in this
/// column.
///
[
WebCategory("Behavior"),
DefaultValue(""),
WebSysDescription(SR.BoundColumn_DataFormatString)
]
public virtual string DataFormatString {
get {
object o = ViewState["DataFormatString"];
if (o != null)
return (string)o;
return String.Empty;
}
set {
ViewState["DataFormatString"] = value;
OnColumnChanged();
}
}
///
/// Gets or sets the property that prevents modification to data
/// in this column.
///
[
WebCategory("Behavior"),
DefaultValue(false),
WebSysDescription(SR.BoundColumn_ReadOnly)
]
public virtual bool ReadOnly {
get {
object o = ViewState["ReadOnly"];
if (o != null)
return (bool)o;
return false;
}
set {
ViewState["ReadOnly"] = value;
OnColumnChanged();
}
}
///
///
protected virtual string FormatDataValue(object dataValue) {
string formattedValue = String.Empty;
if (!DataBinder.IsNull(dataValue)) {
if (formatting.Length == 0) {
formattedValue = dataValue.ToString();
}
else {
formattedValue = String.Format(CultureInfo.CurrentCulture, formatting, dataValue);
}
}
return formattedValue;
}
///
///
public override void Initialize() {
base.Initialize();
boundFieldDesc = null;
boundFieldDescValid = false;
boundField = DataField;
formatting = DataFormatString;
}
///
/// Initializes a cell in the DataGridColumn.
///
public override void InitializeCell(TableCell cell, int columnIndex, ListItemType itemType) {
base.InitializeCell(cell, columnIndex, itemType);
Control childControl = null;
Control boundControl = null;
switch (itemType) {
case ListItemType.Header:
case ListItemType.Footer:
break;
case ListItemType.Item:
case ListItemType.AlternatingItem:
case ListItemType.SelectedItem:
if (DataField.Length != 0) {
boundControl = cell;
}
break;
case ListItemType.EditItem:
if (ReadOnly == true) {
goto case ListItemType.Item;
}
else {
//
TextBox editor = new TextBox();
childControl = editor;
if (boundField.Length != 0) {
boundControl = editor;
}
}
break;
}
if (childControl != null) {
cell.Controls.Add(childControl);
}
if (boundControl != null) {
boundControl.DataBinding += new EventHandler(this.OnDataBindColumn);
}
}
///
///
private void OnDataBindColumn(object sender, EventArgs e) {
Debug.Assert(DataField.Length != 0, "Shouldn't be DataBinding without a DataField");
Control boundControl = (Control)sender;
DataGridItem item = (DataGridItem)boundControl.NamingContainer;
object dataItem = item.DataItem;
if (boundFieldDescValid == false) {
if (!boundField.Equals(thisExpr)) {
boundFieldDesc = TypeDescriptor.GetProperties(dataItem).Find(boundField, true);
if ((boundFieldDesc == null) && !DesignMode) {
throw new HttpException(SR.GetString(SR.Field_Not_Found, boundField));
}
}
boundFieldDescValid = true;
}
object data = dataItem;
string dataValue;
if ((boundFieldDesc == null) && DesignMode) {
dataValue = SR.GetString(SR.Sample_Databound_Text);
}
else {
if (boundFieldDesc != null) {
data = boundFieldDesc.GetValue(dataItem);
}
dataValue = FormatDataValue(data);
}
if (boundControl is TableCell) {
if (dataValue.Length == 0) {
dataValue = " ";
}
((TableCell)boundControl).Text = dataValue;
}
else {
Debug.Assert(boundControl is TextBox, "Expected the bound control to be a TextBox");
((TextBox)boundControl).Text = dataValue;
}
}
}
}
// 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.ComponentModel;
using System.Globalization;
using System.Web;
using System.Web.UI;
using System.Web.Util;
///
/// Creates a column bounded to a data field in a .
///
public class BoundColumn : DataGridColumn {
///
/// Specifies a string that represents "this". This field is read-only.
///
public static readonly string thisExpr = "!";
private PropertyDescriptor boundFieldDesc;
private bool boundFieldDescValid;
private string boundField;
private string formatting;
///
/// Initializes a new instance of a class.
///
public BoundColumn() {
}
///
/// Gets or sets the field name from the data model bound to this column.
///
[
WebCategory("Data"),
DefaultValue(""),
WebSysDescription(SR.BoundColumn_DataField)
]
public virtual string DataField {
get {
object o = ViewState["DataField"];
if (o != null)
return (string)o;
return String.Empty;
}
set {
ViewState["DataField"] = value;
OnColumnChanged();
}
}
///
/// Gets or sets the display format of data in this
/// column.
///
[
WebCategory("Behavior"),
DefaultValue(""),
WebSysDescription(SR.BoundColumn_DataFormatString)
]
public virtual string DataFormatString {
get {
object o = ViewState["DataFormatString"];
if (o != null)
return (string)o;
return String.Empty;
}
set {
ViewState["DataFormatString"] = value;
OnColumnChanged();
}
}
///
/// Gets or sets the property that prevents modification to data
/// in this column.
///
[
WebCategory("Behavior"),
DefaultValue(false),
WebSysDescription(SR.BoundColumn_ReadOnly)
]
public virtual bool ReadOnly {
get {
object o = ViewState["ReadOnly"];
if (o != null)
return (bool)o;
return false;
}
set {
ViewState["ReadOnly"] = value;
OnColumnChanged();
}
}
///
///
protected virtual string FormatDataValue(object dataValue) {
string formattedValue = String.Empty;
if (!DataBinder.IsNull(dataValue)) {
if (formatting.Length == 0) {
formattedValue = dataValue.ToString();
}
else {
formattedValue = String.Format(CultureInfo.CurrentCulture, formatting, dataValue);
}
}
return formattedValue;
}
///
///
public override void Initialize() {
base.Initialize();
boundFieldDesc = null;
boundFieldDescValid = false;
boundField = DataField;
formatting = DataFormatString;
}
///
/// Initializes a cell in the DataGridColumn.
///
public override void InitializeCell(TableCell cell, int columnIndex, ListItemType itemType) {
base.InitializeCell(cell, columnIndex, itemType);
Control childControl = null;
Control boundControl = null;
switch (itemType) {
case ListItemType.Header:
case ListItemType.Footer:
break;
case ListItemType.Item:
case ListItemType.AlternatingItem:
case ListItemType.SelectedItem:
if (DataField.Length != 0) {
boundControl = cell;
}
break;
case ListItemType.EditItem:
if (ReadOnly == true) {
goto case ListItemType.Item;
}
else {
//
TextBox editor = new TextBox();
childControl = editor;
if (boundField.Length != 0) {
boundControl = editor;
}
}
break;
}
if (childControl != null) {
cell.Controls.Add(childControl);
}
if (boundControl != null) {
boundControl.DataBinding += new EventHandler(this.OnDataBindColumn);
}
}
///
///
private void OnDataBindColumn(object sender, EventArgs e) {
Debug.Assert(DataField.Length != 0, "Shouldn't be DataBinding without a DataField");
Control boundControl = (Control)sender;
DataGridItem item = (DataGridItem)boundControl.NamingContainer;
object dataItem = item.DataItem;
if (boundFieldDescValid == false) {
if (!boundField.Equals(thisExpr)) {
boundFieldDesc = TypeDescriptor.GetProperties(dataItem).Find(boundField, true);
if ((boundFieldDesc == null) && !DesignMode) {
throw new HttpException(SR.GetString(SR.Field_Not_Found, boundField));
}
}
boundFieldDescValid = true;
}
object data = dataItem;
string dataValue;
if ((boundFieldDesc == null) && DesignMode) {
dataValue = SR.GetString(SR.Sample_Databound_Text);
}
else {
if (boundFieldDesc != null) {
data = boundFieldDesc.GetValue(dataItem);
}
dataValue = FormatDataValue(data);
}
if (boundControl is TableCell) {
if (dataValue.Length == 0) {
dataValue = " ";
}
((TableCell)boundControl).Text = dataValue;
}
else {
Debug.Assert(boundControl is TextBox, "Expected the bound control to be a TextBox");
((TextBox)boundControl).Text = dataValue;
}
}
}
}
// 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
- SqlCommandSet.cs
- SchemaObjectWriter.cs
- MetadataStore.cs
- EncodingFallbackAwareXmlTextWriter.cs
- VScrollBar.cs
- DocumentGridContextMenu.cs
- AdornerPresentationContext.cs
- FloaterBaseParaClient.cs
- JsonDeserializer.cs
- DBParameter.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- FreezableCollection.cs
- CqlIdentifiers.cs
- ScriptingProfileServiceSection.cs
- RenderData.cs
- OutKeywords.cs
- ElementUtil.cs
- Duration.cs
- GenericWebPart.cs
- IncrementalReadDecoders.cs
- BrowserDefinition.cs
- COM2IProvidePropertyBuilderHandler.cs
- NavigationExpr.cs
- XsltQilFactory.cs
- UIElement3D.cs
- ReliableSessionElement.cs
- PropertyDescriptorGridEntry.cs
- EFTableProvider.cs
- QueryGeneratorBase.cs
- GeneralTransform3DGroup.cs
- PenCursorManager.cs
- BitmapEffectGroup.cs
- DesignerActionListCollection.cs
- DLinqTableProvider.cs
- BindingCompleteEventArgs.cs
- SqlBulkCopyColumnMappingCollection.cs
- EventToken.cs
- DefaultValueMapping.cs
- GeneralTransform2DTo3D.cs
- nulltextnavigator.cs
- DataGridViewColumnCollection.cs
- DataRecordInternal.cs
- JoinGraph.cs
- SimpleHandlerBuildProvider.cs
- TreePrinter.cs
- OutputCacheProfileCollection.cs
- PriorityQueue.cs
- TypeConverterAttribute.cs
- SessionPageStateSection.cs
- TreeNodeCollection.cs
- AllowedAudienceUriElement.cs
- GiveFeedbackEventArgs.cs
- ImageButton.cs
- QueuedDeliveryRequirementsMode.cs
- RemoteWebConfigurationHost.cs
- ContentPlaceHolderDesigner.cs
- MouseGestureConverter.cs
- DiscoveryDocumentSearchPattern.cs
- CdpEqualityComparer.cs
- DataColumnChangeEvent.cs
- ControlCachePolicy.cs
- mansign.cs
- CodeSnippetTypeMember.cs
- DelegateBodyWriter.cs
- DataGridViewTextBoxEditingControl.cs
- TypeExtensionSerializer.cs
- HebrewCalendar.cs
- NullableConverter.cs
- FixedDSBuilder.cs
- ImageCodecInfo.cs
- AutoResizedEvent.cs
- columnmapfactory.cs
- Button.cs
- SchemaElementLookUpTable.cs
- CancelRequestedQuery.cs
- DelegateInArgument.cs
- BookmarkScopeHandle.cs
- ListView.cs
- Dynamic.cs
- InputLangChangeEvent.cs
- RadioButton.cs
- ObjectReferenceStack.cs
- PageParserFilter.cs
- BuildProviderCollection.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- ScrollChrome.cs
- Size3DValueSerializer.cs
- Rule.cs
- PersistChildrenAttribute.cs
- StylusEditingBehavior.cs
- ScaleTransform3D.cs
- AsymmetricSignatureFormatter.cs
- EntitySqlQueryBuilder.cs
- DataGridViewUtilities.cs
- HttpRuntimeSection.cs
- ToolStripItemTextRenderEventArgs.cs
- TraceContextRecord.cs
- SendMailErrorEventArgs.cs
- AjaxFrameworkAssemblyAttribute.cs
- XPathAxisIterator.cs