自定义可视控件,由 <div> 标签作为模板生成。
属性:
Text:控件显示的文字内容
Href:控件显示的文字的超链接地址
Target:控件显示超链接的目标框架
StyleBackGround:控件背景样式
StyleMouseOut:控件鼠标离开后样式
StyleMouseOver:控件鼠标移上后样式
StyleLine:控件分隔线样式
DisplayPipe:控件是否显示分隔符"|"
Width:控件宽度
用途:
作为类似链接或按钮标签,构成导航栏菜单条使用。
功能:
显示提示文字,可设置链接,可以响应鼠标覆盖/离开事件,变换控件外观。可以显示或隐藏分割符。
代码:
App_Code\SelfControls.cs:
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
namespace SelfControls
{
public class MainControl : System.Web.UI.WebControls.WebControl
{
#region 定义变量及其默认值
private string text = "";
private string href = "";
private string target = "_self";
private string stylebackground = "";
private string stylemouseout = "";
private string stylemouseover = "";
private string styleline = "";
private bool displayPipe = true;
#endregion
#region 构造函数
public MainControl(): base(HtmlTextWriterTag.Div)
{
}
#endregion
#region 定义属性
//控件显示的文字内容
public string Text
{
get
{
return text;
}
set
{
text = value;
}
}
//控件显示的文字的超链接地址
public string Href
{
get
{
return href;
}
set
{
href = value;
}
}
//控件显示超链接的目标框架
public string Target
{
get
{
return target;
}
set
{
target = value;
}
}
//控件背景样式
public string StyleBackGround
{
get
{
return stylebackground;
}
set
{
stylebackground = value;
}
}
//控件鼠标离开后样式
public string StyleMouseOut
{
get
{
return stylemouseout;
}
set
{
stylemouseout = value;
}
}
//控件鼠标移上后样式
public string StyleMouseOver
{
get
{
return stylemouseover;
}
set
{
stylemouseover = value;
}
}
//控件分隔线样式
public string StyleLine
{
get
{
return styleline;
}
set
{
styleline = value;
}
}
//控件是否显示分隔符"|"
public bool DisplayPipe
{
get
{
return displayPipe;
}
set
{
displayPipe = value;
}
}
//控件宽度
public override Unit Width
{
get
{
return base.Width;
}
set
{
base.Width = value;
}
}
#endregion
///将自定义样式写到 HTTP 输出流中:
protected override void AddAttributesToRender(HtmlTextWriter output)
{
output.Write("<!-自定义控件示例-->");
output.AddAttribute(HtmlTextWriterAttribute.Class, StyleBackGround);
output.AddStyleAttribute("width", Width.ToString());
base.AddAttributesToRender(output);
}
/// 呈现控件的方法 RenderContents
protected override void RenderContents(HtmlTextWriter output)
{
//定义样式
output.AddStyleAttribute(HtmlTextWriterStyle.Width, "10px");
output.AddStyleAttribute(HtmlTextWriterStyle.FontSize, "12px");
output.AddStyleAttribute(HtmlTextWriterStyle.FontFamily, "宋体");
output.RenderBeginTag(HtmlTextWriterTag.Span);
output.AddAttribute(HtmlTextWriterAttribute.Class, StyleMouseOut);
output.AddAttribute("onmouseout", "this.className='" + StyleMouseOut + "'");
output.AddAttribute("onmouseover", "this.className='" + StyleMouseOver + "'");
output.AddAttribute(HtmlTextWriterAttribute.Href, Href);
output.AddAttribute(HtmlTextWriterAttribute.Target, Target);
output.RenderBeginTag(HtmlTextWriterTag.A);
output.Write(text);
output.RenderEndTag();
output.RenderEndTag();
//定义分隔符及样式
if (DisplayPipe)
{
output.AddAttribute(HtmlTextWriterAttribute.Class, StyleLine);
output.RenderBeginTag(HtmlTextWriterTag.Span);
output.Write("|");
output.RenderEndTag();
}
else
{
output.RenderBeginTag(HtmlTextWriterTag.Span);
output.Write(" ");
output.RenderEndTag();
}
//使用默认逻辑来呈现子控件
base.RenderContents(output);
}
}
}
调用示例:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Top.aspx.cs" Inherits="Top" %>
<%@ Register TagPrefix="SelfControl" Namespace="SelfControls" %>
<%@ OutputCache Duration="1000" VaryByParam="None" %>
<html>
<head>
<title></title>
<LINK REL='stylesheet' TYPE='text/css' HREF='styles/style.css'></LINK>
<LINK REL='stylesheet' TYPE='text/css' HREF='styles/SelfControl.css'></LINK>
</head>
<body leftmargin="0" topmargin="0">
<table cellspacing="0" cellpadding="0" width="100%" border="0">
<tr>
<td width="100%">
<table height="22" cellspacing="0" cellpadding="0" width="100%" border="0">
<tr>
<td bgcolor="#4b92d9" width="30%" height="22"><span style="font-size:12px; color: #ffffff;">自定义控件测试页面</span></td>
<td style="filter: progid:DXImageTransform.Microsoft.Gradient(startColorStr='#4B92D9', endColorStr='#CEDFF6', gradientType='1')" width="35%"> </td>
<td style="filter: progid:DXImageTransform.Microsoft.Gradient(startColorStr='#CEDFF6', endColorStr='#1E77D3', gradientType='1')" width="35%"> </td>
</tr>
</table>
</td>
</tr>
</table>
<table id="Table5" width0="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<SelfControl:MainControl ID="CustomControl1" runat="server"
StyleBackGround="GrayBackGround"
StyleMouseOut="GrayStyleOut"
StyleMouseOver="GrayStyleOver"
StyleLine="GrayLine"
DisplayPipe="true"
Target="MainFrame"
Text="测试主页"
Href="bott.aspx">
</SelfControl:MainControl>
</td>
<td>
<SelfControl:MainControl ID="Customcontrol2" runat="server"
StyleBackGround="GrayBackGround"
StyleMouseOut="GrayStyleOut"
StyleMouseOver="GrayStyleOver"
StyleLine="GrayLine"
DisplayPipe="true"
Target="MainFrame"
Text="电脑学习网"
Href="http://www.why100000.com/" />
</td>
<td>
<SelfControl:MainControl ID="Customcontrol3" runat="server"
StyleBackGround="GrayBackGround"
StyleMouseOut="GrayStyleOut"
StyleMouseOver="GrayStyleOver"
StyleLine="GrayLine"
DisplayPipe="true"
Target="MainFrame"
Text="电脑《问吧》"
Href="http://bbs.why100000.com" />
</td>
<td>
<SelfControl:MainControl ID="Customcontrol4" runat="server"
StyleBackGround="BlueBackGround"
StyleMouseOut="BlueStyleOut"
StyleMouseOver="BlueStyleOver"
StyleLine="BlueLine"
DisplayPipe="false"
Target="_blank"
Text="网络学院"
Href="http://edu.why100000.com/edu" />
</td>
<td width="100%" bgcolor="#f1f1f1"></td>
</tr>
</table>
</body>
</html>
分享到:
相关推荐
在开发流程中,ASP.NET 2.0的内置开发服务器(Cassini)允许开发者在不配置IIS的情况下快速进行本地调试。此外,ASP.NET配置工具简化了IIS的配置和安全设置,包括身份验证、授权和URL重写等功能。 至于“案例”部分...
ASP.NET 2.0是微软公司推出的一种强大的Web应用程序开发框架,它建立在.NET Framework之上,为开发者提供了高效、安全且可扩展的平台,用于构建动态的、数据驱动的Web应用。这本书“ASP.NET 2.0网络开发技术”旨在...
在ASP.NET 2.0中,复合控件(Composite Control)是一种非常强大的工具,它允许开发者将多个简单控件组合成一个自定义的、复杂的用户界面元素。复合控件的概念是为了提高代码重用性和简化页面设计,使得开发更加高效...
我们可以深入理解如何在ASP.NET 2.0中创建自定义控件,如何与页面生命周期交互,以及如何在C#中处理异步操作和用户界面更新。 文件名称"Web.UI.Controls.WaitScreen"可能表示的是一个命名空间,其中包含了等待画面...
- **ViewState**:ASP.NET 2.0中的ViewState机制用于在页面回发期间保持控件的状态,这对于实现部分页面更新至关重要。 - **Session**:可能使用Session对象来存储用户的特定信息或会话状态。 - **Web Services /...
在Asp.net 2.0框架中,自定义控件的开发是扩展Web应用程序功能的重要方式之一。本示例将详细介绍如何开发一个自定义图表控件——WebChart,特别是柱状图的实现。通过这个控件,开发者可以方便地在网页上绘制数据,...
.NET 2.0 图表控件是微软在.NET Framework 2.0版本中引入的一种用于创建数据可视化应用的强大工具。这个控件集成了WinForm和WebForm应用,为开发者提供了在桌面应用程序和Web应用程序中创建各种图表的能力。下面将...
1. **控件导向编程**:ASP.NET 2.0引入了大量的服务器控件,如Label、TextBox、Button等,这些控件使得网页开发更加直观,同时提供了丰富的事件处理机制。 2. **ViewState管理**:状态管理是ASP.NET的一大特色,...
ASP.NET 2.0是微软在.NET Framework 2.0框架下发布的一个重大更新,它引入了许多新特性和改进,显著提升了开发效率和用户体验。以下将详细介绍这些关键特性。 1. **网页控件增强**: ASP.NET 2.0中的控件库得到了...
这个"ScrollableListBox"自定义控件是专门为ASP.NET 2.0设计的,它扩展了默认的ListBox控件,添加了水平滚动条,使得用户可以在有限的页面空间内查看和选择更多的项目。这种控件在处理大量数据或者需要在一个固定...
1. **控件事件模型**:ASP.NET 2.0改进了事件处理机制,控件事件可以直接在客户端触发,提高了性能和用户体验。 2. **站点地图(SiteMap)**:这个特性提供了一种结构化的方式来管理网站的导航结构,方便生成面包屑...
4. **ViewState**:ASP.NET 2.0的ViewState机制用于在页面回发时保持控件状态。虽然有助于简化开发,但也会增加页面大小,需要注意优化。 5. **控件绑定**:数据绑定是ASP.NET的重要特性,允许将数据源(如数据库)...
在ASP.NET 2.0中,GridView控件是用于显示数据集合的强大工具,它允许开发者以表格形式展示数据。其中一个关键特性是TemplateField,它提供了高度的灵活性和自定义能力,使得开发人员能够根据需要创建复杂的布局和...
7. 数据可视化:为了让数据更易于理解,可以结合JavaScript库,如D3.js或Highcharts,为ASP.NET 2.0应用程序添加交互式的数据可视化功能。 总的来说,ASP.NET 2.0提供了一个强大的平台来构建网站统计模块,通过`...
在ASP.NET 2.0中,这种功能的实现可能依赖于自定义服务器控件或者第三方库,GoagoChartReport可能就是这样一款控件或库。 图表报告在Web应用中的重要性不言而喻,它可以帮助用户快速把握关键信息,例如销售趋势、...
【.NET控件】Godiagram Web 2.6.2 for .NET 2.0 是一款专为.NET Framework 2.0设计的图形图表组件,它提供了强大的图形绘制和编辑功能,使得开发者能够轻松地在Web应用程序中实现复杂的图表展示和交互。Godiagram...
在这个"ASP.NET2.0编写的游戏发布网站源码"中,我们可以看到一个专门用于发布游戏信息的平台的实现。 1. **ASP.NET 2.0核心特性** - **页面生命周期**:ASP.NET 2.0中的每个Web页面都有一个生命周期,包括初始化、...
4. **自定义事件和异常处理**:探针可能扩展了Asp.Net的事件模型,以便在特定事件发生时进行监控,如页面生命周期事件、异常处理等。 5. **安全性和权限管理**:为了保护探针本身不受恶意访问,源码可能包含了用户...
ASP.NET 2.0 Color Picker控件是一种在Web应用程序中用于选择颜色的用户界面元素,它极大地提升了用户体验,使得用户可以方便地为网站元素选择合适的色彩。本资源提供了一个高效且设计精良的颜色选择器控件,适用于...