`
varsoft
  • 浏览: 2430643 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

DataGrid入门经典(C#)

阅读更多
作者:未知 请作者速与本人联系


这篇文章主要介绍如何在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();
}

分享到:
评论

相关推荐

    开发专家·编程大讲坛:C#核心开发技术从入门到精通.tag.pdf

    第22课到第31课为技术提高篇,主要讲解了Web应用编程、数据库和ADO.NET操作、DataGrid和数据绑定、GDI+图形图像编程基础、C#非托管代码操作、水晶报表控件应用、DotNetBar控件应用、Microsoft Enterprise Library...

    ASP.NET 数据库入门经典C#篇pdg

    本书要求读者对 ASP.NET 和 C# 有一些基本的认识,如果对操纵数据库没有任何经验也没有关系,作者将指导每个过程,包括将 ASP.NET 页面与数据库连接,研究各种读取、处理和更新数据的方法。接下来研究所有涉及侧重于...

    C# XML demo,C# XML入门,XmlHelper

    After working with a couple ... to DataSource assignment from XML documents to ListBoxes and DataGrids, and finally to DataSource update from changes made on a DataGrid to update the source XML document.

    Visual.C#2010从入门到精通

    学习以c#的必备书 本书介绍了如何使用Visual C++ 6.0编写Windows应用程序。全书内容全面、结构清晰、由浅入深、注重实用,并结合了大量的实例,以方便读者理解。本书既包含菜单、鼠标、键盘等基本操作,又包含图形...

    WPF .net4.5 +MvvmLight +Sqlite 实现数据增加删除即时更新到datagrid,源码

    WPF应用程序 .net4.5框架 +MvvmLight +Sqlite 实现数据增加删除即时更新到datagrid,非常实用的入门级小数据操作应用程序,源码上传可以参考使用

    ASP升级.net资料大全(c#入门 语言规范 源码教程 学习笔记 技术资料 面试题 asp与.net代码生成器)

    捕捉DataGrid的双击事件(C#版本).txt 不显示窗口后台运行程序.txt 储存过程.txt 处理“进程性能计数器被禁用”的错误.txt 串口操作.txt 打开word文件.txt 打造“浏览器”.txt 带图标和自定义颜色的ListBox....

    两个简单的数据操作实例C#+Access

    两个简单的数据操作实例C#+Access,一个是与查询操作有关,另一个是与DataGrid有关,这些都是入门级选手喜欢查阅的程序,一步一步来,你也会成为C#编程高手。注:本程序的数据库路径有问题,请修改为相对路径就能...

    ASP.NET常见问题集锦.zip

    ASP.NET常见问题集锦.zip . .. .net中中文乱码问题解决.txt ADO.NET 与 XML:双剑合壁,威力强大.doc ... ASP.NET ViewState 初探.doc ASP.NET Web 方法中的 ... 面向对象设计(OOD)思想(C#) - c-c++ - CSDN

    ASP.NET完全入门PDF

    DataGrid 第七章事务处理 i. ASP.NET事务处理机制ii. 一个完整的例子iii. 利用数据库的事务处理 iv. 利用MTS的事务处理v. 小结第四篇 应用程序第一章 什么是应用程序 i. 配置应用程序的步骤ii. 应用程序框架iii. ...

    ASP.NET完全入门

    ASP.NET 简单快速入门第一篇 概论 第一章 微软.NET战略和ASP.NET简介 i. 微软.NET的历史 ii. ASP.NET历史 iii. 众说纷纭.NET iv. ASP.NET综述 v. 小结 第二章 我的第一个ASP.NET程序 i. 配置开发环境 ii. ...

    asp.net知识库

    经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎 正式发布表达式计算引擎WfcExp V0.9(附源码) 运算表达式类的原理及其实现 #实现的18位身份证格式验证算法 身份证15To18 的算法(C#) 一组 正则表达式...

    DatagridViewTest.rar

    C#对datagrid表格的值的复制与粘贴

    easyui+mvc4+json增删改源码

    Microsoft Visual C# 2013 .NET 4.0 MVC4 + json +MSsql2005 用户管理程序基本全,商品管理 部分没有写,请查看用户管理。对应就OK啦。 绝对100%源码 代码清晰, 入门学友易看易懂。5分绝对的值。。 主要用到了...

    VC/Cshap/java源码大全

    EJB编程,VC++下ACE开发入门,ASP.NET中实现DataGrid控件动态绑定数据的方法探讨,模仿深度剥离效果,C#中动态数组设计原理,基于WinSock的UDP数据转发,用VC++实现手机短消息查询,基于.NET框架RijndaelManaged类...

    Asp.net简单博客系统

    该系统为一个入门级的blog程序,有简单的文章发表、评论和友情链接等功能 作者的话: 很早就想做个自己的个人网站,于是趁着这个学期的短学期花了三天时间,用asp.net做了个类Blog的网站. 首先要申明的是,之前我对...

    ASP.net一夜速成视频教程列表

    因为教程偏重于代码编程,并且主旨在于“速成”,所以除了界面并无作任何美化之外,在代码解释上都尽可能做了中文注释,但是你可能还需要参考DW和C#等相关基础教程。注意:因为本教程节与节之间的关联性非常强,所以...

    AppFramework_V1.0

    这样,程序就要对int.MinVaue这个值进行特殊处理,例如不能把int.MinValue直接显示在DataGrid里或界面上。有一种规避的方法,就是避免向数据库插入NULL,即要求所有业务数据入库的值都不为空。但这样作实际上是限制...

    AppFramework_V1.0_New

    这样,程序就要对int.MinVaue这个值进行特殊处理,例如不能把int.MinValue直接显示在DataGrid里或界面上。有一种规避的方法,就是避免向数据库插入NULL,即要求所有业务数据入库的值都不为空。但这样作实际上是限制...

Global site tag (gtag.js) - Google Analytics