DataGrid入门经典(C#)
发布日期:2021-06-30 19:01:13
浏览次数:4
分类:技术文章
本文共 10949 字,大约阅读时间需要 36 分钟。
作者:未知 请作者速与本人联系 这篇文章主要介绍如何在DataGrid控件中实现编辑、删除、分类以及分页操作。为了实现我们的意图,我们使用SqlServer2000自带的NorthWind数据库。程序分为两部分: 1.包含HTML代码的.ASPX文件 2.包含所有逻辑及方法的后台C#类文件 代码: ASPX文件: 在这里我们设计了一个DataGrid对象,我为一些属性和方法作了注解。它就变得如此的简单: 代码拷贝框 [Ctrl+A 全部选择 然后拷贝] 你看,是不是不难?关键在于我们常动手动脑。多看资料也很关键哦! C#后台程序: 让我们先看一段程序: private void Page_Load(object sender, System.EventArgs e) { if(!IsPostBack) { BindGrid(); } } 上面展现的是一种非常好的技术,当页面不是PostBack状态时,就绑定数据。这意味着,一旦页面被请求数据将被绑定。 继续看程序: 代码拷贝框 [Ctrl+A 全部选择 然后拷贝]这段代码执行给定的SQL语句访问数据库,私有函数GetProductData返回一个包含数据记录的DataSet。下一步,让我们看如何编辑记录:
代码拷贝框[Ctrl+A 全部选择 然后拷贝]通过上面代码所附带的注解大家也能明白MyDataGrid_Edit函数的功能:当用户点击Edit按钮时激活MyDataGrid_Edit函数,并且程序找到所要编辑的记录的索引,把该索引号分配给DataGrid的EditItemIndex属性。 如果用户点击Cancel按钮,将调用我们在上面的.aspx文件中提到的MyDataGrid_Cancel函数,程序如果分配给DataGrid属性 EditItemIndex的值为-1,就意味着用户没有选择Edit,程序如下: 代码拷贝框[Ctrl+A 全部选择 然后拷贝]下面的代码像我们展现了如何从DataGrid中删除一条选中的记录。我们知道Web控件DataGrid有一DataKeyField属性,事实上它就包含了每条记录的ProductID字段值。您一定会问如何通过DataKeyField属性得到DataGrid中选中记录的ProductID值呢?下面这段代码会让您释然的:
代码拷贝框[Ctrl+A 全部选择 然后拷贝]下面的代码用来更新NorthWind数据库的产品信息,
我们可以使用下面这项技术检索值: ------------------- bool Discon=((CheckBox)E.Item.FindControl("Discontinued")).Checked; ------------------- 这时我们使用FinControl()方法就能得到Discontinued CheckBox的值. 代码拷贝框[Ctrl+A 全部选择 然后拷贝]接下来的BindGrid()调用私有函数GetProductData取得DataSet对象并绑定到DataGrid控件。 /// <summary> /// 接受数据库数据并再次绑定 /// </summary> protected void BindGrid() { MyDataGrid.DataSource=GetProductData().Tables["Products"].DefaultView; MyDataGrid.DataBind(); } 用户在DataGrid中向前或向后移动时激活MyDataGrid_PageIndexChanged事件,因为DataGrid 不能自动的获取新页的索引号,所以我们只能手动取得索引号。 /// <summary> /// 分页操作 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void MyDataGrid_PageIndexChanged(object source, DataGridPageChangedEventArgs e) { MyDataGrid.CurrentPageIndex=e.NewPageIndex; BindGrid(); } 用户在任何时候想对数据分类时,就激活下面的Sort_Grid事件。例如,如果用户点击field headers,事件就将被激活,并且把数据分成我们想要的分类。 我们需要DataView对象去为e.SortExpression.ToString()方法分类,返回的是被点击域标题的分类。 /// <summary> /// 分类 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Sort_Grid(Object sender, DataGridSortCommandEventArgs e) { DataView dv= new DataView(GetProductData().Tables["Products"]); dv.Sort= e.SortExpression.ToString(); MyDataGrid.DataSource=dv; MyDataGrid.DataBind(); }转载地址:https://linuxstyle.blog.csdn.net/article/details/149832 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月11日 04时40分54秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
NAS (Network Attached Storage 网络附属存储)
2019-04-30
Ubuntu更新后终端中字体的颜色全是白色
2019-04-30
vscode git
2019-04-30
基于MATLAB的二进制数字调制与解调信号的仿真——2FSK
2019-04-30
基于MATLAB的二进制数字调制与解调信号的仿真——2PSK
2019-04-30
基于MATLAB的模拟调制信号与解调的仿真——AM
2019-04-30
基于MATLAB的模拟调制信号与解调的仿真——DSB
2019-04-30
基于MATLAB的模拟调制信号与解调的仿真——SSB
2019-04-30
操作系统实验之生产者和消费者程序
2019-04-30
操作系统实验之猴子过桥问题的模拟程序
2019-04-30
POJ - 3067 Japan (树状数组 思维)
2019-04-30
POJ - 2352 Stars (树状数组 入门题)
2019-04-30
HDU - 1166 敌兵布阵 (树状数组模板题/线段树模板题)
2019-04-30
CodeForces - 761C Dasha and Password (思维 暴力)
2019-04-30
POJ - 2481 Cows (树状数组 入门题)
2019-04-30
ACM-ICPC 2018 焦作赛区网络预赛 I. Save the Room
2019-04-30
CodeForces - 987C Three displays (暴力/dp)
2019-04-30
计蒜客 NAIPC 2016 F. Mountain Scenes(dp)
2019-04-30