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