XhtmlBasicCommandAdapter.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / MIT / System / Web / UI / MobileControls / Adapters / XhtmlAdapters / XhtmlBasicCommandAdapter.cs / 1305376 / XhtmlBasicCommandAdapter.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

using System; 
using System.Collections.Specialized; 
using System.Security.Permissions;
using System.Web; 
using System.Web.Mobile;
using System.Web.UI.MobileControls;

#if COMPILING_FOR_SHIPPED_SOURCE 
namespace System.Web.UI.MobileControls.ShippedAdapterSource.XhtmlAdapters
#else 
namespace System.Web.UI.MobileControls.Adapters.XhtmlAdapters 
#endif
{ 

    /// 
    [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 XhtmlCommandAdapter : XhtmlControlAdapter { 
        ///  
        protected new Command Control {
            get { 
                return base.Control as Command;
            }
        }
 
        public override bool LoadPostData(String key, NameValueCollection data, Object controlPrivateData, out bool dataChanged)
        { 
            dataChanged = false; 

            // HTML input tags of type image postback with the coordinates 
            // of the click rather than the name of the control.
            String name = Control.UniqueID;
            String postX = data[name + ".x"];
            String postY = data[name + ".y"]; 

            if (postX != null && postY != null && postX.Length > 0 && postY.Length > 0) 
            { 
                // set dataChannged to cause RaisePostDataChangedEvent()
                dataChanged = true; 
                return true;
            }

            // For other command control, defer to default logic in control. 
            return base.LoadPostData(key, data, controlPrivateData, out dataChanged);
        } 
 

        ///  
        public override void Render(XhtmlMobileTextWriter writer) {
            // Note: Since XHTML Basic and MP do not include the script element, we ignore the
            // Format==Link attribute as in CHTML.
            ConditionalClearPendingBreak(writer); 
            string imageUrl = Control.ImageUrl;
            if (imageUrl != null && 
                imageUrl.Length > 0 && 
                Device.SupportsImageSubmit) {
                RenderAsInputTypeImage(writer); 
            }
            else {
                RenderAsInputTypeSubmit(writer);
            } 
        }
 
        private void RenderAsInputTypeImage(XhtmlMobileTextWriter writer) { 
            ConditionalEnterStyle(writer, Style);
            writer.WriteBeginTag("input"); 
            writer.WriteAttribute("type", "image");
            writer.WriteAttribute("name", Control.UniqueID);
            writer.WriteAttribute("src", Control.ResolveUrl(Control.ImageUrl), true);
            writer.WriteAttribute("alt", Control.Text, true); 
            ConditionalRenderClassAttribute(writer);
            ConditionalRenderCustomAttribute(writer, XhtmlConstants.AccessKeyCustomAttribute); 
            writer.Write("/>"); 
            // ConditionalSetPendingBreak should always be called *before* ConditionalExitStyle.
            // ConditionalExitStyle may render a block element and clear the pending break. 
            ConditionalSetPendingBreakAfterInline(writer);
            ConditionalExitStyle(writer, Style);
        }
 
        private void RenderAsInputTypeSubmit(XhtmlMobileTextWriter writer){
            ConditionalEnterStyle(writer, Style); 
            writer.WriteBeginTag("input"); 
            writer.WriteAttribute("type", "submit");
            writer.WriteAttribute("name", Control.UniqueID); 
            writer.WriteAttribute("value", Control.Text, true);
            ConditionalRenderClassAttribute(writer);
            ConditionalRenderCustomAttribute(writer, XhtmlConstants.AccessKeyCustomAttribute);
            writer.Write("/>"); 
            // ConditionalSetPendingBreak should always be called *before* ConditionalExitStyle.
            // ConditionalExitStyle may render a block element and clear the pending break. 
            ConditionalSetPendingBreakAfterInline(writer); 
            ConditionalPopPhysicalCssClass(writer);
            ConditionalExitStyle(writer, Style); 
        }

    }
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.


                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK