博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
富数据控件 DetailsView 和 FormView
阅读量:5319 次
发布时间:2019-06-14

本文共 1751 字,大约阅读时间需要 5 分钟。

       DetailsView 和 FormView 擅长于每次都只显示一个记录,并包含一个可选的分页按钮。

       DetailsView 和 FormView 的差别在于:DetailsView 显示表中的内容,而 FormView 更加灵活,可以在无表的情况下显示内容。如果打算使用模版,FormView 会提供最大的灵活性,否则,DetailsView 会提供一个更简单的模型。

 

DetailsView

       DetailsView 被设计为每次只显示一个记录,它把信息段(字段或属性)放入到一个表的单独行中。只要你把 AllPaging 设为 true,它还允许你借助分页控件从一个记录浏览到另一个。

 
ProviderName="System.Data.SqlClient" SelectCommand="select * from Employees">
 
 
AllowPaging="true" PagerSettings-Mode="Numeric">
 

       使用 DetailsView 做一个单项记录的分页浏览显得颇有诱惑力,遗憾的是这样的效率可能不太高。每次在记录间的切换都会触发一次回传,而真正的缺点在于虽然只显示一条记录,但却不得不获取所有的记录。(使用缓存技术可以减少数据库的负担)

       一个好一点的解决方案是,使用全部数据的一个子集创建自己的记录选择控件。例如,将所有员工的姓名放在一个列表框并绑定一个只查询员工姓名的数据源,然后当列表中的名字被选定时,使用另一个数据源只获取被选定员工的完整资料。

 

1. 定义字段

       和 GridView 一样,如果你没有显式定义了字段,DetailsView 会使用反射来生成它显示的字段。要自定义字段的话,需要设置:

AutoGenerateRows="false"

 

 

2. 记录操作

       DetailsView 支持删除、插入、编辑等操作,只需简单的设置 DetailsView 的三个属性:AutoGenerateDeleteButton、AutoGenerateInsertButton、AutoGenerateEditButton,在 DetailsView 底部会增加一个 CommandField 并通过链接方式来提供相应的功能。

       DetailsView 有 3 种模式:只读、编辑、插入。可以获取 CurrentMode 来确定它的模式,调用 ChangeMode()方法来改变它的值。也可以使用 DefaultMode 属性来创建一个总是编辑和插入模式开始的 DetailsView 。

 

提示:

       如果 DetailsView 处于编辑模式下,用户浏览到一个新的记录,此时 DetailsView 仍然会处于编辑模式下。如果这不是你希望的行为,可以对 PageIndexChanged 事件做出反应并调用 ChangeMode()方法通过编程将它返回到只读模式。

protected void DetailsView1_PageIndexChanged(object sender, EventArgs e)
{
if (DetailsView1.CurrentMode == DetailsViewMode.Edit)
{
DetailsView1.ChangeMode(DetailsViewMode.ReadOnly);
}
}

 

 

FormView

       FormView 是一个仅使用模版显示和编辑单个记录的控件,其模型之美在于它和 GridView 的 TemplateField 模型紧密相关,你可以完全把GridView中的模版拷贝到 FormView 中使用。

       FormView 也可以在只读、插入和删除这3中状态下工作。不同的是,FormView 控件不支持自动创建编辑按钮的 CommandField 类,你需要手工创建那些 Button 并且对它们的 CommandName 进行合适的设置( Edit、Cancel、Update、Insert、Delete、New )。

转载于:https://www.cnblogs.com/uddgm/p/4853474.html

你可能感兴趣的文章
stm32中字节对齐问题(__align(n),__packed用法)
查看>>
like tp
查看>>
使用 github Pages 服务建立个人独立博客全过程
查看>>
posix多线程有感--线程高级编程(线程属性函数总结)(代码)
查看>>
spring-使用MyEcilpse创建demo
查看>>
DCDC(4.5V to 23V -3.3V)
查看>>
kettle导数到user_用于left join_20160928
查看>>
activity 保存数据
查看>>
typescript深copy和浅copy
查看>>
linux下的静态库与动态库详解
查看>>
hbuilder调底层运用,多张图片上传
查看>>
深入理解基于selenium的二次开发
查看>>
较快的maven的settings.xml文件
查看>>
Git之初体验 持续更新
查看>>
软件开发模型之瀑布模型
查看>>
Exception in thread "AWT-EventQueue-0" java.lang.IllegalThreadStateException
查看>>
随手练——HDU 5015 矩阵快速幂
查看>>
Python默认调用路径
查看>>
启动redis一闪就关
查看>>
Maven之setting.xml配置文件详解
查看>>