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
- ListViewInsertionMark.cs
- ChineseLunisolarCalendar.cs
- DiscoveryDocumentLinksPattern.cs
- SpecialNameAttribute.cs
- MexHttpBindingCollectionElement.cs
- ResourcesGenerator.cs
- DataGridPagerStyle.cs
- AttributeUsageAttribute.cs
- XPathNodeHelper.cs
- CharacterHit.cs
- QuaternionValueSerializer.cs
- XamlFilter.cs
- WebHttpDispatchOperationSelector.cs
- PropertyPushdownHelper.cs
- oledbmetadatacolumnnames.cs
- InfoCardConstants.cs
- SafeRightsManagementHandle.cs
- ContextInformation.cs
- XmlQualifiedName.cs
- CollectionBase.cs
- ArgumentNullException.cs
- XmlSchemaComplexType.cs
- DropSource.cs
- DbMetaDataCollectionNames.cs
- SrgsDocumentParser.cs
- SizeAnimationUsingKeyFrames.cs
- RawStylusActions.cs
- ChainOfResponsibility.cs
- RegexGroupCollection.cs
- FunctionImportMapping.cs
- HttpRawResponse.cs
- TextTreePropertyUndoUnit.cs
- FixUpCollection.cs
- RegexStringValidatorAttribute.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- COM2ColorConverter.cs
- WebPartDescriptionCollection.cs
- SwitchExpression.cs
- DataBinding.cs
- Encoder.cs
- ValueUtilsSmi.cs
- DataExpression.cs
- UnsafeNativeMethods.cs
- SafeHandles.cs
- XPathNode.cs
- ListViewItem.cs
- BamlLocalizabilityResolver.cs
- StorageTypeMapping.cs
- SettingsPropertyIsReadOnlyException.cs
- EntityProviderServices.cs
- SessionState.cs
- WindowsAltTab.cs
- TraceContextEventArgs.cs
- MetabaseServerConfig.cs
- MarshalByValueComponent.cs
- SqlBinder.cs
- AlternateViewCollection.cs
- TraceXPathNavigator.cs
- ResourceExpressionBuilder.cs
- CheckBox.cs
- ExpressionBuilderCollection.cs
- StateManagedCollection.cs
- LinqDataSourceDeleteEventArgs.cs
- SqlEnums.cs
- CharacterHit.cs
- LocalTransaction.cs
- DataViewSetting.cs
- _NestedMultipleAsyncResult.cs
- ActivityBuilder.cs
- BuildManager.cs
- TokenCreationParameter.cs
- PrimitiveType.cs
- ThrowHelper.cs
- WriterOutput.cs
- ZipIOCentralDirectoryBlock.cs
- XmlCharacterData.cs
- IResourceProvider.cs
- MaxValueConverter.cs
- Vector3D.cs
- NeutralResourcesLanguageAttribute.cs
- ImportContext.cs
- XmlSchemaImport.cs
- VisualBrush.cs
- MenuItemAutomationPeer.cs
- RenderContext.cs
- HtmlShim.cs
- WindowsListBox.cs
- InputProcessorProfilesLoader.cs
- ToolStripRenderEventArgs.cs
- ServiceModelExtensionElement.cs
- InvalidCardException.cs
- AutoCompleteStringCollection.cs
- StaticFileHandler.cs
- BaseContextMenu.cs
- SmiEventSink.cs
- XmlSchemaSimpleTypeRestriction.cs
- LeaseManager.cs
- DataExpression.cs
- DiagnosticsConfigurationHandler.cs
- SetterBaseCollection.cs