[ASP.NET 控件实作 Day29] 解决 DropDownList 成员 Value 值相同产生的问题
摘要:DropDownList 控制页的成员清单中,若有 ListItem 的 Value 值是相同的情形时,会造成 DropDownList 无法取得正确的 SelectedIndex 属性值、且无法正确引发 SelectedIndexChanged 事件的问题;今天刚好在网络上看到有人在询问此问题,所以本文将说明这个问题的源由,并修改 DropDownList 控件来解决这个问题。
阅读全文
posted @
2008-10-30 21:40
jeff377
阅读(3619)
推荐(0) 编辑
[ASP.NET 控件实作 Day28] 图形验证码控件
摘要:在网页上常把图形验证码应用在登入或贴文的页面中,因为图形验证码具有机器不易识别的特性,可以防止机器人程序恶意的存取网页。在本文中将实作一个图形验证码的服务器控件,透过简单的属性设定就可以轻易地在网页上套用图形验证码。
阅读全文
posted @
2008-10-29 21:09
jeff377
阅读(4921)
推荐(0) 编辑
[ASP.NET 控件实作 Day27] 控件依 FormView CurrentMode 自行设定状态
摘要:在 GridView+FormView 示范数据 新增/修改/删除(进阶篇:服务器控件) 一文中,示范了扩展 GridView 及 FormView 控件,让 GridView 可以透过属性与 FormView 做关连来处理数据的「新增/修改/删除」的动作。因为在该案例中,只使用 FormView 的 EditTemplate 同时处理「新增」及「修改」的动作,所以还需要自行撰写部分程序代码去判断控件在新增或修改的启用状态,例如编号字段在新增时为启用,修改时就不启用。在该文最后也提及其实有辨法让这个案例达到零程序代码的目标,那就是让控件 (如 TextBox) 自行判断所在的 FormView 的 CurrentMode,自行决定本身是否要「启用/不启用」、「显示/隐藏」等状态。本文以 TextBox 为例,说明如何修改 TextBox 让它可以达到上述的需求。
阅读全文
posted @
2008-10-28 21:29
jeff377
阅读(2128)
推荐(0) 编辑
[ASP.NET 控件实作 Day26] 让你的 GridView 与众不同
摘要:在网络上可以找到相当多扩展 GridView 控件功能的文章,在笔者的部落格中也有多篇提及扩展 GridView、DataControlField、BoundFIeld 功能的相关文章,在本文将这些关于扩展 GridView 控件功能及字段类别的相关文章做一整理简介,若需要扩展 GridView 相关功能时可以做为参考。
阅读全文
posted @
2008-10-28 00:48
jeff377
阅读(2530)
推荐(1) 编辑
[ASP.NET 控件实作 Day25] 自订 GridView 字段 - 日期字段
摘要:前二篇文章介绍了自订 GridView 使用的下拉列表字段 (TBDropDownField),对如何继承 BoundField 类别下来改写自订字段应该有进一步的了解。在 GridView 中输入日期也常蛮常见的需求,在本文将再实作一个 GridView 使用的日期字段,在字段储存格使用 TBDateEdit 控件来编辑数据。
阅读全文
posted @
2008-10-26 18:38
jeff377
阅读(1988)
推荐(0) 编辑
[ASP.NET 控件实作 Day24] TBDropDownField 的 Items 属性的数据系结
摘要:上篇中我们实作了 GridView 的 TBDropDownField 字段类别,不过眼尖的读者不知有没有发觉我们并处理 Items 属性取得成员清单的动作,而是直接设定储存格内含的 TBDropDownList 控件相关属性 (DataSourceID、DataTextField、DataValueField 属性) 后,就由 TDropDownList 控件自行处理 Items 属性的数据系结。当 GridView 的资料列是编辑状态时,下拉列表会显示出 Items 的文字内容;可是浏览状态的数据列,却是显示字段原始值,无法呈现 Items 的文字内容。本文将说明如何自行处理 TBDropDownField 的 Items 属性的数据系结动作,并使只读状态的数据列也可以呈现 Items 的文字内容。
阅读全文
posted @
2008-10-25 18:38
jeff377
阅读(1595)
推荐(0) 编辑
[ASP.NET 控件实作 Day23] 自订 GridVie 字段类别 - 实作 TBDropDownField 字段类别
摘要:GridView 是 ASP.NET 中一个相当常用的控件,在 GridView 可加入 BoundField、CheckBoxField、CommandField、TemplateField ... 等不同型别的字段,可是偏偏没有提供在 GridView 中可呈现 DropDownList 的字段型别;遇到这类需求时,一般的作法都是使用 TemplateField 来处理。虽然 TemplateField 具有相当好的设计弹性。可是在当 GridView 需要动态产生字段的需求时,TemplateField 就相当麻烦,要写一堆程序代码自行去处理数据系结的动作。相互比较起来,BoundField、CheckBoxField ...等这类事先定义类型的字段,在 GridView 要动态产生这些字段就相当方便。如果我们可以把一些常用的 GridView 的字段,都做成类似 BoundField 一样,只要设定字段的属性就好,这样使用上就会方便许多,所以在本文将以实作 DropDownList 字段为例,让大家了解如何去自订 GridView 的字段类别。
阅读全文
posted @
2008-10-24 01:01
jeff377
阅读(2186)
推荐(0) 编辑
[ASP.NET 控件实作 Day22] 让 DropDownList 不再因项目清单不存在而造成错误
摘要:DropDownList 控件常常会因为项目清单中不存在系结的字段,而发生以下的错误讯息。因为系结数据的不完整或异常就会造成这样的异常错误,在设计上实在是相当困扰,而且最麻烦的是这个错误在页面的程序代码也无法使用 Try ... Catch 方式来略过错误。其实最简单的方式就去直接去修改 DropDownList 控件,让 DropDownList 控件系结数据时,就算字段值不存在清单项目中也不要释出错误,本文就要说明如何继承 DorpDownList 下来修改,来有效解决这个问题。
阅读全文
posted @
2008-10-23 07:20
jeff377
阅读(2142)
推荐(0) 编辑
[ASP.NET 控件实作 Day21] 实作控件智能卷标
摘要:控件通常会把常用属性或功能显示在智能卷标中,提供使用者更简便的快速设定,例如下图为 GridView 的智能。若要制作控件的智能卷标,需实作控件的 ActionList 加入智能卷标中要显示的项目,在本文将以 TDateEdit 控件为例,进一步说明控件的智能卷标的实作方式。
阅读全文
posted @
2008-10-23 00:38
jeff377
阅读(1761)
推荐(0) 编辑
[ASP.NET 控件实作 Day20] 侦错设计阶段的程序代码
摘要:上篇我们介绍了自订 Designer 来输出控件设计阶段的 HTML 码,可是若你去对针 Designer 的程序代码下断点,你会发觉根本无法侦错。因为程序在执行阶段时期,根本不会执行 Designer 相关类别,所以你在 Designer 类别中下的断点完全无效;当然不可能这样写程序代码而用感觉去侦错,本文将告诉你如何去侦错设计阶段的程序代码。
阅读全文
posted @
2008-10-21 06:38
jeff377
阅读(629)
推荐(0) 编辑
[ASP.NET 控件实作 Day19] 控件设计阶段的外观
摘要:有一些控件在执行阶段是不会呈现,也就是说控件本身在执行阶段不会 Render 出 HTML 码,例如 SqlDataSoruce、ScriptManager 这类控件;那它们在设计阶段的页面是如何呈现出来呢?本文将针对控件设计阶段的外观做进一步的说明。
阅读全文
posted @
2008-10-20 02:40
jeff377
阅读(478)
推荐(0) 编辑
[ASP.NET 控件实作 Day18] 修改集合属性编辑器
摘要:上篇我们实作了「集合属性包含不同型别的成员」,不过若有去使用属性窗口编辑 TBToolbar 的 Items 属性,你会发觉这个集合属性编辑器无法加入我们定义不同型别的成员,只能加入最原始的集合成员。是不是只能在 aspx 程序代码中手动去输入呢?当然不需要这样人工操作,只要改掉集合属性编辑器就可以达到我们的需求,本文将介绍修改集合属性编辑器的相关作法。
阅读全文
posted @
2008-10-19 00:26
jeff377
阅读(2661)
推荐(0) 编辑
[ASP.NET 控件实作 Day17] 集合属性包含不同型别的成员
摘要:我们知道在 GridView 的 Columns 集合属性中,可以包含不同型别的字段,如 BoundFIeld、CheckBoxField、HyperLinkField ...等不同型别的字段。如果我们希望工具列中不只包含按钮,可以包含其它不同类型的子控件,那该怎么做呢?本文就以上篇中的 TBToolbar 控件为案例,让 Items 集合属性可以加入 Button、TextBox、Label ...等不同的子控件。
阅读全文
posted @
2008-10-18 13:11
jeff377
阅读(1908)
推荐(0) 编辑
[ASP.NET 控件实作 Day16] 继承 WebControl 实作 Toolbar 控件
摘要:前面我们讨论过「继承 CompositeControl 实作 Toolbar 控件」,本文将继承 WebControl 来实作同样功能的 Toolbar 控件,用不同的方式来实作同一个控件,进而比较二者之间的差异。
阅读全文
posted @
2008-10-17 00:22
jeff377
阅读(767)
推荐(0) 编辑
[ASP.NET 控件实作 Day15] 复合控件隐藏的问题
摘要:上一篇我们使用复合控件(继承 CompositeControl)的方式来实作 TBToolbar 控件,本文将针对复合控件做一些测试,说明在使用复合控件要注意的一些问题。
阅读全文
posted @
2008-10-16 02:00
jeff377
阅读(1845)
推荐(0) 编辑
[ASP.NET 控件实作 Day14] 继承 CompositeControl 实作 Toolbar 控件
摘要:之前我们简单介绍过继承 CompositeControl 来实作复合控件,在本文我们将以 Toolbar 控件为例,以复合控件的作法(继承 CompositeControl )来实作 Toolbar 控件,此工具列控件包含 Items 属性来描述工具列项目集合,依 Items 属性的设定来建立工具列按钮,另外包含 Click 事件可以得知使用按了那个按钮。 程序代码下载:ASP.NET Ser...
阅读全文
posted @
2008-10-15 00:22
jeff377
阅读(631)
推荐(0) 编辑
[ASP.NET 控件实作 Day13] Flash 控件
摘要:Flash 也是网页常用的 ActiveX 插件,在本文中将继承 TBActiveX 下来撰写 TBFlash 控件,用来输出网页套用 Flash 的相关 HTML 码。 程序代码下载:ASP.NET Server Control - Day13.rar 一、网页 Flash 的原始 HTML 码 我们先观查在网页中套用 Flash 插件的原始 HTML 码,以点部落首页抬头的 Fla...
阅读全文
posted @
2008-10-14 13:29
jeff377
阅读(803)
推荐(0) 编辑
[ASP.NET 控件实作 Day12] 继承 TBActiveX 重新改写 TBMediaPlayer 控件
摘要:上篇介绍的 TBActiveX 控件,它可以支持网页 Media Player 的设定,这跟前面提及的 TBMediaPlayer 功能相同。TBActiveX 具有网页设定 ActiveX 通用属性,所以 TBMediaPlayer 基本上是可以由 TBActiveX 继承下来,再加入 Media Player 特有的属性即可。本文将原来的 TBMediaPlayer 控件,继承的父类别由 We...
阅读全文
posted @
2008-10-14 13:22
jeff377
阅读(362)
推荐(0) 编辑
[ASP.NET 控件实作 Day11] ActiveX 服务器控件
摘要:Media Player 与 Flash 之类在网页上执行的外挂控件,都是属于 ActiveX 控件,它们套用在 HTML 码中的方式差不多,除了要指定 ClassID 以外,ActiveX 使用的参数(相当于 ActiveX 控件的属性)以 Param Tag 来表示。本文标题命名为「ActiveX 服务器控件」就是避免误解为 ActiveX 控件,而是在 ASP.NET 中输出 ActiveX...
阅读全文
posted @
2008-10-14 12:47
jeff377
阅读(1575)
推荐(0) 编辑
[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
阅读(1431)
推荐(1) 编辑
[ASP.NET 控件实作 Day9] 控件常用 Attribute 介绍(2)
摘要:接续上篇 Attribute 的介绍,本文将再介绍一些服务器控件常用的 Attribute。 六、ToolboxDataAttribute 类别 作用:指定当自订控件从工具箱拖曳到页面时,为此自订控件产生的预设标记。 当我们新增一个服务器控件,它就会预设在控件类别套用 ToolboxDataAttribute,定义在控件在 aspx 程序代码中的标记。 ")> _ Public Cl...
阅读全文
posted @
2008-10-14 07:23
jeff377
阅读(400)
推荐(0) 编辑
[ASP.NET 控件实作 Day8] 控件常用 Attribute 介绍(1)
摘要:Property 与 Attribute 二个术语一般都是翻译成「属性」,例如类别的属性,是使用英文的 Property,而 HTML/XML 的元素属性,使用的英文则是 Attribute。在 .NET 中 Property 与 Attribute 的意义及用法不同,不过微软在线文件也将它翻译为「属性」,这可能让人发生困扰及误解;笔者比较喜欢的方式就是 Property 是属性,Attribut...
阅读全文
posted @
2008-10-14 07:17
jeff377
阅读(488)
推荐(0) 编辑
[ASP.NET 控件实作 Day7] 设定工具箱的控件图标
摘要:当我们把自订控件加入到工具箱中时,你会发现所有的控件预设都是同样的图标,虽然控件的图标不变更不会有什么影响,不过我们还是希望为自订控件加上合适的外衣,本文将介绍如何设定工具箱控件图标。 一、加入控件图标文件 首先要准备一个 16 x 16 的位图(bmp),如下所示。 将此图文件加入至「服务器控件项目」中,可以如下图所示,用一个特定的数据夹来储存所有工具箱的图示。 然...
阅读全文
posted @
2008-10-14 07:10
jeff377
阅读(424)
推荐(0) 编辑
[ASP.NET 控件实作 Day6] 事件与 PostBack
摘要:一般类别的事件撰写很单纯,不过在 ASP.NET 中与前端使用者互动产生的事件就不是那么简单了;在以往的 ASP 年代是没有事件这回事的,而在 ASP.NET 把网页程序撰写真正的对象导向化,客户端使用者的操作透过 PostBack 来产生相对应的事件。例如前端使用者按钮后会引发伺服端 Button 的 Click 事件,当前端使用者输入文字框完毕后离开后会引发伺服端 TextBox 的 Text...
阅读全文
posted @
2008-10-14 07:07
jeff377
阅读(461)
推荐(0) 编辑
[ASP.NET 控件实作 Day5] 属性与 ViewState
摘要:在 ASP.NET 中,控件的属性与 ViewState 有着密不可分的关系,透过 ViewState 才有辨法维护控件的属性值。在本文中将介绍属性与 ViewState 的关系,并说明属性如何存取 ViewState 是比较有效率的方式。 一、属性与 VIewState 当你加入一个「ASP.NET 服务器控件」时,类别中预设会有一个 Text 属性写法的范例如下所示,属性的读写都是直接存取...
阅读全文
posted @
2008-10-14 07:00
jeff377
阅读(448)
推荐(0) 编辑
[ASP.NET 控件实作 Day3] 扩展现有服务器控件功能
摘要:相对于由无到有开发控件,继承现有现服务器控件是比较简单且实用的方式;若希望在现有的控件增加某些属性或功能,直接继承该控件下来扩展功能是最快的方式,例如「按下 Button 会弹出询问讯息」、「TextBox 设为 ReadOnly 时,可以取得前端传回的 Text 属性」这类需求,都可以直接继承原控件下来,加上我们需要的功能即可。以下我们就以一个简单的案例来说明如何继承现有服务器下来扩展功能。 ...
阅读全文
posted @
2008-10-14 01:29
jeff377
阅读(551)
推荐(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
阅读(487)
推荐(0) 编辑
[ASP.NET 控件实作 Day1] 建立 ASP.NET 服务器控件项目
摘要:在 ASP.NET 开发环境中,我们常使用现成的控件直接拖曳至页面中使用,有没有想过我们也可以开发自用的控件呢?本文将本文以 VS2008 为开发工具,VB.NET 为开发程序语言,来说明如何建立「服务器控件」项目,以及如何测试开发阶段的的服务器控件。 一、建立「ASP.NET 服务器控件」项目 首先执行菜单「档案\新增项目」,在项目类型中选择 Visual Basic -> Web,选取「ASP...
阅读全文
posted @
2008-10-14 00:46
jeff377
阅读(491)
推荐(0) 编辑
[API 函数] CopyFileEx - 复制档案
摘要:一般要处理复制档案使用 File.Copy 方法就可以达到需求,可是若在复制档案过程中要显示进度及取消复制,就需要使用 API 函数 CopyFileEx 来处理。下列范例程序使用 CoypFileEx 来进行复制档案,复制过程序会显示进度,按下「取消复制」钮可中断复制动作。 Code highlighting produced by Actipro CodeHighlighter (freewa...
阅读全文
posted @
2008-10-09 23:09
jeff377
阅读(858)
推荐(0) 编辑
[轉貼] Windows API 與 .NET 資料類型對應關係
摘要:在VB.NET或C# 中做很多應用需要使用Win32 API,但發現原型函數的一些資料類型看起來非常費勁,甚至在 .NET中“沒有”這種資料類型,查閱了一下資料,資料類型對應關係整理如下,希望對大家有用: BOOL=System.Int32 BOOLEAN=System.Int32 BYTE=System.UInt16 CHAR=System.Int16 COLORREF=System....
阅读全文
posted @
2008-10-09 22:11
jeff377
阅读(424)
推荐(0) 编辑