Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / xsp / System / Web / UI / WebControls / ButtonColumn.cs / 1 / ButtonColumn.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.Security.Permissions;
using System.Web.Util;
///
/// Creates a column with a set of
/// controls.
///
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public class ButtonColumn : DataGridColumn {
private PropertyDescriptor textFieldDesc;
///
/// Initializes a new instance of the class.
///
public ButtonColumn() {
}
///
/// Gets or sets the type of button to render in the
/// column.
///
[
WebCategory("Appearance"),
DefaultValue(ButtonColumnType.LinkButton),
WebSysDescriptionAttribute(SR.ButtonColumn_ButtonType)
]
public virtual ButtonColumnType ButtonType {
get {
object o = ViewState["ButtonType"];
if (o != null)
return(ButtonColumnType)o;
return ButtonColumnType.LinkButton;
}
set {
if (value < ButtonColumnType.LinkButton || value > ButtonColumnType.PushButton) {
throw new ArgumentOutOfRangeException("value");
}
ViewState["ButtonType"] = value;
OnColumnChanged();
}
}
[
DefaultValue(false),
WebSysDescriptionAttribute(SR.ButtonColumn_CausesValidation)
]
public virtual bool CausesValidation {
get {
object o = ViewState["CausesValidation"];
if (o != null) {
return (bool)o;
}
return false;
}
set {
ViewState["CausesValidation"] = value;
OnColumnChanged();
}
}
///
/// Gets or sets the command to perform when this
/// is clicked.
///
[
WebCategory("Behavior"),
DefaultValue(""),
WebSysDescriptionAttribute(SR.WebControl_CommandName)
]
public virtual string CommandName {
get {
object o = ViewState["CommandName"];
if (o != null)
return(string)o;
return string.Empty;
}
set {
ViewState["CommandName"] = value;
OnColumnChanged();
}
}
///
/// Gets or sets the field name from the data model that is
/// bound to the property of the button in this column.
///
[
WebCategory("Data"),
DefaultValue(""),
WebSysDescriptionAttribute(SR.ButtonColumn_DataTextField)
]
public virtual string DataTextField {
get {
object o = ViewState["DataTextField"];
if (o != null)
return(string)o;
return String.Empty;
}
set {
ViewState["DataTextField"] = value;
OnColumnChanged();
}
}
///
/// Gets or sets the string used to format the data bound to
/// the property of the button.
///
[
WebCategory("Data"),
DefaultValue(""),
WebSysDescriptionAttribute(SR.ButtonColumn_DataTextFormatString)
]
public virtual string DataTextFormatString {
get {
object o = ViewState["DataTextFormatString"];
if (o != null)
return(string)o;
return String.Empty;
}
set {
ViewState["DataTextFormatString"] = value;
OnColumnChanged();
}
}
///
/// Gets or sets the caption text displayed on the
/// in this column.
///
[
Localizable(true),
WebCategory("Appearance"),
DefaultValue(""),
WebSysDescriptionAttribute(SR.ButtonColumn_Text)
]
public virtual string Text {
get {
object o = ViewState["Text"];
if (o != null)
return(string)o;
return String.Empty;
}
set {
ViewState["Text"] = value;
OnColumnChanged();
}
}
[
DefaultValue(""),
WebSysDescriptionAttribute(SR.ButtonColumn_ValidationGroup)
]
public virtual string ValidationGroup {
get {
object o = ViewState["ValidationGroup"];
if (o != null) {
return (string)o;
}
return String.Empty;
}
set {
ViewState["ValidationGroup"] = value;
OnColumnChanged();
}
}
///
///
protected virtual string FormatDataTextValue(object dataTextValue) {
string formattedTextValue = String.Empty;
if (!DataBinder.IsNull(dataTextValue)) {
string formatting = DataTextFormatString;
if (formatting.Length == 0) {
formattedTextValue = dataTextValue.ToString();
}
else {
formattedTextValue = String.Format(CultureInfo.CurrentCulture, formatting, dataTextValue);
}
}
return formattedTextValue;
}
///
///
public override void Initialize() {
base.Initialize();
textFieldDesc = null;
}
///
/// Initializes a cell in the .
///
public override void InitializeCell(TableCell cell, int columnIndex, ListItemType itemType) {
base.InitializeCell(cell, columnIndex, itemType);
if ((itemType != ListItemType.Header) &&
(itemType != ListItemType.Footer)) {
WebControl buttonControl = null;
if (ButtonType == ButtonColumnType.LinkButton) {
LinkButton button = new DataGridLinkButton();
button.Text = Text;
button.CommandName = CommandName;
button.CausesValidation = CausesValidation;
button.ValidationGroup = ValidationGroup;
buttonControl = button;
}
else {
Button button = new Button();
button.Text = Text;
button.CommandName = CommandName;
button.CausesValidation = CausesValidation;
button.ValidationGroup = ValidationGroup;
buttonControl = button;
}
if (DataTextField.Length != 0) {
buttonControl.DataBinding += new EventHandler(this.OnDataBindColumn);
}
cell.Controls.Add(buttonControl);
}
}
///
///
private void OnDataBindColumn(object sender, EventArgs e) {
Debug.Assert(DataTextField.Length != 0, "Shouldn't be DataBinding without a DataTextField");
Control boundControl = (Control)sender;
DataGridItem item = (DataGridItem)boundControl.NamingContainer;
object dataItem = item.DataItem;
if (textFieldDesc == null) {
string dataField = DataTextField;
textFieldDesc = TypeDescriptor.GetProperties(dataItem).Find(dataField, true);
if ((textFieldDesc == null) && !DesignMode) {
throw new HttpException(SR.GetString(SR.Field_Not_Found, dataField));
}
}
string dataValue;
if (textFieldDesc != null) {
object data = textFieldDesc.GetValue(dataItem);
dataValue = FormatDataTextValue(data);
}
else {
Debug.Assert(DesignMode == true);
dataValue = SR.GetString(SR.Sample_Databound_Text);
}
if (boundControl is LinkButton) {
((LinkButton)boundControl).Text = dataValue;
}
else {
Debug.Assert(boundControl is Button, "Expected the bound control to be a Button");
((Button)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.Security.Permissions;
using System.Web.Util;
///
/// Creates a column with a set of
/// controls.
///
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public class ButtonColumn : DataGridColumn {
private PropertyDescriptor textFieldDesc;
///
/// Initializes a new instance of the class.
///
public ButtonColumn() {
}
///
/// Gets or sets the type of button to render in the
/// column.
///
[
WebCategory("Appearance"),
DefaultValue(ButtonColumnType.LinkButton),
WebSysDescriptionAttribute(SR.ButtonColumn_ButtonType)
]
public virtual ButtonColumnType ButtonType {
get {
object o = ViewState["ButtonType"];
if (o != null)
return(ButtonColumnType)o;
return ButtonColumnType.LinkButton;
}
set {
if (value < ButtonColumnType.LinkButton || value > ButtonColumnType.PushButton) {
throw new ArgumentOutOfRangeException("value");
}
ViewState["ButtonType"] = value;
OnColumnChanged();
}
}
[
DefaultValue(false),
WebSysDescriptionAttribute(SR.ButtonColumn_CausesValidation)
]
public virtual bool CausesValidation {
get {
object o = ViewState["CausesValidation"];
if (o != null) {
return (bool)o;
}
return false;
}
set {
ViewState["CausesValidation"] = value;
OnColumnChanged();
}
}
///
/// Gets or sets the command to perform when this
/// is clicked.
///
[
WebCategory("Behavior"),
DefaultValue(""),
WebSysDescriptionAttribute(SR.WebControl_CommandName)
]
public virtual string CommandName {
get {
object o = ViewState["CommandName"];
if (o != null)
return(string)o;
return string.Empty;
}
set {
ViewState["CommandName"] = value;
OnColumnChanged();
}
}
///
/// Gets or sets the field name from the data model that is
/// bound to the property of the button in this column.
///
[
WebCategory("Data"),
DefaultValue(""),
WebSysDescriptionAttribute(SR.ButtonColumn_DataTextField)
]
public virtual string DataTextField {
get {
object o = ViewState["DataTextField"];
if (o != null)
return(string)o;
return String.Empty;
}
set {
ViewState["DataTextField"] = value;
OnColumnChanged();
}
}
///
/// Gets or sets the string used to format the data bound to
/// the property of the button.
///
[
WebCategory("Data"),
DefaultValue(""),
WebSysDescriptionAttribute(SR.ButtonColumn_DataTextFormatString)
]
public virtual string DataTextFormatString {
get {
object o = ViewState["DataTextFormatString"];
if (o != null)
return(string)o;
return String.Empty;
}
set {
ViewState["DataTextFormatString"] = value;
OnColumnChanged();
}
}
///
/// Gets or sets the caption text displayed on the
/// in this column.
///
[
Localizable(true),
WebCategory("Appearance"),
DefaultValue(""),
WebSysDescriptionAttribute(SR.ButtonColumn_Text)
]
public virtual string Text {
get {
object o = ViewState["Text"];
if (o != null)
return(string)o;
return String.Empty;
}
set {
ViewState["Text"] = value;
OnColumnChanged();
}
}
[
DefaultValue(""),
WebSysDescriptionAttribute(SR.ButtonColumn_ValidationGroup)
]
public virtual string ValidationGroup {
get {
object o = ViewState["ValidationGroup"];
if (o != null) {
return (string)o;
}
return String.Empty;
}
set {
ViewState["ValidationGroup"] = value;
OnColumnChanged();
}
}
///
///
protected virtual string FormatDataTextValue(object dataTextValue) {
string formattedTextValue = String.Empty;
if (!DataBinder.IsNull(dataTextValue)) {
string formatting = DataTextFormatString;
if (formatting.Length == 0) {
formattedTextValue = dataTextValue.ToString();
}
else {
formattedTextValue = String.Format(CultureInfo.CurrentCulture, formatting, dataTextValue);
}
}
return formattedTextValue;
}
///
///
public override void Initialize() {
base.Initialize();
textFieldDesc = null;
}
///
/// Initializes a cell in the .
///
public override void InitializeCell(TableCell cell, int columnIndex, ListItemType itemType) {
base.InitializeCell(cell, columnIndex, itemType);
if ((itemType != ListItemType.Header) &&
(itemType != ListItemType.Footer)) {
WebControl buttonControl = null;
if (ButtonType == ButtonColumnType.LinkButton) {
LinkButton button = new DataGridLinkButton();
button.Text = Text;
button.CommandName = CommandName;
button.CausesValidation = CausesValidation;
button.ValidationGroup = ValidationGroup;
buttonControl = button;
}
else {
Button button = new Button();
button.Text = Text;
button.CommandName = CommandName;
button.CausesValidation = CausesValidation;
button.ValidationGroup = ValidationGroup;
buttonControl = button;
}
if (DataTextField.Length != 0) {
buttonControl.DataBinding += new EventHandler(this.OnDataBindColumn);
}
cell.Controls.Add(buttonControl);
}
}
///
///
private void OnDataBindColumn(object sender, EventArgs e) {
Debug.Assert(DataTextField.Length != 0, "Shouldn't be DataBinding without a DataTextField");
Control boundControl = (Control)sender;
DataGridItem item = (DataGridItem)boundControl.NamingContainer;
object dataItem = item.DataItem;
if (textFieldDesc == null) {
string dataField = DataTextField;
textFieldDesc = TypeDescriptor.GetProperties(dataItem).Find(dataField, true);
if ((textFieldDesc == null) && !DesignMode) {
throw new HttpException(SR.GetString(SR.Field_Not_Found, dataField));
}
}
string dataValue;
if (textFieldDesc != null) {
object data = textFieldDesc.GetValue(dataItem);
dataValue = FormatDataTextValue(data);
}
else {
Debug.Assert(DesignMode == true);
dataValue = SR.GetString(SR.Sample_Databound_Text);
}
if (boundControl is LinkButton) {
((LinkButton)boundControl).Text = dataValue;
}
else {
Debug.Assert(boundControl is Button, "Expected the bound control to be a Button");
((Button)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
- BufferedOutputStream.cs
- SQLDouble.cs
- PeerSecurityManager.cs
- TraceInternal.cs
- DeviceContexts.cs
- InternalTypeHelper.cs
- DragDeltaEventArgs.cs
- MetadataItem_Static.cs
- TextEffectCollection.cs
- ToolStripContainer.cs
- BasicKeyConstraint.cs
- SmiXetterAccessMap.cs
- ObjectQueryState.cs
- QueryAccessibilityHelpEvent.cs
- EnumConverter.cs
- WebPartConnectionsConfigureVerb.cs
- Axis.cs
- ControlTemplate.cs
- ActivityCompletionCallbackWrapper.cs
- NavigationPropertyEmitter.cs
- XmlNode.cs
- SafeHandles.cs
- HtmlSelect.cs
- PDBReader.cs
- MenuItem.cs
- XamlReader.cs
- ProfileBuildProvider.cs
- SqlMethods.cs
- EditorZone.cs
- Pointer.cs
- ExpressionConverter.cs
- ButtonChrome.cs
- SafeFileHandle.cs
- PixelShader.cs
- SqlCrossApplyToCrossJoin.cs
- ListBase.cs
- SmtpNegotiateAuthenticationModule.cs
- MediaPlayerState.cs
- AsnEncodedData.cs
- MeasurementDCInfo.cs
- TitleStyle.cs
- itemelement.cs
- SizeFConverter.cs
- HitTestParameters3D.cs
- EnumDataContract.cs
- PerformanceCountersBase.cs
- XmlNamedNodeMap.cs
- TreeViewHitTestInfo.cs
- MimeTextImporter.cs
- IgnoreSectionHandler.cs
- NumberSubstitution.cs
- ProcessModelSection.cs
- FormsIdentity.cs
- CodeDomComponentSerializationService.cs
- WebFaultClientMessageInspector.cs
- XmlnsCache.cs
- EdmConstants.cs
- GridViewDesigner.cs
- IISUnsafeMethods.cs
- BitmapImage.cs
- EntityDataSourceChangingEventArgs.cs
- Options.cs
- Int32Rect.cs
- DiscoveryDocument.cs
- AnnotationHighlightLayer.cs
- TypedElement.cs
- Translator.cs
- LexicalChunk.cs
- ServiceOperationInvoker.cs
- OdbcHandle.cs
- FileLevelControlBuilderAttribute.cs
- RelationshipEnd.cs
- Tokenizer.cs
- XmlDataFileEditor.cs
- Transform3D.cs
- ArrayList.cs
- WorkItem.cs
- AttributeAction.cs
- ColorConvertedBitmapExtension.cs
- SoapAttributeAttribute.cs
- StandardToolWindows.cs
- RelationshipWrapper.cs
- StandardToolWindows.cs
- SmiContext.cs
- WebPartMinimizeVerb.cs
- QueryTaskGroupState.cs
- oledbmetadatacollectionnames.cs
- SparseMemoryStream.cs
- CharacterMetrics.cs
- TextParentUndoUnit.cs
- SqlCharStream.cs
- QueryInterceptorAttribute.cs
- EditingCommands.cs
- WebUtil.cs
- XmlQueryType.cs
- ProfessionalColorTable.cs
- OdbcConnectionStringbuilder.cs
- XmlAtomicValue.cs
- SerializationFieldInfo.cs
- BindingManagerDataErrorEventArgs.cs