现在的位置: 首页 > 综合 > 正文

.net 1.1 LinkButton代码

2012年08月09日 ⁄ 综合 ⁄ 共 4998字 ⁄ 字号 评论关闭

.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
        

抱歉!评论已关闭.