Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / WebControls / Column.cs / 1305376 / Column.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.WebControls {
using System;
using System.Collections;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
///
/// Creates a column and is the base class for all column types.
///
[
TypeConverterAttribute(typeof(ExpandableObjectConverter))
]
public abstract class DataGridColumn : IStateManager {
private DataGrid owner;
private TableItemStyle itemStyle;
private TableItemStyle headerStyle;
private TableItemStyle footerStyle;
private StateBag statebag;
private bool marked;
///
/// Initializes a new instance of the System.Web.UI.WebControls.Column class.
///
protected DataGridColumn() {
statebag = new StateBag();
}
///
/// [To be supplied.]
///
protected bool DesignMode {
get {
if (owner != null) {
return owner.DesignMode;
}
return false;
}
}
///
/// Gets the style properties for the footer item.
///
[
WebCategory("Styles"),
DefaultValue(null),
WebSysDescription(SR.DataGridColumn_FooterStyle),
DesignerSerializationVisibility(DesignerSerializationVisibility.Content),
PersistenceMode(PersistenceMode.InnerProperty)
]
public virtual TableItemStyle FooterStyle {
get {
if (footerStyle == null) {
footerStyle = new TableItemStyle();
if (IsTrackingViewState)
((IStateManager)footerStyle).TrackViewState();
}
return footerStyle;
}
}
///
///
internal TableItemStyle FooterStyleInternal {
get {
return footerStyle;
}
}
///
/// Gets or sets the text displayed in the footer of the
/// System.Web.UI.WebControls.Column.
///
[
WebCategory("Appearance"),
DefaultValue(""),
WebSysDescription(SR.DataGridColumn_FooterText)
]
public virtual string FooterText {
get {
object o = ViewState["FooterText"];
if (o != null)
return(string)o;
return String.Empty;
}
set {
ViewState["FooterText"] = value;
OnColumnChanged();
}
}
///
/// Gets or sets the URL reference to an image to display
/// instead of text on the header of this System.Web.UI.WebControls.Column
/// .
///
[
WebCategory("Appearance"),
DefaultValue(""),
UrlProperty(),
WebSysDescription(SR.DataGridColumn_HeaderImageUrl)
]
public virtual string HeaderImageUrl {
get {
object o = ViewState["HeaderImageUrl"];
if (o != null)
return(string)o;
return String.Empty;
}
set {
ViewState["HeaderImageUrl"] = value;
OnColumnChanged();
}
}
///
/// Gets the style properties for the header of the System.Web.UI.WebControls.Column. This property is read-only.
///
[
WebCategory("Styles"),
DefaultValue(null),
WebSysDescription(SR.DataGridColumn_HeaderStyle),
DesignerSerializationVisibility(DesignerSerializationVisibility.Content),
PersistenceMode(PersistenceMode.InnerProperty)
]
public virtual TableItemStyle HeaderStyle {
get {
if (headerStyle == null) {
headerStyle = new TableItemStyle();
if (IsTrackingViewState)
((IStateManager)headerStyle).TrackViewState();
}
return headerStyle;
}
}
///
///
internal TableItemStyle HeaderStyleInternal {
get {
return headerStyle;
}
}
///
/// Gets or sets the text displayed in the header of the
/// System.Web.UI.WebControls.Column.
///
[
WebCategory("Appearance"),
DefaultValue(""),
WebSysDescription(SR.DataGridColumn_HeaderText)
]
public virtual string HeaderText {
get {
object o = ViewState["HeaderText"];
if (o != null)
return(string)o;
return String.Empty;
}
set {
ViewState["HeaderText"] = value;
OnColumnChanged();
}
}
///
/// Gets the style properties of an item within the System.Web.UI.WebControls.Column. This property is read-only.
///
[
WebCategory("Styles"),
DefaultValue(null),
WebSysDescription(SR.DataGridColumn_ItemStyle),
DesignerSerializationVisibility(DesignerSerializationVisibility.Content),
PersistenceMode(PersistenceMode.InnerProperty)
]
public virtual TableItemStyle ItemStyle {
get {
if (itemStyle == null) {
itemStyle = new TableItemStyle();
if (IsTrackingViewState)
((IStateManager)itemStyle).TrackViewState();
}
return itemStyle;
}
}
///
///
internal TableItemStyle ItemStyleInternal {
get {
return itemStyle;
}
}
///
/// Gets the System.Web.UI.WebControls.DataGrid that the System.Web.UI.WebControls.Column is a part of. This property is read-only.
///
protected DataGrid Owner {
get {
return owner;
}
}
///
/// Gets or sets the expression used when this column is used to sort the data source> by.
///
[
WebCategory("Behavior"),
DefaultValue(""),
WebSysDescription(SR.DataGridColumn_SortExpression)
]
public virtual string SortExpression {
get {
object o = ViewState["SortExpression"];
if (o != null)
return(string)o;
return String.Empty;
}
set {
ViewState["SortExpression"] = value;
OnColumnChanged();
}
}
///
/// Gets the statebag for the System.Web.UI.WebControls.Column. This property is read-only.
///
protected StateBag ViewState {
get {
return statebag;
}
}
///
/// Gets or sets a value to indicate whether the System.Web.UI.WebControls.Column is visible.
///
[
WebCategory("Behavior"),
DefaultValue(true),
WebSysDescription(SR.DataGridColumn_Visible)
]
public bool Visible {
get {
object o = ViewState["Visible"];
if (o != null)
return(bool)o;
return true;
}
set {
ViewState["Visible"] = value;
OnColumnChanged();
}
}
///
///
public virtual void Initialize() {
}
///
/// Initializes a cell in the System.Web.UI.WebControls.Column.
///
public virtual void InitializeCell(TableCell cell, int columnIndex, ListItemType itemType) {
switch (itemType) {
case ListItemType.Header:
{
WebControl headerControl = null;
bool sortableHeader = true;
string sortExpression = null;
if ((owner != null) && (owner.AllowSorting == false)) {
sortableHeader = false;
}
if (sortableHeader) {
sortExpression = SortExpression;
if (sortExpression.Length == 0)
sortableHeader = false;
}
string headerImageUrl = HeaderImageUrl;
if (headerImageUrl.Length != 0) {
if (sortableHeader) {
ImageButton sortButton = new ImageButton();
sortButton.ImageUrl = HeaderImageUrl;
sortButton.CommandName = DataGrid.SortCommandName;
sortButton.CommandArgument = sortExpression;
sortButton.CausesValidation = false;
headerControl = sortButton;
}
else {
Image headerImage = new Image();
headerImage.ImageUrl = headerImageUrl;
headerControl = headerImage;
}
}
else {
string headerText = HeaderText;
if (sortableHeader) {
LinkButton sortButton = new DataGridLinkButton();
sortButton.Text = headerText;
sortButton.CommandName = DataGrid.SortCommandName;
sortButton.CommandArgument = sortExpression;
sortButton.CausesValidation = false;
headerControl = sortButton;
}
else {
if (headerText.Length == 0) {
// the browser does not render table borders for cells with nothing
// in their content, so we add a non-breaking space.
headerText = " ";
}
cell.Text = headerText;
}
}
if (headerControl != null) {
cell.Controls.Add(headerControl);
}
}
break;
case ListItemType.Footer:
{
string footerText = FooterText;
if (footerText.Length == 0) {
// the browser does not render table borders for cells with nothing
// in their content, so we add a non-breaking space.
footerText = " ";
}
cell.Text = footerText;
}
break;
}
}
///
/// Determines if the System.Web.UI.WebControls.Column is marked to save its state.
///
protected bool IsTrackingViewState {
get {
return marked;
}
}
///
/// Loads the state of the System.Web.UI.WebControls.Column.
///
protected virtual void LoadViewState(object savedState) {
if (savedState != null) {
object[] myState = (object[])savedState;
if (myState[0] != null)
((IStateManager)ViewState).LoadViewState(myState[0]);
if (myState[1] != null)
((IStateManager)ItemStyle).LoadViewState(myState[1]);
if (myState[2] != null)
((IStateManager)HeaderStyle).LoadViewState(myState[2]);
if (myState[3] != null)
((IStateManager)FooterStyle).LoadViewState(myState[3]);
}
}
///
/// Marks the starting point to begin tracking and saving changes to the
/// control as part of the control viewstate.
///
protected virtual void TrackViewState() {
marked = true;
((IStateManager)ViewState).TrackViewState();
if (itemStyle != null)
((IStateManager)itemStyle).TrackViewState();
if (headerStyle != null)
((IStateManager)headerStyle).TrackViewState();
if (footerStyle != null)
((IStateManager)footerStyle).TrackViewState();
}
///
/// Raises the ColumnChanged event for a System.Web.UI.WebControls.Column.
///
protected virtual void OnColumnChanged() {
if (owner != null) {
owner.OnColumnsChanged();
}
}
///
/// Saves the current state of the System.Web.UI.WebControls.Column.
///
protected virtual object SaveViewState() {
object propState = ((IStateManager)ViewState).SaveViewState();
object itemStyleState = (itemStyle != null) ? ((IStateManager)itemStyle).SaveViewState() : null;
object headerStyleState = (headerStyle != null) ? ((IStateManager)headerStyle).SaveViewState() : null;
object footerStyleState = (footerStyle != null) ? ((IStateManager)footerStyle).SaveViewState() : null;
if ((propState != null) ||
(itemStyleState != null) ||
(headerStyleState != null) ||
(footerStyleState != null)) {
return new object[4] {
propState,
itemStyleState,
headerStyleState,
footerStyleState
};
}
return null;
}
///
///
internal void SetOwner(DataGrid owner) {
this.owner = owner;
}
///
/// Converts the System.Web.UI.WebControls.Column to string.
///
public override string ToString() {
return String.Empty;
}
///
///
/// Return true if tracking state changes.
///
bool IStateManager.IsTrackingViewState {
get {
return IsTrackingViewState;
}
}
///
///
/// Load previously saved state.
///
void IStateManager.LoadViewState(object state) {
LoadViewState(state);
}
///
///
/// Start tracking state changes.
///
void IStateManager.TrackViewState() {
TrackViewState();
}
///
///
/// Return object containing state changes.
///
object IStateManager.SaveViewState() {
return SaveViewState();
}
}
}
// 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
- BaseComponentEditor.cs
- CodeDOMProvider.cs
- QuaternionValueSerializer.cs
- PrintPreviewGraphics.cs
- DataBindingExpressionBuilder.cs
- Frame.cs
- LoadedOrUnloadedOperation.cs
- ToolboxBitmapAttribute.cs
- BitmapEffectGroup.cs
- DataTableMapping.cs
- PenLineCapValidation.cs
- DefaultValueAttribute.cs
- HwndStylusInputProvider.cs
- EditorZone.cs
- QilCloneVisitor.cs
- CodeDomSerializer.cs
- XmlElementAttributes.cs
- InputScopeAttribute.cs
- X509SecurityToken.cs
- ExternalException.cs
- ConversionHelper.cs
- ConcurrencyMode.cs
- IERequestCache.cs
- BitVec.cs
- BamlLocalizableResourceKey.cs
- DbMetaDataColumnNames.cs
- PkcsUtils.cs
- DocumentApplication.cs
- StateItem.cs
- EditorPartChrome.cs
- BuiltInExpr.cs
- BamlLocalizableResourceKey.cs
- GifBitmapEncoder.cs
- RegexWorker.cs
- TcpConnectionPoolSettings.cs
- basemetadatamappingvisitor.cs
- MachineKeySection.cs
- QueryContinueDragEvent.cs
- CommandPlan.cs
- SiteOfOriginContainer.cs
- StringComparer.cs
- SQLCharsStorage.cs
- JsonMessageEncoderFactory.cs
- Paragraph.cs
- ExternalDataExchangeService.cs
- CodeTypeMemberCollection.cs
- FullTextState.cs
- FixedStringLookup.cs
- UserControl.cs
- ExceptQueryOperator.cs
- DelegatingStream.cs
- DebugView.cs
- Common.cs
- EventBuilder.cs
- FileAuthorizationModule.cs
- DivideByZeroException.cs
- LoadedEvent.cs
- Psha1DerivedKeyGeneratorHelper.cs
- BuildProviderAppliesToAttribute.cs
- RuleSettings.cs
- ColumnClickEvent.cs
- JsonGlobals.cs
- HttpServerUtilityWrapper.cs
- _FixedSizeReader.cs
- Tablet.cs
- DataControlFieldCollection.cs
- MobileControlBuilder.cs
- ByteStream.cs
- DataPagerFieldItem.cs
- ConfigurationStrings.cs
- ListViewItemMouseHoverEvent.cs
- MembershipAdapter.cs
- TemplatedAdorner.cs
- AppliedDeviceFiltersDialog.cs
- ImageMapEventArgs.cs
- FastPropertyAccessor.cs
- ComProxy.cs
- DrawTreeNodeEventArgs.cs
- smtpconnection.cs
- XmlAttribute.cs
- ApplicationDirectoryMembershipCondition.cs
- SoapDocumentMethodAttribute.cs
- Rect3DValueSerializer.cs
- UIElementIsland.cs
- PreservationFileReader.cs
- EventData.cs
- Normalization.cs
- ByteAnimationBase.cs
- Animatable.cs
- DesignerDataParameter.cs
- FacetChecker.cs
- ConnectionsZoneDesigner.cs
- DashStyle.cs
- MonthCalendar.cs
- SQLByteStorage.cs
- FaultDescriptionCollection.cs
- EntityProviderFactory.cs
- DescriptionAttribute.cs
- IPEndPoint.cs
- Utilities.cs