没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|其它|编辑:郝浩|2007-06-04 15:01:52.000|阅读 2281 次
概述:
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
允许最终用户编辑 DataGrid 里的某一行
为了让用户编辑 DataGrid 里的某一行,我们需要一些途径供用户选择他想编辑的行。就像在Part 3 探讨的一样,我们可以使用 ButtonColumn 控件为 DataGrid 里的每一行提供一个可点击的按钮。诚然,这样也可以达到编辑的目的,但看起来会有一点凌乱。幸好,DataGrid 提供了EditCommandColumn控件以实现该功能。
EditCommandColumn 控件在 DataGrid 里新添一列,为每一行记录放置一个编辑按钮,当点击该按钮时,将引起页面回传并触发 EditCommand 事件。就像稍后你将看到的那样,我们需要为这个事件写代码。现在让我们看看如何用 EditCommandColumn 控件为 DataGrid 添加编辑按钮。很简单,就像添加 BoundColumn 或 ButtonColumn 控件一样:
<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:EditCommandColumn EditText="Edit Info"
ButtonType="PushButton"
UpdateText="Update" CancelText="Cancel" />
<asp:BoundColumn HeaderText="Product ID" DataField="ProductID"
ReadOnly="True" />
<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>
EditCommandColumn 控件有很多可选属性,比如:ButtonType,它指定按钮类型为超链接(默认为LinkButton)或 PushButton ;以及为Edit, Update和Cancel按钮指定text的 EditText, UpdateText 和 CancelText 属性;此外,还有其它各种的显示属性,比如 HeaderText, ItemStyle等等。
如果你仔细的阅读上述代码,你可能会很吃惊 EditCommandColumn 控件居然会有 UpdateText 和CancelText 属性。毕竟我只提及过 EditCommandColumn 控件提供编辑按钮。准确的说,除了要编辑的那一行外,每一行都包含一个编辑按钮,而要编辑的那一行却显示的是2个按钮,Update"和"Cancel"按钮。
选择一行供编辑
DataGrid 有一个名为 EditItemIndex 的属性,它指定那一行记录要编辑。DataGrid 从0开始为它包含的行记录排顺序。默认情况下,当没有哪行记录要编辑时 EditItemIndex 的值为-1.当我们点击某行记录的"Edit"时,将触发 EditCommand 事件处理器。在该事件处理器里,我们将 EditItemIndex 属性与要编辑的那一行对应起来,然后重新绑定 DataGrid 的数据(调用BindData()),代码看起来像下面的这样:
Sub dgProducts_Edit(sender As Object, e As DataGridCommandEventArgs)
dgProducts.EditItemIndex = e.Item.ItemIndex
BindData()
End Sub
将该事件处理器与 EditCommand 事件对应起来,在 DataGrid 里进行指定,如下:
<asp:DataGrid id="dgProducts" runat="server"
...
OnEditCommand="dgProducts_Edit"
... >
<Columns>
...
</Columns>
</asp:DataGrid>
有了这些代码,当用户点击"Edit"按钮时,页面发生回传,待编辑行的"Edit" 按钮替换成了"Update"和"Cancel"按钮。另外,方格里的数值由文本值(textual value)自动的转换成处于可编辑的 textbox 类型的数值了。
在某些情况下我们想让某些数据处于只读状态,好比 ProductID,它是 Products 表的关键字段。要想使 DataGrid 里的某些列不可编辑,我们只需要将其 ReadOnly 属性设置为 True。比如:
asp:DataGrid id="dgProducts" runat="server"
... >
<Columns>
<asp:BoundColumn HeaderText="Product ID" DataField="ProductID"
ReadOnly="True" />
...
</Columns>
</asp:DataGrid>
你可以为处于编辑状态的行设置各种各样的格式属性,方法是使用 DataGrid 的 EditItemStyle 属性。比如:
<asp:DataGrid id="dgProducts" runat="server"
...
EditItemStyle-BackColor="#eeeeee"
... >
<Columns>
...
</Columns>
</asp:DataGrid
自此,我们考察了如何选择一行来编辑,接下来我们考察当用户对处于编辑状态的行进行更新或取消更新时,如何添加代码应对。我们将在下一节探讨。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至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号