ASP.NET 2.0中的友好CSS控件适配器的应用 - 用ul、li呈现CheckBoxList和RadioButtonList

简介:
[源码下载]


ASP.NET 2.0中的友好CSS控件适配器的应用 - 用ul、li呈现CheckBoxList和RadioButtonList


作者: webabcd


介绍
控件适配器(Control Adapters)可以让你改变通过ASP.NET控件生成的HTML标记。 http://www.asp.net/cssadapters/ 有详细的介绍和示例,但是没有用ul、li呈现CheckBoxList和RadioButtonList的例子(可能是因为太简单了,不屑去写),那就让我们来实现它吧,顺便熟悉一下如何开发控件适配器。


示例
App_Code/ControlAdaptersSample.cs
using System; 
using System.Data; 
using System.Configuration; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls.Adapters; 

/**//// <summary> 
/// ControlAdaptersSample 的摘要说明 
/// </summary> 
public  class ControlAdaptersSample : WebControlAdapter 

override void Render() override void Render(HtmlTextWriter writer) 
        { 
                ListControl listControl = this.Control  as ListControl; 
                IRepeatInfoUser repeaterInfo = this.Control  as IRepeatInfoUser; 

                 if (listControl ==  null || repeaterInfo ==  null
                { 
                        base.Render(writer); 

                        return; 
                } 

                 if (listControl.CssClass.Length > 0) 
                { 
                        writer.AddAttribute( "class", listControl.CssClass); 
                } 

                writer.RenderBeginTag(HtmlTextWriterTag.Ul); 

                 for (int i = 0; i < listControl.Items.Count; i++) 
                { 
                        writer.RenderBeginTag(HtmlTextWriterTag.Li); 
                        repeaterInfo.RenderItem(ListItemType.Item, i,  new RepeatInfo(), writer); 
                        writer.RenderEndTag(); 
                } 

                writer.RenderEndTag(); 
        } 
}

App_Browsers/ControlAdaptersSample.browser
<browsers> 
    <browser refID= "Default"
        <controlAdapters> 
            <adapter controlType= "System.Web.UI.WebControls.CheckBoxList" 
                 adapterType= "ControlAdaptersSample" /> 
            <adapter controlType= "System.Web.UI.WebControls.RadioButtonList" 
                 adapterType= "ControlAdaptersSample" /> 
        </controlAdapters> 
    </browser> 
</browsers>

都有什么browsers可用呢?可以在如下的路径中找到
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers

ControlAdaptersSample.aspx 
<%@ Page Language= "C#" MasterPageFile= "~/Site.master" AutoEventWireup= "true" CodeFile= "ControlAdaptersSample.aspx.cs" 
         Inherits= "Control_ControlAdaptersSample" Title= "友好CSS控件适配器的简单示例" %> 

<asp:Content ID= "Content1" ContentPlaceHolderID= "cph" runat= "Server"
        <style> 
                .ListControlCSS {}{ list-style:none; margin:0px; width: 400px; background-color: #CCC; } 
                .ListControlCSS INPUT {}{ background-color: #CCC; } 
                .ListControlCSS li{}{ float: left; width:100px; line-height:30px;} 
        </style> 
        <asp:CheckBoxList ID= "cbl" runat= "server" CssClass= "ListControlCSS"
                <asp:ListItem Text= "One" /> 
                <asp:ListItem Text= "Two" /> 
                <asp:ListItem Text= "Three" /> 
                <asp:ListItem Text= "Four" /> 
                <asp:ListItem Text= "Five" /> 
                <asp:ListItem Text= "Six" /> 
                <asp:ListItem Text= "Seven" /> 
                <asp:ListItem Text= "Eight" /> 
                <asp:ListItem Text= "Nine" /> 
                <asp:ListItem Text= "Ten" /> 
        </asp:CheckBoxList> 
        <div> 
                 </div> 
        <asp:RadioButtonList ID= "rbl" runat= "server" CssClass= "ListControlCSS"
                <asp:ListItem Text= "One" /> 
                <asp:ListItem Text= "Two" /> 
                <asp:ListItem Text= "Three" /> 
                <asp:ListItem Text= "Four" /> 
                <asp:ListItem Text= "Five" /> 
                <asp:ListItem Text= "Six" /> 
                <asp:ListItem Text= "Seven" /> 
                <asp:ListItem Text= "Eight" /> 
                <asp:ListItem Text= "Nine" /> 
                <asp:ListItem Text= "Ten" /> 
        </asp:RadioButtonList> 
        <p> 
                官网:<a href= "http://www.asp.net/cssadapters/" target= "_blank">http://www.asp.net/cssadapters/</a> 
        </p> 
</asp:Content>
 
运行结果
CheckBoxList和RadioButtonList将以ul、li呈现 


OK
[源码下载]


     本文转自webabcd 51CTO博客,原文链接:http://blog.51cto.com/webabcd/341975 ,如需转载请自行联系原作者
相关文章
|
7月前
|
前端开发
css解决li边框重合问题
css解决li边框重合问题
|
4月前
|
开发框架 JavaScript 前端开发
震撼!破解 ASP.NET 服务器控件 Button 执行顺序之谜,颠覆你的开发认知!
【8月更文挑战第16天】在ASP.NET开发中,通过Button控件实现先执行JavaScript再触后台处理的需求十分常见。例如,在用户点击按钮前需前端验证或提示,确保操作无误后再传递数据至后台深度处理。此过程可通过设置Button的`OnClientClick`属性调用自定义JavaScript函数完成验证;若验证通过,则继续触发后台事件。此外,结合jQuery也能达到相同效果,利用`__doPostBack`手动触发服务器端事件。这种方式增强了应用的交互性和用户体验。
51 8
|
2月前
|
开发者 Windows
.NET 开源扁平化、美观的 C/S 控件库
【10月更文挑战第23天】介绍了三款适用于 .NET 平台的开源扁平化、美观的 C/S 控件库:MaterialSkin 采用 Google Material Design 风格,适合现代感界面;Krypton Toolkit 提供丰富控件,界面易于定制;Fluent Ribbon Control Suite 模仿 Office 界面,适合复杂功能应用。每款控件库均附有示例代码及 GitHub 链接。
winform .net6 和 framework 的图表控件,为啥项目中不存在chart控件,该如何解决?
本文讨论了在基于.NET 6和.NET Framework的WinForms项目中添加图表控件的不同方法。由于.NET 6的WinForms项目默认不包含Chart控件,可以通过NuGet包管理器安装如ScottPlot等图表插件。而对于基于.NET Framework的WinForms项目,Chart控件是默认存在的,也可以通过NuGet安装额外的图表插件,例如LiveCharts。文中提供了通过NuGet添加图表控件的步骤和截图说明。
winform .net6 和 framework 的图表控件,为啥项目中不存在chart控件,该如何解决?
|
2月前
|
C# Android开发 iOS开发
一组.NET MAUI绘制的开源控件 - AlohaKit
一组.NET MAUI绘制的开源控件 - AlohaKit
|
3月前
|
开发框架 JavaScript 前端开发
|
7月前
|
前端开发
css教程-li的list-style-type属性
通过设置 `list-style-type`属性,你可以根据需求为列表项设置不同的标志样式,从而改变列表的外观。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
75 4
|
7月前
|
SQL 开发框架 JavaScript
分享33个ASP.NET电子商务源码和40个ASP.NET控件组件源码,总有一款适合您
分享33个ASP.NET电子商务源码和40个ASP.NET控件组件源码,总有一款适合您
95 0
|
7月前
|
SQL 开发框架 前端开发
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
85 0