e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
260 lines
8.5 KiB
C#
260 lines
8.5 KiB
C#
//------------------------------------------------------------------------------
|
|
// <copyright file="TextBox.cs" company="Microsoft">
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// </copyright>
|
|
//------------------------------------------------------------------------------
|
|
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Specialized;
|
|
using System.ComponentModel;
|
|
using System.ComponentModel.Design;
|
|
using System.Drawing;
|
|
using System.Web;
|
|
using System.Web.UI;
|
|
using System.Web.UI.Design.WebControls;
|
|
using System.Web.UI.HtmlControls;
|
|
using System.Security.Permissions;
|
|
|
|
namespace System.Web.UI.MobileControls
|
|
{
|
|
|
|
/*
|
|
* Mobile TextBox class.
|
|
*
|
|
* Copyright (c) 2000 Microsoft Corporation
|
|
*/
|
|
/// <include file='doc\TextBox.uex' path='docs/doc[@for="TextBox"]/*' />
|
|
[
|
|
ControlBuilderAttribute(typeof(TextBoxControlBuilder)),
|
|
DataBindingHandler("System.Web.UI.Design.TextDataBindingHandler, " + AssemblyRef.SystemDesign),
|
|
DefaultEvent("TextChanged"),
|
|
DefaultProperty("Text"),
|
|
Designer(typeof(System.Web.UI.Design.MobileControls.TextBoxDesigner)),
|
|
DesignerAdapter(typeof(System.Web.UI.Design.MobileControls.Adapters.DesignerTextBoxAdapter)),
|
|
ToolboxData("<{0}:TextBox runat=\"server\"></{0}:TextBox>"),
|
|
ToolboxItem("System.Web.UI.Design.WebControlToolboxItem, " + AssemblyRef.SystemDesign),
|
|
ValidationProperty("Text")
|
|
]
|
|
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
|
|
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
|
|
[Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")]
|
|
public class TextBox : TextControl, IPostBackDataHandler
|
|
{
|
|
private static readonly Object EventTextChanged = new Object();
|
|
|
|
/// <include file='doc\TextBox.uex' path='docs/doc[@for="TextBox.IPostBackDataHandler.LoadPostData"]/*' />
|
|
/// <internalonly/>
|
|
protected bool LoadPostData(String key, NameValueCollection data)
|
|
{
|
|
bool dataChanged = false;
|
|
bool handledByAdapter =
|
|
Adapter.LoadPostData(key, data, null, out dataChanged);
|
|
|
|
if (!handledByAdapter)
|
|
{
|
|
String value = data[key];
|
|
if (Text != value)
|
|
{
|
|
Text = value;
|
|
dataChanged = true; // this will cause a RaisePostDataChangedEvent()
|
|
}
|
|
}
|
|
|
|
return dataChanged;
|
|
}
|
|
|
|
/// <include file='doc\TextBox.uex' path='docs/doc[@for="TextBox.IPostBackDataHandler.RaisePostDataChangedEvent"]/*' />
|
|
/// <internalonly/>
|
|
protected void RaisePostDataChangedEvent()
|
|
{
|
|
OnTextChanged(EventArgs.Empty);
|
|
}
|
|
|
|
/// <include file='doc\TextBox.uex' path='docs/doc[@for="TextBox.OnTextChanged"]/*' />
|
|
protected virtual void OnTextChanged(EventArgs e)
|
|
{
|
|
EventHandler onTextChangedHandler = (EventHandler)Events[EventTextChanged];
|
|
if (onTextChangedHandler != null)
|
|
{
|
|
onTextChangedHandler(this,e);
|
|
}
|
|
}
|
|
|
|
/// <include file='doc\TextBox.uex' path='docs/doc[@for="TextBox.Password"]/*' />
|
|
[
|
|
Bindable(true),
|
|
Browsable(true),
|
|
DefaultValue(false),
|
|
MobileCategory(SR.Category_Behavior),
|
|
MobileSysDescription(SR.TextBox_Password)
|
|
]
|
|
public bool Password
|
|
{
|
|
get
|
|
{
|
|
Object b = ViewState["Password"];
|
|
return (b != null) ? (bool)b : false;
|
|
}
|
|
set
|
|
{
|
|
ViewState["Password"] = value;
|
|
}
|
|
}
|
|
|
|
/// <include file='doc\TextBox.uex' path='docs/doc[@for="TextBox.Numeric"]/*' />
|
|
[
|
|
Bindable(true),
|
|
Browsable(true),
|
|
DefaultValue(false),
|
|
MobileCategory(SR.Category_Behavior),
|
|
MobileSysDescription(SR.TextBox_Numeric)
|
|
]
|
|
public bool Numeric
|
|
{
|
|
get
|
|
{
|
|
Object b = ViewState["Numeric"];
|
|
return (b != null) ? (bool)b : false;
|
|
}
|
|
set
|
|
{
|
|
ViewState["Numeric"] = value;
|
|
}
|
|
}
|
|
|
|
/// <include file='doc\TextBox.uex' path='docs/doc[@for="TextBox.Size"]/*' />
|
|
[
|
|
Bindable(true),
|
|
DefaultValue(0),
|
|
MobileCategory(SR.Category_Behavior),
|
|
MobileSysDescription(SR.TextBox_Size)
|
|
]
|
|
public int Size
|
|
{
|
|
get
|
|
{
|
|
Object i = ViewState["Size"];
|
|
return((i != null) ? (int)i : 0);
|
|
}
|
|
set
|
|
{
|
|
if (value < 0)
|
|
{
|
|
throw new ArgumentOutOfRangeException("Size", value,
|
|
SR.GetString(SR.TextBox_NotNegativeNumber));
|
|
}
|
|
ViewState["Size"] = value;
|
|
}
|
|
}
|
|
|
|
/// <include file='doc\TextBox.uex' path='docs/doc[@for="TextBox.MaxLength"]/*' />
|
|
[
|
|
Bindable(true),
|
|
DefaultValue(0),
|
|
MobileCategory(SR.Category_Behavior),
|
|
MobileSysDescription(SR.TextBox_MaxLength)
|
|
]
|
|
public int MaxLength
|
|
{
|
|
get
|
|
{
|
|
Object i = ViewState["MaxLength"];
|
|
return((i != null) ? (int)i : 0);
|
|
}
|
|
set
|
|
{
|
|
if (value < 0)
|
|
{
|
|
throw new ArgumentOutOfRangeException("MaxLength", value,
|
|
SR.GetString(SR.TextBox_NotNegativeNumber));
|
|
}
|
|
ViewState["MaxLength"] = value;
|
|
}
|
|
}
|
|
|
|
/// <include file='doc\TextBox.uex' path='docs/doc[@for="TextBox.TextChanged"]/*' />
|
|
[
|
|
MobileSysDescription(SR.TextBox_OnTextChanged)
|
|
]
|
|
public event EventHandler TextChanged
|
|
{
|
|
add
|
|
{
|
|
Events.AddHandler(EventTextChanged, value);
|
|
}
|
|
remove
|
|
{
|
|
Events.RemoveHandler(EventTextChanged, value);
|
|
}
|
|
}
|
|
|
|
/// <include file='doc\TextBox.uex' path='docs/doc[@for="TextBox.Title"]/*' />
|
|
[
|
|
Bindable(true),
|
|
DefaultValue(""),
|
|
MobileCategory(SR.Category_Appearance),
|
|
MobileSysDescription(SR.Input_Title)
|
|
]
|
|
public String Title
|
|
{
|
|
get
|
|
{
|
|
return ToString(ViewState["Title"]);
|
|
}
|
|
set
|
|
{
|
|
ViewState["Title"] = value;
|
|
}
|
|
}
|
|
|
|
internal override bool TrimInnerText
|
|
{
|
|
get
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
internal override bool TrimNewlines
|
|
{
|
|
get
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
#region IPostBackDataHandler implementation
|
|
bool IPostBackDataHandler.LoadPostData(String key, NameValueCollection data) {
|
|
return LoadPostData(key, data);
|
|
}
|
|
|
|
void IPostBackDataHandler.RaisePostDataChangedEvent() {
|
|
RaisePostDataChangedEvent();
|
|
}
|
|
#endregion
|
|
}
|
|
|
|
/*
|
|
* TextBox Control Builder
|
|
*
|
|
* Copyright (c) 2000 Microsoft Corporation
|
|
*/
|
|
|
|
/// <include file='doc\TextBox.uex' path='docs/doc[@for="TextBoxControlBuilder"]/*' />
|
|
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
|
|
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
|
|
[Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")]
|
|
public class TextBoxControlBuilder : MobileControlBuilder
|
|
{
|
|
// Textbox allows whitespace inside text.
|
|
|
|
/// <include file='doc\TextBox.uex' path='docs/doc[@for="TextBoxControlBuilder.AllowWhitespaceLiterals"]/*' />
|
|
public override bool AllowWhitespaceLiterals()
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
}
|