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,104 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <copyright file="WmlTextBoxAdapter.cs" company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#if WMLSUPPORT
|
||||
|
||||
namespace System.Web.UI.WebControls.Adapters {
|
||||
using System.Web.UI.Adapters;
|
||||
using System.Globalization;
|
||||
using System.Web.UI.WebControls;
|
||||
|
||||
// Provides adaptive rendering for the TextBox control.
|
||||
public class WmlTextBoxAdapter : TextBoxAdapter {
|
||||
private String _staticValue;
|
||||
|
||||
// Called during the Init lifecycle phase.
|
||||
protected internal override void OnInit(EventArgs e) {
|
||||
_staticValue = Control.Text;
|
||||
base.OnInit(e);
|
||||
}
|
||||
|
||||
// Renders the control.
|
||||
protected internal override void Render(HtmlTextWriter markupWriter) {
|
||||
WmlTextWriter writer = (WmlTextWriter)markupWriter;
|
||||
|
||||
String value = Control.Text;
|
||||
bool requiresRandomID = false;
|
||||
bool password = Control.TextMode == TextBoxMode.Password;
|
||||
|
||||
// writer.EnterLayout(Style);
|
||||
|
||||
if (Control.TextMode == TextBoxMode.Password) {
|
||||
value = String.Empty;
|
||||
// UNDONE: Consider adding property or wml adapter property to set requiresRandomID to true.
|
||||
requiresRandomID = true;
|
||||
}
|
||||
|
||||
((WmlPageAdapter)PageAdapter).RegisterPostField(writer, Control.UniqueID, Control.ClientID, true /* isDynamic */, requiresRandomID);
|
||||
|
||||
if (!password) {
|
||||
// Add a form variable for the textbox to populate it.
|
||||
// We need to do this since OnEnterForward values override the value attribute -see WML 1.1 spec.
|
||||
// Do not add the form variable if the text mode is password, since we don't want it to be displayed on
|
||||
// the client.
|
||||
((WmlPageAdapter)PageAdapter).AddFormVariable(writer, Control.ClientID, value, requiresRandomID);
|
||||
// Note: AddFormVariable calls MapClientIDToShortName.
|
||||
}
|
||||
else {
|
||||
// This is to make sure an id is determined in the first
|
||||
// pass, and this is done in AddFormVariable as well.
|
||||
writer.MapClientIDToShortName(Control.ClientID, requiresRandomID);
|
||||
}
|
||||
|
||||
// UNDONE: There are some wml-specific properties (format, title, size, maxLength) which
|
||||
// we should consider for Whidbey.
|
||||
RenderTextBox((WmlTextWriter)writer, Control.ClientID,
|
||||
value,
|
||||
null /* format */,
|
||||
null /* title */,
|
||||
password,
|
||||
Control.Columns /* size */,
|
||||
Control.MaxLength /* maxLength */,
|
||||
requiresRandomID);
|
||||
// writer.ExitLayout(Style);
|
||||
}
|
||||
|
||||
// Renders the TextBox.
|
||||
public virtual void RenderTextBox(WmlTextWriter writer, String id, String value, String format, String title, bool password, int size, int maxLength, bool generateRandomID) {
|
||||
if (!writer.AnalyzeMode) {
|
||||
// UNDONE: Handle rendersBreakBeforeWmlSelectAndInput, if this capability is still needed for Whidbey devices
|
||||
|
||||
// VSWhidbey 147458. Close any style tags.
|
||||
writer.CloseCurrentStyleTags();
|
||||
writer.WriteBeginTag("input");
|
||||
// Map the client ID to a short name. See
|
||||
// MapClientIDToShortName for details.
|
||||
writer.WriteAttribute("name", writer.MapClientIDToShortName(id, generateRandomID));
|
||||
if (password) {
|
||||
writer.WriteAttribute("type", "password");
|
||||
}
|
||||
if (!String.IsNullOrEmpty(format)) {
|
||||
writer.WriteAttribute("format", format);
|
||||
}
|
||||
if (!String.IsNullOrEmpty(title)) {
|
||||
writer.WriteAttribute("title", title, true);
|
||||
}
|
||||
if (size > 0) {
|
||||
writer.WriteAttribute("size", size.ToString(CultureInfo.InvariantCulture));
|
||||
}
|
||||
if (maxLength > 0) {
|
||||
writer.WriteAttribute("maxlength", maxLength.ToString(CultureInfo.InvariantCulture));
|
||||
}
|
||||
// We do not need a value attribute. The Text value is populated by the client side var set in onenterforward.
|
||||
writer.WriteLine(" />");
|
||||
writer.OpenCurrentStyleTags();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user