GridView使用学习总结
GridView初探:从旧视频到现代Asp.Net开发者的进阶之路
随着技术的不断进步,Asp.Net开发环境也在持续更新。如果你正在尝试学习GridView控件的使用,可能会发现早期关于DataGrid的视频教程已经过时。不过别担心,GridView控件继承了DataGrid的所有功能,只是外观和体验有所改进。下面,我们将深入GridView的一些关键特性。
一、DataKeyName属性
DataKeyName是用于标识数据行唯一性的属性,通常对应数据库的ID字段。在GridView中,你可以通过GridView.DataKeys[e.RowIndex]获取特定行的唯一标识。这一功能在DataList和Repeater控件中并不支持。例如,在数据绑定函数中,你可以这样使用:
```csharp
private void BindToDataGird()
{
SqlConnection con = DB.CreateCon();
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = new SqlCommand("select employeeID,FirstName,LastName,Title,BirthDate from employees ", con);
DataSet ds = new DataSet();
sda.Fill(ds, "emp"); //查询数据并添加到DataSet中
this.GridView1.DataKeyNames = new string[]{"employeeID"}; //设置DataKeyNames属性
this.GridView1.DataSource = ds.Tables["emp"]; //设置数据源
this.DataBind();
}
```
取值也很简单:
```csharp
DataKey key = GridView1.DataKeys[e.RowIndex]; //获取指定行的键值
string empID = key[0].ToString(); //转换为字符串格式
```
二、分页功能
GridView内置了分页功能,使用非常方便。你需要设置AllowPaging、PageSize和PageSettings属性。然后,你可以编写事件代码来处理页面切换:
```csharp
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
this.GridView1.PageIndex = e.NewPageIndex;
this.BindToDataGird(); //重新绑定数据以更新页面内容
}
```
三、排序功能
为了让GridView支持排序,你需要设置AllowSorting属性为true。然后,你可以编写事件代码来处理排序请求:
```csharp
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
if (ViewState["order"] == null) //使用ViewState进行双向排序处理
{
// 这里添加你的排序逻辑代码
}
}
```
一、排序
在数据的展示过程中,我们实现了灵活的排序功能。通过ViewState记录当前的排序方式,初始默认为升序(ASC)。当用户点击表头进行排序时,我们会根据当前的排序方式进行切换。
我们通过SqlDataAdapter和SqlCommand与数据库进行交互,从employees表中获取数据。获取的数据集通过默认视图进行排序,排序的方式由ViewState中的排序方式决定,并将排序后的数据展示在GridView1中。
二、删除
在删除操作中,我们需要获取要删除行的主键值,即employeeID。当用户触发删除操作时,我们通过GridView的DataKeys获取当前行的主键值,然后构造删除命令,执行删除操作。
三、编辑(更新和取消)
编辑功能允许用户对数据进行修改。当用户触发编辑操作时,我们会设置GridView的编辑索引,并将数据展示在界面上。用户修改数据后,可以触发更新或取消操作。
在更新操作中,我们会获取要更新的行的主键值以及修改后的数据,然后执行更新操作。在取消操作中,我们会将编辑索引设置为-1,取消编辑状态。
四、小结
数据绑定控件如Reapter、DataList和GridView,都具有强大的数据展示和处理功能。它们使用模板来定义数据的展示方式,掌握模板的使用非常重要。在我们的视频中,大部分使用控件而非代码来实现模板的使用,使得开发更加便捷和直观。
(附结果图)
在界面展示方面,我们的数据展示控件以递增的方式展示了数据绑定功能。从简单的Reapter到DataList,再到复杂的GridView,每一个控件都体现了数据绑定的强大功能。用户在操作过程中,可以通过排序、删除、编辑等功能对数据进行处理,使得数据的展示和处理更加灵活和便捷。总觉得自我成长的路途上,仍然有无数的知识盲点等待着我去与学习。每一片未知的领域,都如同一座高塔,屹立在眼前,挑战着我的认知极限。此刻的我,仿佛置身于一片广袤的海洋之中,周围是浩渺无垠的知识之水,而我仅仅是一叶扁舟,随波逐流,不断着前方的彼岸。
为了真正理解和掌握这些知识,我需要通过实例来巩固学习。实例,就像是一盏明亮的灯塔,指引着我在知识的海洋中前行。每一个具体的例子,都能帮助我深入理解知识的内涵和外延,让我更好地把握知识的精髓。
例如,那数学的公式、物理的原理、化学的反应,以及语言的结构,每一个都需要我深入钻研,通过具体的例子来加深理解。这些实例,就像是知识的砖石,构建着我脑海中的知识大厦。每一块砖石都承载着知识的重量和,让我在这座大厦中不断攀升,不断超越自我。
此刻的我,仿佛置身于一个巨大的学习场之中,周围是无数等待我解答的谜题。我需要通过不断地学习和实践,来解开这些谜题,掌握这些知识和技能。我知道,这个过程将会充满挑战和困难,但我愿意勇往直前,不断前行。
每一次学习,都是一次心灵的觉醒;每一次实践,都是一次能力的提升。我需要把握住每一个学习的机会,通过实例来巩固知识,提升自我。我相信,只要我坚持不懈地努力,就一定能够在知识的海洋中乘风破浪,抵达那遥远的彼岸。
在这个学习的道路上,我将不断、不断前行。每一个挑战都将激发我的斗志,每一个困难都将锤炼我的意志。因为我知道,只有不断学习和实践,我才能不断成长,实现自我价值的最大化。
seo排名培训
- GridView使用学习总结
- 浅谈Node.js爬虫之网页请求模块
- Vue.js路由实现选项卡简单实例
- laravel项目利用twemproxy部署redis集群的完整步骤
- vue组件 $children,$refs,$parent的使用详解
- AjaxToolKit之Rating控件的使用方法
- 详解PHP使用OSS上传文件
- 详细分析JS函数去抖和节流
- Laravel5.1 框架关联模型之后操作实例分析
- 通过BootStrap实现轮播图的实际应用
- vue-cli3+typescript新建一个项目的思路分析
- 微信小程序应用号开发体验
- vue实现ToDoList简单实例
- 万能的php分页类
- 基于Bootstrap漂亮简洁的CSS3价格表(附源码下载)
- php实现的返回数据格式化类实例