zoukankan      html  css  js  c++  java
  • .net 1.1 LinkButton代码

    .net 1.1 LinkButton代码

    using System;
    using System.ComponentModel;
    using System.Drawing.Design;
    using System.Web;
    using System.Web.UI;
    using System.Web.Util;
    using System.Security.Permissions;
    using System.Web.UI.WebControls;

    namespace JxtLibrary.Controls
    {
        
    public class LinkButton : WebControl, IPostBackEventHandler
        
    {
            
    private static readonly object EventClick = new object();
            
    private static readonly object EventCommand = new object();

            [Category(
    "Action")]
            
    public event EventHandler Click
            
    {
                add
                
    {
                    
    base.Events.AddHandler(EventClick, value);
                }

                remove
                
    {
                    
    base.Events.RemoveHandler(EventClick, value);
                }

            }


            [Category(
    "Action")]
            
    public event CommandEventHandler Command
            
    {
                add
                
    {
                    
    base.Events.AddHandler(EventCommand, value);
                }

                remove
                
    {
                    
    base.Events.RemoveHandler(EventCommand, value);
                }

            }


            
    public LinkButton()
                : 
    base(HtmlTextWriterTag.A)
            
    {
            }


            
    internal static string GetClientValidatedPostback(Control control)
            
    {
                
    string postBackEventReference = control.Page.GetPostBackEventReference(control);
                
    return ("{if (typeof(Page_ClientValidate) != 'function' ||  Page_ClientValidate()) " + postBackEventReference + "");
            }



            
    protected override void AddAttributesToRender(HtmlTextWriter writer)
            
    {
                
    if (this.Page != null)
                
    {
                    
    this.Page.VerifyRenderingInServerForm(this);
                }

                
    base.AddAttributesToRender(writer);
                
    if (this.Enabled && (this.Page != null))
                
    {
                    
    if (this.CausesValidation && (this.Page.Validators.Count > 0))
                    
    {
                        writer.AddAttribute(HtmlTextWriterAttribute.Href, 
    "javascript:" + GetClientValidatedPostback(this));
                    }

                    
    else
                    
    {
                        writer.AddAttribute(HtmlTextWriterAttribute.Href, 
    this.Page.GetPostBackClientHyperlink(this""));
                    }

                }

            }


            
    protected override void AddParsedSubObject(object obj)
            
    {
                
    if (this.HasControls())
                
    {
                    
    base.AddParsedSubObject(obj);
                }

                
    else if (obj is LiteralControl)
                
    {
                    
    this.Text = ((LiteralControl)obj).Text;
                }

                
    else
                
    {
                    
    string text = this.Text;
                    
    if (text.Length != 0)
                    
    {
                        
    this.Text = string.Empty;
                        
    base.AddParsedSubObject(new LiteralControl(text));
                    }

                    
    base.AddParsedSubObject(obj);
                }

            }


            
    protected override void LoadViewState(object savedState)
            
    {
                
    if (savedState != null)
                
    {
                    
    base.LoadViewState(savedState);
                    
    string str = (string)this.ViewState["Text"];
                    
    if (str != null)
                    
    {
                        
    this.Text = str;
                    }

                }

            }


            
    protected virtual void OnClick(EventArgs e)
            
    {
                EventHandler handler 
    = (EventHandler)base.Events[EventClick];
                
    if (handler != null)
                
    {
                    handler(
    this, e);
                }

            }


            
    protected virtual void OnCommand(CommandEventArgs e)
            
    {
                CommandEventHandler handler 
    = (CommandEventHandler)base.Events[EventCommand];
                
    if (handler != null)
                
    {
                    handler(
    this, e);
                }

                
    base.RaiseBubbleEvent(this, e);
            }


            
    protected override void OnPreRender(EventArgs e)
            
    {
                
    base.OnPreRender(e);
                
    if ((this.Page != null&& this.Enabled)
                
    {
                    
    //this.Page.RegisterPostBackScript();
                }

            }


            
    protected override void RenderContents(HtmlTextWriter writer)
            
    {
                
    if (this.HasControls())
                
    {
                    
    base.RenderContents(writer);
                }

                
    else
                
    {
                    writer.Write(
    this.Text);
                }

            }


            
    void IPostBackEventHandler.RaisePostBackEvent(string eventArgument)
            
    {
                
    if (this.CausesValidation)
                
    {
                    
    this.Page.Validate();
                }

                
    this.OnClick(new EventArgs());
                
    this.OnCommand(new CommandEventArgs(this.CommandName, this.CommandArgument));
            }


            [Category(
    "Behavior"), Bindable(false), DefaultValue(true)]
            
    public bool CausesValidation
            
    {
                
    get
                
    {
                    
    object b = ViewState["CausesValidation"];
                    
    return ((b == null? true : (bool)b);
                }

                
    set
                
    {
                    ViewState[
    "CausesValidation"= value;
                }

            }


            [Bindable(
    true), Category("Behavior"), DefaultValue("")]
            
    public string CommandArgument
            
    {
                
    get
                
    {
                    
    string s = (string)ViewState["CommandArgument"];
                    
    return ((s == null? String.Empty : s);
                }

                
    set
                
    {
                    ViewState[
    "CommandArgument"= value;
                }

            }


            [Category(
    "Behavior"), DefaultValue("")]
            
    public string CommandName
            
    {
                
    get
                
    {
                    
    string s = (string)ViewState["CommandName"];
                    
    return ((s == null? String.Empty : s);
                }

                
    set
                
    {
                    ViewState[
    "CommandName"= value;
                }

            }


            [PersistenceMode(PersistenceMode.InnerDefaultProperty), Bindable(
    true), Category("Appearance"), DefaultValue("")]
            
    public virtual string Text
            
    {
                
    get
                
    {
                    
    object o = ViewState["Text"];
                    
    return ((o == null? String.Empty : (string)o);
                }

                
    set
                
    {
                    
    if (HasControls())
                    
    {
                        Controls.Clear();
                    }

                    ViewState[
    "Text"= value;
                }

            }

        }

    }

  • 相关阅读:
    Could A New Linux Base For Tablets/Smartphones Succeed In 2017?
    使用libhybris,glibc和bionic共存时的TLS冲突的问题
    6 Open Source Mobile OS Alternatives To Android in 2018
    Using MultiROM
    GPU drivers are written by the GPU IP vendors and they only provide Android drivers
    Jolla Brings Wayland Atop Android GPU Drivers
    How to Use Libhybris and Android GPU Libraries with Mer (Linux) on the Cubieboard
    闲聊Libhybris
    【ARM-Linux开发】wayland和weston的介绍
    Wayland and X.org problem : Why not following the Android Solution ?
  • 原文地址:https://www.cnblogs.com/jintan/p/1310136.html
Copyright © 2011-2022 走看看