`

ASP.NET服务器控件

阅读更多

 

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服务器控件与组件开发...

    asp.net服务器控件高级编程(带源文件)

    ASP.NET服务器控件是.NET框架中的核心组成部分,用于构建动态Web应用程序。在ASP.NET中,服务器控件提供了丰富的功能,使开发人员能够更方便地创建交互式的网页。本教程“ASP.NET服务器控件高级编程”深入探讨了这些...

    ASP.NET 服务器控件开发技术与实例

    本教程将深入探讨ASP.NET服务器控件的开发技术,并通过实例来帮助你理解和应用这些知识。 一、服务器控件基础 ASP.NET服务器控件是运行在服务器端的,它们在HTML发送到客户端之前被处理。服务器控件具有丰富的属性...

    ASP.NET 服务器控件:DropDownCheckBoxList

    ASP.NET 服务器控件:DropDownCheckBoxList ,支持下拉多选,支持.NET3.5 支持主流浏览器IE8及以上版本 FF3.5+,Chrome 9+,Safari 5 等浏览器。

    asp.net服务器控件与组件开发

    《ASP.NET服务器控件与组件开发》是一门深入探讨ASP.NET技术中服务器控件和组件构建的专业主题。在ASP.NET框架中,服务器控件和组件是网页开发的核心元素,它们为开发者提供了丰富的功能,简化了网页交互逻辑的实现...

    ASP.NET服务器控件与组件开发

    ASP.NET服务器控件与组件开发是Web开发领域中的核心概念,尤其对于构建动态、交互性强的Web应用程序至关重要。ASP.NET是Microsoft .NET框架的一部分,它提供了丰富的服务器控件和组件库,使得开发者能够以声明式的...

    ASP.NET 服务器控件开发技术与实例 光盘源码

    资源共享啦!!... &lt;&lt;ASP.NET 服务器控件开发技术与实例&gt;&gt;附光盘代码 是服务器控件开发的入门及应用的书,想做ASP.NET服务器控件开发的不妨看看,里面带有10个经典控件开发实例源码和DEMO...

    《ASP.NET服务器控件开发技术与实例》一书光盘源程序代码

    《ASP.NET服务器控件开发技术与实例》一书的光盘源程序代码是学习和深入理解ASP.NET服务器控件开发的宝贵资源。该资源由C#编程语言和Visual Studio 2005(VS2005)环境构建,旨在为开发者提供实战性的指导和示例,...

    ASP.net服务器控件与组件开发

    ASP.net服务器控件与组件开发

    ASP.NET服务器控件开发(en)

    ASP.NET服务器控件开发(en) 很好的服务器控件开发资料

    Asp.Net服务器控件开发 源代码

    Asp.Net服务器控件开发 源代码 书中所有工程均采用Visual Studio.NET 2003进行开发,其Microsoft .NET Framework版本为1.1.4322。更详细的说明见书的“光盘使用必读”。

    ASP.NET服务器控件开发技术与实例

    ASP.NET服务器控件是.NET框架下用于构建动态Web应用程序的核心组件。它们在Web页面的生命周期中扮演着重要角色,提供了一种与客户端交互的方式,并在服务器端处理用户输入。本教程将深入探讨ASP.NET服务器控件的开发...

    asp.net服务器控件

    ASP.NET服务器控件是.NET Framework框架中用于构建动态Web应用程序的核心元素之一。这些控件提供了一种方便的方式来创建用户界面,使开发人员能够通过拖放和配置属性来快速开发功能丰富的网页。在“asp.net服务器...

    Asp.Net服务器端控件

    Asp.Net服务器端控件是.NET框架中用于构建动态Web应用程序的关键组件。这些控件提供了一种方便的方式来创建交互式的用户界面,使开发者能够轻松地处理网页上的数据和功能。在Asp.Net中,服务器端控件是核心的开发...

    asp.net服务器控件组件与开发

    ASP.NET服务器控件和组件是构建动态Web应用程序的关键元素,它们为开发者提供了丰富的功能和便捷的接口,使得在网页上创建交互式用户界面变得简单。本文将深入探讨这些控件和组件的开发过程,帮助初学者快速掌握核心...

    ASP.NET服务器控件高级教程

    ASP.NET服务器控件是.NET Framework下开发Web应用程序的重要组成部分,它们为开发者提供了丰富的交互性和功能。在ASP.NET中,服务器控件是运行在服务器端的,可以处理用户输入、生成HTML代码并将其发送到浏览器。这...

    ASP.NET服务器控件高级编程

    ASP.NET服务器控件高级编程 ASP.NET 服务器控件 自定义控件

Global site tag (gtag.js) - Google Analytics