没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|其它|编辑:郝浩|2007-06-04 14:45:06.000|阅读 1956 次
概述:
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
本文,我们考察 DataGrid 的一项有用的特点—inline 编辑(inline editing)
在很多情况下,我们需要在 DataGrid 里编辑数据。比如,在一个data-driven 网站,你可能有一组administrative Web pages 页面,这些页面包含了各种不同类型的数据库表(database tables),并允许管理员修改这些表格里的数据。通过 DataGrid,我们可以很轻松的将数据库表的信息显示出来(更多信息请参考 Part 2 和 Part 5),同样,我们也可以用 DataGrid 来编辑数据!
使用 DataGrid 的编辑功能(editing features)是很简单的,相比较而言,为了达到相同的目的,DataGrid 所需要的代码比经典 ASP 页面要少地多.此外,在阅读本文之前,你应该对 SQL 有所了解,也即相关的构建和更新命令(可以参考官方的 SQL 在线书籍:http://www.microsoft.com/sql/techinfo/productdoc/2000/books.asp)同样的,你也应该对DataGrid 控件本身比较了解,理解其事件(events)处理机制,为次可参考本系列的Part 3部分。
首先:显示数据
在我们将注意力集中到编辑 DataGrid 里的数据之前,我们首先要将数据用 DataGrid 显示出来。在前面的文章我们已经深入的探讨过这个问题,在此我不打算花过多笔墨。在本例中我们使用的是 GrocerToGo 数据库(它是一种 Access 2000的数据库,可以在本文结束处下载).在此,我们将要显示 Products 里的数据。
我们将在 DataGrid 里显示 Products 表里的如下几个列:ProductID, UnitPrice, ProductName, 以及 ProductDescription,为了使 DataGrid 看起来比较美观,还包含了一些界面格式代码,下面的代码将 Products 表的数据显示在 DataGrid:
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script runat="server">
Sub Page_Load(sender as Object, e as EventArgs)
If Not Page.IsPostBack
BindData()
End If
End Sub
Sub BindData()
'1. Create a connection
Const strConnStr as String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\GrocerToGo.mdb"
Dim objConn as New OleDbConnection(strConnStr)
objConn.Open()
'2. Create a command object for the query
Const strSQL as String = "SELECT * FROM Products"
Dim objCmd as New OleDbCommand(strSQL, objConn)
'3. Create/Populate the DataReader
Dim objDR as OleDbDataReader
objDR = objCmd.ExecuteReader()
dgProducts.DataSource = objDR
dgProducts.DataBind()
End Sub
</script>
<asp:DataGrid id="dgProducts" runat="server"
AutoGenerateColumns="False" CellPadding="4"
HeaderStyle-BackColor="Black"
HeaderStyle-ForeColor="White"
HeaderStyle-HorizontalAlign="Center"
HeaderStyle-Font-Bold="True">
<Columns>
<asp:BoundColumn HeaderText="Product ID" DataField="ProductID" />
<asp:BoundColumn HeaderText="Price" DataField="UnitPrice"
ItemStyle-HorizontalAlign="Right"
DataFormatString="{0:$#,###.##}" />
<asp:BoundColumn HeaderText="Name" DataField="ProductName" />
<asp:BoundColumn HeaderText="Description"
DataField="ProductDescription" />
</Columns>
</asp:DataGrid>
上述代码浅显易懂,BindData()函数读取 Products 表的数据到一个 DataReader,然后绑定到一个名为 dgProducts 的 DataGrid。
留意 Page_Load 件处理器
我们注意到在 Page_Load 事件处理器里,只有当初次登录页面时,才调用 BindData()子程序.也就是说,当页面产生回传时并不会调用 BindData()子程序,这是非常关键的!如何你进行修改,每次登录页面时都调用 BindData(),你编辑的数值就不会保存在数据库里。欲知详情请参考常见问题答疑:Why Your DataGrid's Updates Don't Show Up。(相关链接为http://datawebcontrols.com/faqs/Editing/EditedValuesNotSaved.shtml)
现在我们将数据显示在 DataGrid 里,接下来我们要对数据进行编辑。在 DataGrid 里有一个名为EditCommandColumn 的控件,其在 DataGrid 的每一行显示一个"Edit" 按钮。EditCommandColumn 控件是如何允许最终用户编辑某一特定行的呢?我们将在下半部分阐述。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
接DevExpress原厂商通知,将于近日上调旗下产品授权价格,现在下单客户可享受优惠报价!
面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号