You've already forked linux-packaging-mono
							
							
		
			
				
	
	
		
			147 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			147 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| //------------------------------------------------------------------------------
 | |
| // <copyright file="WmlTextBoxAdapter.cs" company="Microsoft">
 | |
| //     Copyright (c) Microsoft Corporation.  All rights reserved.
 | |
| // </copyright>                                                                
 | |
| //------------------------------------------------------------------------------
 | |
| 
 | |
| using System;
 | |
| using System.Globalization;
 | |
| using System.IO;
 | |
| using System.Web;
 | |
| using System.Web.UI;
 | |
| using System.Web.UI.MobileControls;
 | |
| using System.Security.Permissions;
 | |
| 
 | |
| #if COMPILING_FOR_SHIPPED_SOURCE
 | |
| namespace System.Web.UI.MobileControls.ShippedAdapterSource
 | |
| #else
 | |
| namespace System.Web.UI.MobileControls.Adapters
 | |
| #endif    
 | |
| 
 | |
| {
 | |
| 
 | |
|     /*
 | |
|      * WmlTextBoxAdapter class.
 | |
|      *
 | |
|      * Copyright (c) 2000 Microsoft Corporation
 | |
|      */
 | |
|     /// <include file='doc\WmlTextBoxAdapter.uex' path='docs/doc[@for="WmlTextBoxAdapter"]/*' />
 | |
|     [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 WmlTextBoxAdapter : WmlControlAdapter
 | |
|     {
 | |
|         private String _staticValue;
 | |
| 
 | |
|         /// <include file='doc\WmlTextBoxAdapter.uex' path='docs/doc[@for="WmlTextBoxAdapter.Control"]/*' />
 | |
|         protected new TextBox Control
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 return (TextBox)base.Control;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <include file='doc\WmlTextBoxAdapter.uex' path='docs/doc[@for="WmlTextBoxAdapter.OnInit"]/*' />
 | |
|         public override void OnInit(EventArgs e)
 | |
|         {
 | |
|             _staticValue = Control.Text;
 | |
|             base.OnInit(e);
 | |
|         }
 | |
| 
 | |
|         /// <include file='doc\WmlTextBoxAdapter.uex' path='docs/doc[@for="WmlTextBoxAdapter.Render"]/*' />
 | |
|         public override void Render(WmlMobileTextWriter writer)
 | |
|         {
 | |
|             String value = Control.Text;
 | |
|             bool requiresRandomID = RequiresRandomID();
 | |
| 
 | |
|             writer.EnterLayout(Style);
 | |
|             if (Control.Password)
 | |
|             {
 | |
|                 value = String.Empty;
 | |
|             }
 | |
| 
 | |
|             if (!PageAdapter.RequiresValueAttributeInInputTag())
 | |
|             {
 | |
|                 writer.AddFormVariable(Control.ClientID, value, requiresRandomID);
 | |
|             }
 | |
|             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);
 | |
|             }
 | |
| 
 | |
|             String format = ((IAttributeAccessor)Control).GetAttribute("wmlFormat");
 | |
|             if (String.IsNullOrEmpty(format))
 | |
|             {
 | |
|                 if (Control.Numeric)
 | |
|                 {
 | |
|                     format = "*N";
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     format = null;
 | |
|                 }
 | |
|             }
 | |
|             
 | |
|             writer.RenderTextBox(Control.ClientID, 
 | |
|                                  value,
 | |
|                                  format, 
 | |
|                                  Control.Title,
 | |
|                                  Control.Password, 
 | |
|                                  Control.Size, 
 | |
|                                  Control.MaxLength, 
 | |
|                                  requiresRandomID,
 | |
|                                  Control.BreakAfter);
 | |
|             writer.ExitLayout(Style);
 | |
|         }
 | |
| 
 | |
|         private bool RequiresRandomID()
 | |
|         {
 | |
|             String randomID = ((IAttributeAccessor)Control).GetAttribute("useRandomID");
 | |
|             if (randomID != null)
 | |
|             {
 | |
|                 return String.Compare(randomID, "true", StringComparison.OrdinalIgnoreCase) == 0;
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 return Control.Password;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <include file='doc\WmlTextBoxAdapter.uex' path='docs/doc[@for="WmlTextBoxAdapter.GetPostBackValue"]/*' />
 | |
|         protected override String GetPostBackValue()
 | |
|         {
 | |
|             // Optimization - if viewstate is enabled for this control, and the
 | |
|             // postback returns to this page, we just let it do the trick.
 | |
| 
 | |
|             if (Control.Form.Action.Length > 0 || (!IsViewStateEnabled() && Control.Text != _staticValue))
 | |
|             {
 | |
|                 return Control.Text;
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 return null;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private bool IsViewStateEnabled()
 | |
|         {
 | |
|             Control ctl = Control;
 | |
|             while (ctl != null)
 | |
|             {
 | |
|                 if (!ctl.EnableViewState)
 | |
|                 {
 | |
|                     return false;
 | |
|                 }
 | |
|                 ctl = ctl.Parent;
 | |
|             }
 | |
|             return true;
 | |
|         }
 | |
| 
 | |
|     }
 | |
| 
 | |
| }
 | |
| 
 |