快速业务通道

Scott Mitchell的ASP.NET 2.0数据操作教程之十:使用GridView和DetailView实

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21
SortExpression="ProductName" />
<asp:BoundField DataField="UnitPrice" DataFormatString="{0:c}" HeaderText="Unit Price"
HtmlEncode="False" SortExpression="UnitPrice" />
</Columns>
</asp:GridView>

单 击GridView的选择按钮时会引起一次回发, GridView的 SelectedRow属性也会更 新. 除了SelectedRow属性, GridView还提供了SelectedIndex, SelectedValue, 和 SelectedDataKey属性. SelectedIndex属性返回选中行的索引, SelectedValue和SelectedDataKey属性返回基于GridView的DataKeyNames属性的 值.

DataKeyNames属性让每一行关联一个或多个数据字段, 经常用于唯一 标识GridView行. SelectedValue属性返回选中行的DataKeyNames中的第一个数据 字段的值, SelectedDataKey返回选中行的DataKey对象, 它包含了该行的所有指 定数据主键字段的值.

在设计视图上绑定数据源到GridView, DetailsView, FormView时DataKeyNames属性被自动设置为数据源中唯一标识的数 据字段. 尽管在前面的教程中这个属性都是自动设置的, 示例可以不需要专门指 定的DataKeyNames属性就可以运行. 但对于本教程中的可选择行的GridView以及 后面我们要研究GridView中的新增,更新,删除的教程中, DataKeyNames属性必须 合理地设置.确保GridView的DataKeyNames属性已经设置为ProductID.

在 浏览器浏览一下我们所完成的工作. GridView列出了所有产品的名称和单价以及 一个选择按钮. 单击选择按钮触发一次回发. 在第二步中我们将会看到如何让一 个DetailsView响应该回发事件并显示选中产品的详细信息.

Scott Mitchell的ASP.NET 2.0数据操作教程之十:使用GridView和DetailView实

图 7: 每个产品行都包含一个选择链接按钮.

高亮显示选中行 ProductsGrid GridView 有一个SelectedRowStyle属性, 该属性决定了选中行的 外观. 合理的使用可以更清晰的显示当前选中的行以改善用户体验. 对于本教程, 我们使用黄色的背景来高亮显示选中行.

与前面的教程一样, 我们要尽量 保持美的外观.在Styles.css中定义一个新的CSS类并命名为 SelectedRowStyle.

.SelectedRowStyle
{
background -color: Yellow;
}

要对本系列教程中的所有GridView的 SelectedRowStyle属性应用这个CSS类,编辑DataWebControls 主题下的 GridView.skin外观文件如下:

<asp:GridView runat="server" CssClass="DataWebControlStyle">
<AlternatingRowStyle CssClass="AlternatingRowStyle" />
<RowStyle CssClass="RowStyle" />
<HeaderStyle CssClass="HeaderStyle" />
<SelectedRowStyle CssClass="SelectedRowStyle" />
</asp:GridView>

修改后,GridView的选中行用黄色的背 景高亮显示

Scott Mitchell的ASP.NET 2.0数据操作教程之十:使用GridView和DetailView实

图 8:使用 GridView的 SelectedRowStyle 属性自定义选中行的外观

Step 2: 在DetailsView中显示选中产品的详细信息

完成 ProductsGrid GridView后, 剩下就是增加一个DetailsView, 它显示选中的产品 的详细信息. 在GridView的上方添加一个DetailsView控件并创建一个新的数据源 命名为ProductDetailsDataSource. 由于我们想让这个DetailsView显示选中产品 的详细信息, 配置ProductDetailsDataSource使用ProductsBLL类的 GetProductByProductID(productID)方法.

Scott Mitchell的ASP.NET 2.0数据操作教程之十:使用GridView和DetailView实

图9: 调用 ProductsBLL 类的GetProductByProductID(productID) 方 法

让productID从GridView控件的SelectedValue属性获取参数值.如同我 们前面讨论过的, GridView的SelectedValue属性返回选中行的第一个数据键值. 因此必须把GridView的DataKeyNames属性设置为ProductID, 这样选中行的 ProductID就可以通过SelectedValue属性返回了.

Scott Mitchell的ASP.NET 2.0数据操作教程之十:使用GridView和DetailView实

图1

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号