You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@ -0,0 +1,203 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <copyright file="DropDownList.cs" company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace System.Web.UI.WebControls {
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.ComponentModel;
|
||||
using System.Collections.Specialized;
|
||||
using System.Drawing;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls.Adapters;
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>Creates a control that allows the user to select a single item from a
|
||||
/// drop-down list.</para>
|
||||
/// </devdoc>
|
||||
[
|
||||
SupportsEventValidation,
|
||||
ValidationProperty("SelectedItem")
|
||||
]
|
||||
public class DropDownList : ListControl, IPostBackDataHandler {
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>Initializes a new instance of the <see cref='System.Web.UI.WebControls.DropDownList'/> class.</para>
|
||||
/// </devdoc>
|
||||
public DropDownList() {
|
||||
}
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>[To be supplied.]</para>
|
||||
/// </devdoc>
|
||||
[
|
||||
Browsable(false)
|
||||
]
|
||||
public override Color BorderColor {
|
||||
get {
|
||||
return base.BorderColor;
|
||||
}
|
||||
set {
|
||||
base.BorderColor = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>[To be supplied.]</para>
|
||||
/// </devdoc>
|
||||
[
|
||||
Browsable(false)
|
||||
]
|
||||
public override BorderStyle BorderStyle {
|
||||
get {
|
||||
return base.BorderStyle;
|
||||
}
|
||||
set {
|
||||
base.BorderStyle = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>[To be supplied.]</para>
|
||||
/// </devdoc>
|
||||
[
|
||||
Browsable(false)
|
||||
]
|
||||
public override Unit BorderWidth {
|
||||
get {
|
||||
return base.BorderWidth;
|
||||
}
|
||||
set {
|
||||
base.BorderWidth = value;
|
||||
}
|
||||
}
|
||||
|
||||
public override bool SupportsDisabledAttribute {
|
||||
get {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>Gets or sets the index of the item selected by the user
|
||||
/// from the <see cref='System.Web.UI.WebControls.DropDownList'/>
|
||||
/// control.</para>
|
||||
/// </devdoc>
|
||||
[
|
||||
WebCategory("Behavior"),
|
||||
DefaultValue(0),
|
||||
WebSysDescription(SR.WebControl_SelectedIndex),
|
||||
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
|
||||
]
|
||||
public override int SelectedIndex {
|
||||
get {
|
||||
int selectedIndex = base.SelectedIndex;
|
||||
if (selectedIndex < 0 && Items.Count > 0) {
|
||||
Items[0].Selected = true;
|
||||
selectedIndex = 0;
|
||||
}
|
||||
return selectedIndex;
|
||||
}
|
||||
set {
|
||||
base.SelectedIndex = value;
|
||||
}
|
||||
}
|
||||
|
||||
internal override ArrayList SelectedIndicesInternal {
|
||||
get {
|
||||
int sideEffect = SelectedIndex;
|
||||
return base.SelectedIndicesInternal;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected override void AddAttributesToRender(HtmlTextWriter writer) {
|
||||
string uniqueID = UniqueID;
|
||||
if (uniqueID != null) {
|
||||
writer.AddAttribute(HtmlTextWriterAttribute.Name, uniqueID);
|
||||
}
|
||||
|
||||
base.AddAttributesToRender(writer);
|
||||
}
|
||||
|
||||
|
||||
protected override ControlCollection CreateControlCollection() {
|
||||
return new EmptyControlCollection(this);
|
||||
}
|
||||
|
||||
/// <internalonly/>
|
||||
/// <devdoc>
|
||||
/// <para>Process posted data for the <see cref='System.Web.UI.WebControls.DropDownList'/> control.</para>
|
||||
/// </devdoc>
|
||||
bool IPostBackDataHandler.LoadPostData(String postDataKey, NameValueCollection postCollection) {
|
||||
return LoadPostData(postDataKey, postCollection);
|
||||
}
|
||||
|
||||
|
||||
/// <internalonly/>
|
||||
/// <devdoc>
|
||||
/// <para>Process posted data for the <see cref='System.Web.UI.WebControls.DropDownList'/> control.</para>
|
||||
/// </devdoc>
|
||||
protected virtual bool LoadPostData(String postDataKey, NameValueCollection postCollection) {
|
||||
|
||||
// When a DropDownList is disabled, then there is no postback data for it.
|
||||
// Since DropDownList doesn't call RegisterRequiresPostBack, this method will
|
||||
// never be called, so we don't need to worry about ignoring empty postback data.
|
||||
|
||||
string [] selectedItems = postCollection.GetValues(postDataKey);
|
||||
|
||||
EnsureDataBoundInLoadPostData();
|
||||
if (selectedItems != null) {
|
||||
|
||||
ValidateEvent(postDataKey, selectedItems[0]);
|
||||
|
||||
int n = Items.FindByValueInternal(selectedItems[0], false);
|
||||
|
||||
if (SelectedIndex != n) {
|
||||
SetPostDataSelection(n);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/// <internalonly/>
|
||||
/// <devdoc>
|
||||
/// <para>Raises events for the <see cref='System.Web.UI.WebControls.DropDownList'/> control on post back.</para>
|
||||
/// </devdoc>
|
||||
void IPostBackDataHandler.RaisePostDataChangedEvent() {
|
||||
RaisePostDataChangedEvent();
|
||||
}
|
||||
|
||||
|
||||
/// <internalonly/>
|
||||
/// <devdoc>
|
||||
/// <para>Raises events for the <see cref='System.Web.UI.WebControls.DropDownList'/> control on post back.</para>
|
||||
/// </devdoc>
|
||||
protected virtual void RaisePostDataChangedEvent() {
|
||||
if (AutoPostBack && !Page.IsPostBackEventControlRegistered) {
|
||||
// VSWhidbey 204824
|
||||
Page.AutoPostBackControl = this;
|
||||
|
||||
if (CausesValidation) {
|
||||
Page.Validate(ValidationGroup);
|
||||
}
|
||||
}
|
||||
OnSelectedIndexChanged(EventArgs.Empty);
|
||||
}
|
||||
|
||||
protected internal override void VerifyMultiSelect() {
|
||||
throw new HttpException(SR.GetString(SR.Cant_Multiselect, "DropDownList"));
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user