C#精髓: GridView操作完全指南

需积分: 0 0 下载量 136 浏览量 更新于2024-10-03 收藏 452KB DOC 举报
“GridView 72般绝技.doc” 在C#编程中,GridView是一个非常重要的控件,用于显示和操作数据库中的数据。这篇文档详细介绍了72种 GridView 的操作技巧和绝技,由作者清清月儿精心编撰。通过学习这些技巧,开发者可以熟练掌握GridView的各种高级功能,无需再寻求他人的帮助。 1. GridView无代码分页排序: 要实现GridView的无代码分页排序,只需设置`AllowSorting`属性为`True`,在ASPX页面中表示为`AllowSorting="True"`。默认每页显示10条记录,可通过设置`PageSize`属性更改,如`PageSize="12"`。单击列头可进行升序或降序排序。 2. 选中、编辑、取消和删除: GridView支持用户交互操作,如选中、编辑、取消和删除记录。后台代码可以处理这些操作,例如使用SQLHelper类(尽管文档未使用)。 3. 正反双向排序: GridView允许用户对列进行正向和反向排序,只需在允许排序的前提下点击列头。 4. 结合下拉菜单(DropDownList)和CheckBox: 可将GridView与下拉菜单或CheckBox控件集成,提供更丰富的用户输入和选择。 5. 鼠标悬停改变行背景色: 有两种方法实现鼠标悬停时改变行背景色,可以通过CSS或JavaScript实现。 6. 删除时弹出确认对话框: 在执行删除操作前,可以弹出确认对话框,确保用户确认操作。 7. 自动编号: 可以在GridView中为每一行添加自动编号,增强数据展示效果。 8. 自定义时间、货币等字符串格式: 通过格式化函数,可以定制日期、货币等字段的显示格式。 9. 用“...”替换超长字符串: 对于过长的文本,可以截断并显示省略号,提高界面美观度。 10. 换行与强制换行: GridView支持一般换行和强制换行,通过CSS样式控制文本的换行行为。 11. 显示或隐藏列: 开发者可以轻松控制哪些列显示或隐藏,以满足不同场景的需求。 12. 弹出新页面或窗口: 用户点击某行时,可以通过HyperLinkField或ButtonField等控件实现新窗口或页面的跳转。 13. 固定表头: 使用CSS,仅需两行代码即可实现固定表头,即使在滚动时也始终保持可见。 14. 合并表头: GridView可以创建多重表头,实现复杂的表头布局,以清晰地展示层次结构。 15. 突出显示特定单元格: 通过对特定条件的判断,可以高亮显示满足条件的单元格,如低于某个值的金额或不及格的分数。 16. 自动求和、求平均值和小计: 可以添加脚部行来计算特定列的总和、平均值或其他统计信息。 17. 数据导入导出: GridView可以方便地实现数据与Excel之间的导入导出操作,便于数据交换和分析。 通过学习和实践这72种技巧,开发者将能够充分利用GridView的强大功能,创建出用户友好、功能丰富的数据展示和交互界面。同时,这些技巧也为解决实际开发中的问题提供了实用的解决方案。

帮我找出一下代码的错误,“/程序”应用程序中的服务器错误。 “gvProducts”上同时定义了 DataSource 和 DataSourceID。请移除一个定义。 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: “gvProducts”上同时定义了 DataSource 和 DataSourceID。请移除一个定义。 源错误: 行 39: this.gvProducts.DataSource = ds; 行 40: this.gvProducts.DataKeyNames = new string[] { "id" }; 行 41: this.gvProducts.DataBind(); 行 42: da.Dispose(); 行 43: conn.Dispose(); 源文件: c:\Users\86136\Desktop\第2组-网上书店系统\网上书店系统\程序\Myorderlist.aspx.cs 行: 41 堆栈跟踪: [InvalidOperationException: “gvProducts”上同时定义了 DataSource 和 DataSourceID。请移除一个定义。] System.Web.UI.WebControls.DataBoundControl.ConnectToDataSourceView() +8658325 System.Web.UI.WebControls.DataBoundControl.GetData() +4 System.Web.UI.WebControls.DataBoundControl.PerformSelect() +60 System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +73 System.Web.UI.WebControls.GridView.DataBind() +4 Myorderlist.bind_ordertables() in c:\Users\86136\Desktop\第2组-网上书店系统\网上书店系统\程序\Myorderlist.aspx.cs:41 Myorderlist.BindShopBasket() in c:\Users\86136\Desktop\第2组-网上书店系统\网上书店系统\程序\Myorderlist.aspx.cs:71 Myorderlist.Page_Load(Object sender, EventArgs e) in c:\Users\86136\Desktop\第2组-网上书店系统\网上书店系统\程序\Myorderlist.aspx.cs:26 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35 System.Web.UI.Control.OnLoad(EventArgs e) +99 System.Web.UI.Control.LoadRecursive() +50 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627

2023-06-09 上传