Discuz!NT控件剖析之DataGrid(数据列表)
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-04-11
自从 9月未开始写关于"ICONIX方法"的系列文章以来,到今天已有两个多月了,当初因为兴趣点的转移才划一 先请大家看一下这个控件运行时的效果图: 需要说明的是写这个控件(继承自.net DataGrid 控件)的动机: 其实在产品早期,为了提高开发速度。我们最先使用的是Component Art 控件库中的DataGrid控件,相信园子 里肯定有人用过这个商业控件库,甚至研究过它。从我个人感受看,我只能是“NB”来形容它了,首先是它的使用习惯 和方法名称非常接近(甚至完全相同)于我们所熟悉的Microsoft .NET DataGrid 控件,另外就是它的功能比微软 的DataGrid强大得不是一点半点,是那种“很好很强大”的东东。我在这里要向那些致力于控件开发的朋友推荐这个 控件库,相信大家会从它的源码中学到很多有益的东西。 如果这里有些朋友还不知道它的话,建议大家看看 CS(这里可不是"反恐精英"呀),这个开源社区软件里的控件 库就用的是Component Art。 言归正传吧,因为Component Art是商业控件库,如果使用的话会有许多问题(如授权等)。所以在Discuz!NT 1.0 正式版推出前, 我们的相应代码基本上都又再次回到了 Microsoft .NET DataGrid上了,同时考虑到所开发的 代码要适用于.net1.0-.net2.0,所以没有使用.net2.0中的DataView控件。 即然决定使用Microsoft .NET DataGrid,那么就要看看它到底适不适合我们这个项目了:) ,因为之前已完成 了后台的编码工作,而剩下的就是在确保少修改代码,甚至减少代码量的基础上使用这个控件来摆脱Component Art。 在减少代码量的方面,这里对“原始”的DataGrid进行了不少的封装, 如下: 1.绑定数据部分,为了实现只给一条 SQL语句,就完成数据绑定的设计,我在继承自DataGrid的类中写了如下 方法: 1//添加表类型对象 2 public void BindData(string sqlstring) 3 { 4 this.SqlText = sqlstring; 5 6 //DbHelper类我在之前的关于数据库链接一文中已介绍过,大家可以参考一下 7 DataTable dt = DbHelper.ExecuteDataset(CommandType.Text, sqlstring).Tables[0]; 8 9 //用于标识记录数 10 this.VirtualItemCount = dt.Rows.Count; 11 12 //下面两行代码就不用多说了吧:) 13 this.DataSource = dt; 14 this.DataBind(); 15 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于Discuz!NT控件剖析之DataGrid(数据列表)的所有评论