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;
                }

            }

        }

    }

  • 相关阅读:
    转:高层游戏引擎——基于OGRE所实现的高层游戏引擎框架
    转: Orz是一个基于Ogre思想的游戏开发架构
    转:Ogre源代码浅析——脚本及其解析(一)
    IntelliJ IDEA添加过滤文件或目录
    为什么要使用ConcurrentHashMap
    volatile关键字解析
    Spring Boot MyBatis 通用Mapper 自动生成代码
    使用mysql乐观锁解决并发问题
    使用Redis分布式锁处理并发,解决超卖问题
    浅析 pagehelper 分页
  • 原文地址:https://www.cnblogs.com/jintan/p/1310136.html
Copyright © 2011-2022 走看看