当前页面位置: » 丰搜网 » 文档中心 » 详细内容
datagrid入门经典
原文:http://www.c-sharpcorner.com/asp/code/northwindlc.asp
这篇文章主要介绍如何在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();
}
出处:
责任编辑:蓝色
◎进入论坛网络编程版块参加讨论
| | | 保持清晰的文档结构 | | | 月亮图腾教程ⅴ—最后一战 | | | x-sapce使用系列教程 | | | x-space安装系列教程 | | | 抽线以及虚线画法简明教程 | | | 创新设计 百万格子大楼 | | | discuz!转换系列教程 | | | 世界杯足球的32个变种 | | | 易上手简单图层样式扣图 | | | 一封写给mm学习linux的信 | | | | | | 保持清晰的文档结构 | | | 月亮图腾教程ⅴ—最后一战 | | | x-sapce使用系列教程 | | | x-space安装系列教程 | | | 抽线以及虚线画法简明教程 | | | discuz!转换系列教程 | | | 易上手简单图层样式扣图 | | | 十分钟学会 xajax | | | css 菜单举一反三 | | | 利用照片制作版画简明教程 | | | | | 蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。
转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。 特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有 | | 本文总共有 10 条评论,现在显示最新的 5 条。暂时没有人参于评分 greenhill publish at 2005-11-22 10:36:45 的确不错. 如果大家还想实现更复杂的功能, 我给大伙介绍一个更强的datagrid控件---smartgrid. 美中不足, 这是一款商业控件:-) 去神农氏软件网上看看吧: www.sinos.com.cn shirleyhlm publish at 2005-9-13 22:19:18 我执行更新记录的时候怎么总是显示 “connectionstring 属性尚未初始化” 我怎么也改不好了,你能帮我以下吗???????????? 218.59.78.243 publish at 2004-7-15 11:18:20 ((textbox)e.item.cells[3].controls[0]).text.......为什么我用这句的时候总说textbox是不明确的引用,这句是什么意思啊。有人知道吗 219.130.36.114 publish at 2004-6-17 15:32:22 有没有aceess版本加vb asp.net 的,急需! 202.108.207.181 publish at 2004-5-29 11:05:13 good
查看全部评论 | | |
| 关于站点 免责声明 联系站长 版权隐私 友情链接 网站地图 京icp备05002321号 | ©1999-2006 blueidea.com. 版权所有 | |