Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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;
}
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PropertyChangedEventManager.cs
- NameSpaceExtractor.cs
- RoutingBehavior.cs
- Panel.cs
- TemplateInstanceAttribute.cs
- ObjectDataProvider.cs
- ProtocolsSection.cs
- Parameter.cs
- ContentElementAutomationPeer.cs
- ImageIndexConverter.cs
- BooleanKeyFrameCollection.cs
- NodeLabelEditEvent.cs
- CommandManager.cs
- DataTableExtensions.cs
- KnowledgeBase.cs
- TemplateKey.cs
- LocationUpdates.cs
- UnsafeNativeMethods.cs
- RoleManagerEventArgs.cs
- WebRequestModuleElement.cs
- Rotation3DKeyFrameCollection.cs
- PathFigure.cs
- DataGridColumnHeadersPresenter.cs
- DependentList.cs
- RootDesignerSerializerAttribute.cs
- StaticContext.cs
- Polygon.cs
- XmlReflectionMember.cs
- DataTableCollection.cs
- Bind.cs
- ColorAnimationBase.cs
- StylusDevice.cs
- TriState.cs
- UnsafeNativeMethods.cs
- Model3DCollection.cs
- SqlTypesSchemaImporter.cs
- SafeEventHandle.cs
- ServiceHttpHandlerFactory.cs
- MultiBinding.cs
- StringToken.cs
- PropertyChangeTracker.cs
- SynchronizingStream.cs
- SimpleExpression.cs
- XmlQualifiedNameTest.cs
- TextDocumentView.cs
- DesignOnlyAttribute.cs
- DbExpressionVisitor.cs
- DesignerAdRotatorAdapter.cs
- _AcceptOverlappedAsyncResult.cs
- KeyGestureValueSerializer.cs
- FormParameter.cs
- SingleQueryOperator.cs
- NetSectionGroup.cs
- LinkUtilities.cs
- XmlSerializerVersionAttribute.cs
- HttpInputStream.cs
- SiteMapDataSourceView.cs
- MenuItem.cs
- UpdatableGenericsFeature.cs
- StylusButtonCollection.cs
- UTF8Encoding.cs
- ToolStripRenderEventArgs.cs
- Interfaces.cs
- IsolatedStorageException.cs
- propertytag.cs
- FormsIdentity.cs
- DeclarativeConditionsCollection.cs
- SRGSCompiler.cs
- TraceInternal.cs
- VisualProxy.cs
- XmlChoiceIdentifierAttribute.cs
- Options.cs
- TypeDescriptionProviderAttribute.cs
- DataGridViewLinkCell.cs
- LocalizableAttribute.cs
- ErrorStyle.cs
- DecimalConstantAttribute.cs
- StyleCollection.cs
- ValidateNames.cs
- FrameworkContextData.cs
- CompositeDataBoundControl.cs
- Token.cs
- TitleStyle.cs
- DbModificationCommandTree.cs
- SqlBuffer.cs
- MethodAccessException.cs
- ValidationRuleCollection.cs
- SqlHelper.cs
- ContractCodeDomInfo.cs
- SQLMembershipProvider.cs
- ZipIORawDataFileBlock.cs
- TabletCollection.cs
- PrintDialog.cs
- DataTableReader.cs
- Membership.cs
- SystemNetworkInterface.cs
- HTMLTagNameToTypeMapper.cs
- MethodCallTranslator.cs
- Attribute.cs
- PropertyGroupDescription.cs