[ASP.NET 控件实作 Day10] Media Player 控件
摘要:我们在前面几篇文章中,已经简要的对服务器控件做了基本介绍,接下来的几篇文章中我们要开始实作服务器控件。在网页上常使用 Media Player 来拨放影片,在 ASP.NET 中没有现成的控件来处理 Media Player,只能在 aspx 中加入 Media Player 相关的程序代码;本文将示范如何制作一个 Media Player 控件,让我们在 ASP.NET 中更方便的使用 Medi...
阅读全文
posted @
2008-10-14 07:30
jeff377
阅读(1437)
推荐(1)
[ASP.NET 控件实作 Day9] 控件常用 Attribute 介绍(2)
摘要:接续上篇 Attribute 的介绍,本文将再介绍一些服务器控件常用的 Attribute。 六、ToolboxDataAttribute 类别 作用:指定当自订控件从工具箱拖曳到页面时,为此自订控件产生的预设标记。 当我们新增一个服务器控件,它就会预设在控件类别套用 ToolboxDataAttribute,定义在控件在 aspx 程序代码中的标记。 ")> _ Public Cl...
阅读全文
posted @
2008-10-14 07:23
jeff377
阅读(406)
推荐(0)
[ASP.NET 控件实作 Day8] 控件常用 Attribute 介绍(1)
摘要:Property 与 Attribute 二个术语一般都是翻译成「属性」,例如类别的属性,是使用英文的 Property,而 HTML/XML 的元素属性,使用的英文则是 Attribute。在 .NET 中 Property 与 Attribute 的意义及用法不同,不过微软在线文件也将它翻译为「属性」,这可能让人发生困扰及误解;笔者比较喜欢的方式就是 Property 是属性,Attribut...
阅读全文
posted @
2008-10-14 07:17
jeff377
阅读(500)
推荐(0)
[ASP.NET 控件实作 Day7] 设定工具箱的控件图标
摘要:当我们把自订控件加入到工具箱中时,你会发现所有的控件预设都是同样的图标,虽然控件的图标不变更不会有什么影响,不过我们还是希望为自订控件加上合适的外衣,本文将介绍如何设定工具箱控件图标。 一、加入控件图标文件 首先要准备一个 16 x 16 的位图(bmp),如下所示。 将此图文件加入至「服务器控件项目」中,可以如下图所示,用一个特定的数据夹来储存所有工具箱的图示。 然...
阅读全文
posted @
2008-10-14 07:10
jeff377
阅读(432)
推荐(0)
[ASP.NET 控件实作 Day6] 事件与 PostBack
摘要:一般类别的事件撰写很单纯,不过在 ASP.NET 中与前端使用者互动产生的事件就不是那么简单了;在以往的 ASP 年代是没有事件这回事的,而在 ASP.NET 把网页程序撰写真正的对象导向化,客户端使用者的操作透过 PostBack 来产生相对应的事件。例如前端使用者按钮后会引发伺服端 Button 的 Click 事件,当前端使用者输入文字框完毕后离开后会引发伺服端 TextBox 的 Text...
阅读全文
posted @
2008-10-14 07:07
jeff377
阅读(477)
推荐(0)
[ASP.NET 控件实作 Day5] 属性与 ViewState
摘要:在 ASP.NET 中,控件的属性与 ViewState 有着密不可分的关系,透过 ViewState 才有辨法维护控件的属性值。在本文中将介绍属性与 ViewState 的关系,并说明属性如何存取 ViewState 是比较有效率的方式。 一、属性与 VIewState 当你加入一个「ASP.NET 服务器控件」时,类别中预设会有一个 Text 属性写法的范例如下所示,属性的读写都是直接存取...
阅读全文
posted @
2008-10-14 07:00
jeff377
阅读(451)
推荐(0)
[ASP.NET 控件实作 Day4] 复合控件
摘要:复合控件就是控件可包含其它子控件,复合控件继承至 System.Web.UI.WebControls.CompositeControl,例如 Login 及 Wizard 等控件就是属于复合控件。我们常在网页上常看到一种输入日期的方式是年月日三个下拉列表,本文将利用复合控件来实作这个年月日下拉列表控件,示范如何实作复合控件。 一、CompositeControl 类别的特性 Composi...
阅读全文
posted @
2008-10-14 06:55
jeff377
阅读(346)
推荐(0)
[ASP.NET 控件实作 Day3] 扩展现有服务器控件功能
摘要:相对于由无到有开发控件,继承现有现服务器控件是比较简单且实用的方式;若希望在现有的控件增加某些属性或功能,直接继承该控件下来扩展功能是最快的方式,例如「按下 Button 会弹出询问讯息」、「TextBox 设为 ReadOnly 时,可以取得前端传回的 Text 属性」这类需求,都可以直接继承原控件下来,加上我们需要的功能即可。以下我们就以一个简单的案例来说明如何继承现有服务器下来扩展功能。 ...
阅读全文
posted @
2008-10-14 01:29
jeff377
阅读(560)
推荐(0)
[ASP.NET 控件实作 Day2] 建立第一个服务器控件
摘要:上一篇中已经建立「ASP.NET 服务器控件」项目,接下来我们将学习来撰写第一个服务器控件。 撰写服务器控件大致分为下列三种方式 1.由无到有建立全新的控件,一般会继承至 System.Web.UI.Control 或 System.Web.UI.WebControls.WebControl 类别。2.继承现有控件,扩展原有控件的功能,如继承原有 TextBox 来扩展功能。3.复合式控件,将...
阅读全文
posted @
2008-10-14 00:52
jeff377
阅读(500)
推荐(0)
[ASP.NET 控件实作 Day1] 建立 ASP.NET 服务器控件项目
摘要:在 ASP.NET 开发环境中,我们常使用现成的控件直接拖曳至页面中使用,有没有想过我们也可以开发自用的控件呢?本文将本文以 VS2008 为开发工具,VB.NET 为开发程序语言,来说明如何建立「服务器控件」项目,以及如何测试开发阶段的的服务器控件。 一、建立「ASP.NET 服务器控件」项目 首先执行菜单「档案\新增项目」,在项目类型中选择 Visual Basic -> Web,选取「ASP...
阅读全文
posted @
2008-10-14 00:46
jeff377
阅读(499)
推荐(0)
扩展 Calendar 控件 - DayCommand 事件
摘要:摘要 之前在「Calendar 动态产生子控件的 Event Handler」一文中有提到如何处理 Calendar 在 DayRender 事件动态产生按钮的事件处理,文中最后有提及,若 Calendar 控件有类似 GridView 控件中有 RowCommand 事件,在使用上就可以更简化。所以本文将扩展 Calendar 控件,新增 DayCommand 事件,就动态产生的按钮可以可以引发...
阅读全文
posted @
2008-06-22 20:00
jeff377
阅读(2165)
推荐(0)
让 SqlDataSource 的 SelectCommand 属性值不会消失
摘要:承上一篇「SqlDataSource 执行数据筛选」中,可以知道 SqlDataSource 的 SelectCommand 属性值不会被保留在 ViewState 中,所以我们在 Page 中覆写 LoadViewState 及 SaveViewState 方法来维护 SqlDataSource 的 SelectCommand 属性值。 不过这样每次动态设定 SelectCommand 属性值都...
阅读全文
posted @
2008-06-12 19:54
jeff377
阅读(2430)
推荐(0)
ObjectDataSoruce 系结 BusinessObject 控件
摘要:摘要 在 ASP.NET 中,ObjectDataSoruce 控件是实现三层式的重要关键,我们可以透过 ObjectDataSoruce 控件使用的自订中间层商务对象。不过一般找到的范例都是直接系结中间层商务对象,虽然范例通常写得相当符合对象导向,可是在实际运用上有下列几个问题。 问题一:维护性不佳 例如 Employee 商务对象的 Update 方法,可能有下列二种写法 [写法一] U...
阅读全文
posted @
2008-06-06 14:41
jeff377
阅读(2307)
推荐(0)
GridView 自动编号字段 - TBSerialNumberField
摘要:摘要 在「GridView 加入自动编号字段」一文有提到如何在 GridView 中利用 TemplateField 来加入自动编号;本文将改用另一种方式,利用继承 DataControlField 来撰写自动编号字段,若 GridView 需要自动编号字段时只需加入字段即可。 TBSerialNumberField 字段 继承 DataControlField 命名为 TBSerialNumb...
阅读全文
posted @
2008-05-29 22:02
jeff377
阅读(3099)
推荐(0)
扩展 CheckBoxList 控件 - 系结复选项目(2)
摘要:摘要 承上篇「扩展 CheckBoxList 控件 - 系结复选项目」中以整数值来描述复选项目,本文将以另一种方式,利用 Item 的 Value 或 Text 属性来描述复选项目,每个被勾选的项目,会将其 Value 或 Text 属性值,以逗点分隔的方式被记录下来。例如 选项一.Value = 1 选项二.Value = 2 选项三.Value = 3 选项四.Value = 4 当复选了「选...
阅读全文
posted @
2008-05-27 09:23
jeff377
阅读(1974)
推荐(0)
扩展 CheckBoxList 控件 - 系结复选项目
摘要:摘要 CheckBoxList 控件是使用在项目复选的状态,我们可以使用一个整数值来描述复选项目,项目值以 2 的 N 次方来描述。例如 选项一 = 2^0 = 1 选项二 = 2^1 = 2 选项三 = 2^2 = 4 选项四 = 2^3 = 8 ... 依此类推 当复选了「选项一」及「选项三」,则复选值为 1+4=5。当复选了「选项二」及「选项四」,则复选值为 2+8=10。若要使用上述的方式...
阅读全文
posted @
2008-05-26 08:10
jeff377
阅读(2036)
推荐(0)
扩展 GridView 控件 - 无数据时显示标题列
摘要:摘要 当 GridView 系结的 DataSource 资料笔数为 0 时,会依 EmptyDataTemplate 及 EmptyDataText 的设定来显示无数据的状态。若我们希望 GridView 在无数据时,可以显示字段标题,有一种作法是在 EmptyDataTemplate 中手动在设定一个标题列,不过这种作法很麻烦。GridView 控件可不可以直接透过属性设定就可以在无数据显示字...
阅读全文
posted @
2008-05-22 20:13
jeff377
阅读(8164)
推荐(1)
扩展 CheckBoxField 类别 - 支持非布尔值的双向系结
摘要:摘要 在「让 CheckBoxField 系结非布尔值(0 或 1)字段」一文中有介绍了如何修改 CheckFieldBox 去系结 0 或 1 的非布尔值,其作法是将非布尔直接使用 CBool 函式将字段值强制转型为布尔值。 不过有时系结的字段值并无法直接使用 CBool 转型为布尔值,例如 "T/F"、"是/否" 之类的资料,若希望使用 CheckBoxField 来显示就比较麻烦,一般的作法...
阅读全文
posted @
2008-05-21 19:54
jeff377
阅读(2711)
推荐(0)
扩展 GridView 控件 - 支持 Excel 及 Word 汇出
摘要:摘要 GridView 汇出 Excel 及 Word 文件是蛮常使用的需求,此篇文章将扩展 GridView 控件提供汇出 Excel 及 Word 文件的方法。一般在 GridView 汇出的常见下列问题也会在此一并被解决。 GridView 汇出的常见问题: 问题1. GridView 使用 RenderControl 方法产生的错误。 问题2. GridView 分页的问题。 问题3. 汇...
阅读全文
posted @
2008-05-18 00:12
jeff377
阅读(3493)
推荐(0)
扩展 TextBox 控件 - 依 FormViewMode 来自行设定状态
摘要:摘要 延续前面「GridView+FormView 示范数据新增/修改/删除(进阶篇:服务器控件)」的文章,文章后记有提及若要达到零程序代码要求,上篇已实作「扩展 CommandField 类别 - Header 加入新增钮」解决其中一个问题。另一个问题就要扩展 TextBox 控件,让 TextBox 可以自行判断 FormView 的 CurrentMode 来决定 TextBox 的启用状态...
阅读全文
posted @
2008-05-14 22:58
jeff377
阅读(1856)
推荐(0)