改进CButton
由于在上个版本中CButton无法支持验证控件,故此改变为继承Button,一切问题迎刃而解,代码如下
/*
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Beads - UK wholesale beads,buttons and jewelry making supplies-eezyco.co.uk</title>
<style type="text/css">
button { padding:0;margin:0;border:0;background:none;text-indent:inherit; }
* html button { width:1%;overflow:visible;margin:0 5px 0 0; }
button .btn { background:url(https://securepics.ebaystatic.com/aw/pics/buttons/btnViPrmry.gif);color:#fff;font-family:Arial;font-weight:bold;white-space:nowrap;cursor:pointer;display:block;height:24px;line-height:190%;padding:0 0 0 6px;vertical-align:middle; }
button .btn .btn { padding:0 20px 0 14px; }
.SIActBtn .btn { background:url(https://securepics.ebaystatic.com/aw/pics/viewitem/imgVIPrmryBtnLt.gif) no-repeat top left; }
.SIActBtn .btn .btn { background:url(https://securepics.ebaystatic.com/aw/pics/buttons/btnViPrmry.gif) no-repeat right;background-position:100% 0; }
</style>
</head>
<body>
<div>
<button type="submit" tabindex="3" class="SIActBtn"><span class="btn"><span class="btn">Next, Please Confirm Your Cart</span></span></button>
</div>
</body>
</html>
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Web.UI.Design;
using System.Globalization;
using System.IO;
namespace WebControls
{
/// <summary>
/// 按钮
/// </summary>
[DefaultProperty("Text")]
public class CButton : Button
{
/// <summary>
/// 生成标记
/// </summary>
protected override HtmlTextWriterTag TagKey
{
get { return HtmlTextWriterTag.Button; }
}
/// <summary>
/// 增加属性
/// </summary>
/// <param name="writer"></param>
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
base.AddAttributesToRender(writer);
writer.AddAttribute("class", "SIActBtn");
}
/// <summary>
/// 增加子控件
/// </summary>
protected override void CreateChildControls()
{
base.CreateChildControls();
Literal lt = new Literal();
lt.Text = string.Format("<span class=\"btn\"><span class=\"btn\">{0}</span></span>", this.Text);
this.Controls.Add(lt);
}
/// <summary>
/// 生成Button
/// </summary>
/// <param name="writer"></param>
protected override void Render(HtmlTextWriter writer)
{
StringWriter stringWriter = new StringWriter();
HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);
base.Render(htmlWriter);
string html = stringWriter.ToString();
int index = html.ToLower().IndexOf("</button>");
html = string.Format("{0}<span class=\"btn\"><span class=\"btn\">{1}</span></span></button>", html.Substring(0, index), this.Text);
writer.Write(html);
}
}
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Beads - UK wholesale beads,buttons and jewelry making supplies-eezyco.co.uk</title>
<style type="text/css">
button { padding:0;margin:0;border:0;background:none;text-indent:inherit; }
* html button { width:1%;overflow:visible;margin:0 5px 0 0; }
button .btn { background:url(https://securepics.ebaystatic.com/aw/pics/buttons/btnViPrmry.gif);color:#fff;font-family:Arial;font-weight:bold;white-space:nowrap;cursor:pointer;display:block;height:24px;line-height:190%;padding:0 0 0 6px;vertical-align:middle; }
button .btn .btn { padding:0 20px 0 14px; }
.SIActBtn .btn { background:url(https://securepics.ebaystatic.com/aw/pics/viewitem/imgVIPrmryBtnLt.gif) no-repeat top left; }
.SIActBtn .btn .btn { background:url(https://securepics.ebaystatic.com/aw/pics/buttons/btnViPrmry.gif) no-repeat right;background-position:100% 0; }
</style>
</head>
<body>
<div>
<button type="submit" tabindex="3" class="SIActBtn"><span class="btn"><span class="btn">Next, Please Confirm Your Cart</span></span></button>
</div>
</body>
</html>
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Web.UI.Design;
using System.Globalization;
using System.IO;
namespace WebControls
{
/// <summary>
/// 按钮
/// </summary>
[DefaultProperty("Text")]
public class CButton : Button
{
/// <summary>
/// 生成标记
/// </summary>
protected override HtmlTextWriterTag TagKey
{
get { return HtmlTextWriterTag.Button; }
}
/// <summary>
/// 增加属性
/// </summary>
/// <param name="writer"></param>
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
base.AddAttributesToRender(writer);
writer.AddAttribute("class", "SIActBtn");
}
/// <summary>
/// 增加子控件
/// </summary>
protected override void CreateChildControls()
{
base.CreateChildControls();
Literal lt = new Literal();
lt.Text = string.Format("<span class=\"btn\"><span class=\"btn\">{0}</span></span>", this.Text);
this.Controls.Add(lt);
}
/// <summary>
/// 生成Button
/// </summary>
/// <param name="writer"></param>
protected override void Render(HtmlTextWriter writer)
{
StringWriter stringWriter = new StringWriter();
HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);
base.Render(htmlWriter);
string html = stringWriter.ToString();
int index = html.ToLower().IndexOf("</button>");
html = string.Format("{0}<span class=\"btn\"><span class=\"btn\">{1}</span></span></button>", html.Substring(0, index), this.Text);
writer.Write(html);
}
}
}