DetailsView控件
如其名所示,就是为了显示记录的详细信息,在同一时刻只显示一条记录。作为数据绑定控件,DetailsView也能绑定到SqlDataSource数据源,绑定后代码:
<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False"
DataKeyNames="id" DataSourceID="SqlDataSource1">
<Fields>
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False"
ReadOnly="True" SortExpression="id" />
<asp:BoundField DataField="name" HeaderText="name" SortExpression="name" />
</Fields>
</asp:DetailsView>
可以看出与GridView不同的是<Fields>,在GridView里面是<Columns>。默认字段类型也是
BoundField类型,当然也可以将BoundField类型转换为TemplateField类型,也可以直接添加
TemplateField类型。然后通过编辑模板列来编辑,这些都是和GridView相同的。除了常见的给
DetailsView启用增删改以外,也可以给其启用分页功能,这将时其可以在各个记录间来回切换,但该
方法效率很低,将导致所有记录都下载到客户端,而换页时又将导致所有记录PostBack,可以使用缓
存特性来缓存DetailsView中的数据。另外DetailsView(从)也可以联合GridView(主)来实现主从表
的效果:这在讲GridView时讲解过,主要是一张表(从)的某个字段在另一张表(主)里是
DataKeyNames(呵呵,这是在GridView里的说法,反映到表里就是主键),这样一般来说选中GridView(
主)里的一行(当然要开启选择功能),就有一些DetailsView(从)的记录符合条件。所以设置时要在
从的配置数据源里的where子句来过滤(看GridView时的讲解),而怎么才能获得选择的主的主键值呢
,就是GridView.SelectedValue,这个值就是选择的那行的主键(DataKeyNames)值。
要隐藏任何一个字段,只要在编辑列里将Visible设置为false就可以了。要合并两个字段,先在编辑
列里将这俩字段删除,再添加一个模板列,再在编辑模板列里设置它的自定义绑定,用Eval或Bind绑
定这俩字段,这里就是绑定字符串可以写自己想要显示的字符串加绑定。别忘了对于任何数据绑定
控件最好指定其DataKeyNames。
在DetailsView显示的记录里增加图片的显示,这里在数据库里存储的是图片的路径,而不是用存储
图片的二进制流的那种方式。1.在添加字段里选ImageField类型的字段,这时会让你选绑定到的字
段(就你的图片字段),及Url格式字符串(它给的例子是images/img{0}.jpg),等你绑定后你后看到其
代码是这样写的DataImageUrlField="picsrc" DataImageUrlFormatString="images/img{0}.jpg"
意思是绑定字段是picsrc,图片显示路径是images/img{picsrc}.jpg,这要看你的数据库里是怎么样
记录的picsrc,我在这里只记录的是图片名如:1.jpg,如果你照着例子写Url格式字符串,最终图片显
示格式将是images/img{1.jpg}.jpg,这显然是不对的,所以要写成images/{0}。但要知道这时你只
能显示图片,不能进行更改添加什么的。所以你要在编辑字段里将该ImageField转换为
TemplateField,则其ItemTemplate会是
<ItemTemplate>
<asp:Image ID="Image1" runat="server"
ImageUrl='<%# Eval("picsrc", "images/{0}") %>' />
</ItemTemplate>
而通过观察其EditItemTemplate和InsertItemTemplate我们可以看出其默认的修改控件也是
TexBox,这显然不是我们想要的,于是我们可以把其改成UploadFile控件来上传我们的图片,但
UploadFile控件只有两个布尔值的属性能与数据库字段双向绑定,我们怎么来更新我们所选择的图
片呢,可以加一个label控件来将UploadFile里的图片名记录到label.text里来,然后更新时修改
label的text属性所绑定的字段(就是图片名字段,这里不需要完整的虚拟路径,从images/{0}中可以
看出)。而像UploadFile的文件上传要在DetailsView1_ItemUpdating(更新数据之前)事件里完成,
至于获得UploadFile文件的名称,很遗憾,我试过好多方法,在DetailsView1_ItemUpdating里都无法
让label获得到UploadFile文件的名称,这就造成了更新时依然是绑定到的图片名(所以就等以没更
新),而插入式更是插入空值。所以就在编辑模板里有加入了Button,让label获得到UploadFile文件
的名称在button的单击事件里进行,虽然成功了,但觉得很麻烦。
DetealsView具有很多与GridView类似的事件,如果熟悉了GridView,则会相当熟悉这些事件的使用。
DetealsView有一个DefaultMode属性,用来设置DetealsView的默认显示模式:Edit(编辑模式)Insert(新建模
式)ReadOnly(只读模式)。
DetealsView有一个ChangeMode方法来改变他的模式,如DetealsView1.ChangeMode(DetailsViewMode.Edit)。
FormView控件
与DeteasView控件的区别就是FormView控件完全是基于模板,开发人员完全可以在编辑模板里任意
设计自己想要的编辑模式插入模式等。所以也很容易在这里为其添加验证控件,而DeteasView控件的BoundField
则没这么容易添加验证控件。其他所有事件几乎相同。
分享到:
相关推荐
ASP.NET服务器控件与组件开发电子书及示例代码ASP.NET服务器控件与组件开发电子书及示例代码ASP.NET服务器控件与组件开发电子书及示例代码ASP.NET服务器控件与组件开发电子书及示例代码ASP.NET服务器控件与组件开发...
ASP.NET服务器控件是.NET框架中的核心组成部分,用于构建动态Web应用程序。在ASP.NET中,服务器控件提供了丰富的功能,使开发人员能够更方便地创建交互式的网页。本教程“ASP.NET服务器控件高级编程”深入探讨了这些...
本教程将深入探讨ASP.NET服务器控件的开发技术,并通过实例来帮助你理解和应用这些知识。 一、服务器控件基础 ASP.NET服务器控件是运行在服务器端的,它们在HTML发送到客户端之前被处理。服务器控件具有丰富的属性...
ASP.NET 服务器控件:DropDownCheckBoxList ,支持下拉多选,支持.NET3.5 支持主流浏览器IE8及以上版本 FF3.5+,Chrome 9+,Safari 5 等浏览器。
《ASP.NET服务器控件与组件开发》是一门深入探讨ASP.NET技术中服务器控件和组件构建的专业主题。在ASP.NET框架中,服务器控件和组件是网页开发的核心元素,它们为开发者提供了丰富的功能,简化了网页交互逻辑的实现...
ASP.NET服务器控件与组件开发是Web开发领域中的核心概念,尤其对于构建动态、交互性强的Web应用程序至关重要。ASP.NET是Microsoft .NET框架的一部分,它提供了丰富的服务器控件和组件库,使得开发者能够以声明式的...
资源共享啦!!... <<ASP.NET 服务器控件开发技术与实例>>附光盘代码 是服务器控件开发的入门及应用的书,想做ASP.NET服务器控件开发的不妨看看,里面带有10个经典控件开发实例源码和DEMO...
《ASP.NET服务器控件开发技术与实例》一书的光盘源程序代码是学习和深入理解ASP.NET服务器控件开发的宝贵资源。该资源由C#编程语言和Visual Studio 2005(VS2005)环境构建,旨在为开发者提供实战性的指导和示例,...
ASP.net服务器控件与组件开发
ASP.NET服务器控件开发(en) 很好的服务器控件开发资料
Asp.Net服务器控件开发 源代码 书中所有工程均采用Visual Studio.NET 2003进行开发,其Microsoft .NET Framework版本为1.1.4322。更详细的说明见书的“光盘使用必读”。
ASP.NET服务器控件是.NET框架下用于构建动态Web应用程序的核心组件。它们在Web页面的生命周期中扮演着重要角色,提供了一种与客户端交互的方式,并在服务器端处理用户输入。本教程将深入探讨ASP.NET服务器控件的开发...
ASP.NET服务器控件是.NET Framework框架中用于构建动态Web应用程序的核心元素之一。这些控件提供了一种方便的方式来创建用户界面,使开发人员能够通过拖放和配置属性来快速开发功能丰富的网页。在“asp.net服务器...
Asp.Net服务器端控件是.NET框架中用于构建动态Web应用程序的关键组件。这些控件提供了一种方便的方式来创建交互式的用户界面,使开发者能够轻松地处理网页上的数据和功能。在Asp.Net中,服务器端控件是核心的开发...
ASP.NET服务器控件和组件是构建动态Web应用程序的关键元素,它们为开发者提供了丰富的功能和便捷的接口,使得在网页上创建交互式用户界面变得简单。本文将深入探讨这些控件和组件的开发过程,帮助初学者快速掌握核心...
ASP.NET服务器控件是.NET Framework下开发Web应用程序的重要组成部分,它们为开发者提供了丰富的交互性和功能。在ASP.NET中,服务器控件是运行在服务器端的,可以处理用户输入、生成HTML代码并将其发送到浏览器。这...
ASP.NET服务器控件高级编程 ASP.NET 服务器控件 自定义控件