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 ,如需转载请自行联系原作者
相关文章
|
4天前
|
存储 Shell Linux
快速上手基于 BaGet 的脚本自动化构建 .net 应用打包
本文介绍了如何使用脚本自动化构建 `.net` 应用的 `nuget` 包并推送到指定服务仓库。首先概述了 `BaGet`——一个开源、轻量级且高性能的 `NuGet` 服务器,支持多种存储后端及配置选项。接着详细描述了 `BaGet` 的安装、配置及使用方法,并提供了 `PowerShell` 和 `Bash` 脚本实例,用于自动化推送 `.nupkg` 文件。最后总结了 `BaGet` 的优势及其在实际部署中的便捷性。
34 10
|
8天前
|
开发框架 JavaScript 前端开发
|
13天前
|
Linux iOS开发 开发者
跨平台开发不再难:.NET Core如何让你的应用在Windows、Linux、macOS上自如游走?
【8月更文挑战第28天】本文提供了一份详尽的.NET跨平台开发指南,涵盖.NET Core简介、环境配置、项目结构、代码编写、依赖管理、构建与测试、部署及容器化等多个方面,帮助开发者掌握关键技术与最佳实践,充分利用.NET Core实现高效、便捷的跨平台应用开发与部署。
48 3
|
13天前
|
缓存 Java API
【揭秘】.NET高手不愿透露的秘密:如何让应用瞬间提速?
【8月更文挑战第28天】本文通过对比的方式,介绍了针对 .NET 应用性能瓶颈的优化方法。以一个存在响应延迟和并发处理不足的 Web API 项目为例,从性能分析入手,探讨了使用结构体减少内存分配、异步编程提高吞吐量、EF Core 惰性加载减少数据库访问以及垃圾回收机制优化等多个方面,帮助开发者全面提升 .NET 应用的性能和稳定性。通过具体示例,展示了如何在不同场景下选择最佳实践,以实现更高效的应用体验。
26 3
|
13天前
|
前端开发 JavaScript 开发工具
跨域联姻:React.NET——.NET应用与React的完美融合,解锁前后端高效协作新姿势。
【8月更文挑战第28天】探索React.NET,这是将热门前端框架React与强大的.NET后端无缝集成的创新方案。React以其组件化和虚拟DOM技术著称,能构建高性能、可维护的用户界面;.NET则擅长企业级应用开发。React.NET作为桥梁,使.NET应用轻松采用React构建前端,并优化开发流程与性能。通过直接托管React组件,.NET应用简化了部署流程,同时支持服务器端渲染(SSR),提升首屏加载速度与SEO优化。
23 1
|
13天前
|
存储 缓存 安全
.NET 在金融行业的应用:高并发交易系统的构建与优化之路
【8月更文挑战第28天】在金融行业,交易系统需具备高并发处理、低延迟及高稳定性和安全性。利用.NET构建此类系统时,可采用异步编程提升并发能力,优化数据库访问以降低延迟,使用缓存减少数据库访问频率,借助分布式事务确保数据一致性,并加强安全性措施。通过综合优化,满足金融行业的严苛要求。
22 1
|
13天前
|
大数据 开发工具 开发者
从零到英雄:.NET核心技术带你踏上编程之旅,构建首个应用,开启你的数字世界探险!
【8月更文挑战第28天】本文带领读者从零开始,使用强大的.NET平台搭建首个控制台应用。无论你是新手还是希望扩展技能的开发者,都能通过本文逐步掌握.NET的核心技术。从环境搭建到创建项目,再到编写和运行代码,详细步骤助你轻松上手。通过计算两数之和的小项目,你不仅能快速入门,还能为未来开发更复杂的应用奠定基础。希望本文为你的.NET学习之旅开启新篇章!
25 1
|
9天前
|
数据库 C# 开发者
WPF开发者必读:揭秘ADO.NET与Entity Framework数据库交互秘籍,轻松实现企业级应用!
【8月更文挑战第31天】在现代软件开发中,WPF 与数据库的交互对于构建企业级应用至关重要。本文介绍了如何利用 ADO.NET 和 Entity Framework 在 WPF 应用中访问和操作数据库。ADO.NET 是 .NET Framework 中用于访问各类数据库(如 SQL Server、MySQL 等)的类库;Entity Framework 则是一种 ORM 框架,支持面向对象的数据操作。文章通过示例展示了如何在 WPF 应用中集成这两种技术,提高开发效率。
23 0
|
9天前
|
开发者 API Windows
从怀旧到革新:看WinForms如何在保持向后兼容性的前提下,借助.NET新平台的力量实现自我进化与应用现代化,让经典桌面应用焕发第二春——我们的WinForms应用转型之路深度剖析
【8月更文挑战第31天】在Windows桌面应用开发中,Windows Forms(WinForms)依然是许多开发者的首选。尽管.NET Framework已演进至.NET 5 及更高版本,WinForms 仍作为核心组件保留,支持现有代码库的同时引入新特性。开发者可将项目迁移至.NET Core,享受性能提升和跨平台能力。迁移时需注意API变更,确保应用平稳过渡。通过自定义样式或第三方控件库,还可增强视觉效果。结合.NET新功能,WinForms 应用不仅能延续既有投资,还能焕发新生。 示例代码展示了如何在.NET Core中创建包含按钮和标签的基本窗口,实现简单的用户交互。
33 0
|
9天前
|
Java Spring 自然语言处理
Spring 框架里竟藏着神秘魔法?国际化与本地化的奇妙之旅等你来揭开谜底!
【8月更文挑战第31天】在软件开发中,国际化(I18N)与本地化(L10N)对于满足不同地区用户需求至关重要。Spring框架提供了强大支持,利用资源文件和`MessageSource`实现多语言文本管理。通过配置日期格式和货币符号,进一步完善本地化功能。合理应用这些特性,可显著提升应用的多地区适应性和用户体验。
22 0

热门文章

最新文章

下一篇
DDNS