您现在的位置: 无忧电子商务网 >> 信息学院 >> 程序开发 >> asp.net >> 正文

类似BOOLEAN列的DATAGRIDTEXTBOX的改进与重写

作者:佚名    信息学院来源:整理    点击数:    更新时间:2008-1-30 我要参与讨论

 

在这里我们来讲一篇关于如何进行数据列内容与显示操作的方法。这种方法类似于实现:有数据表test(id int not null primary key ,name varchar(20) ,sex bit ), 那么是否有方法不通过直接使用sql语句,如:select id ,name ,sex =case sex ( when true then ‘男’ when false then ‘女’ else sex end) 的形式来构建要显示的是“男”,“女”,而实际上存储的是true和false呢?当然,如果我们使用datagridboolcolumn,通过设置它的一些属性(truevalue,falsevalue)可以达到类似的效果,但对于那些非bit列呢?回答是肯定的。我们使用继承datagridtextboxcolumn类,然后重写GetColumnValueAtRow方法,来达到效果。GetColumnValueAtRow方法,把要从数据源的数据取出,然后判断后,返回我们想要在网格中显示的值。(代码见后面的详细代码)

这样,我们可以顺利地在网格中显示我们想要的数据了,但是还有另外一个问题,就是如果我们想在网格中修改数据,那么是否可以被提交给数据库呢?如果仅仅通过上面的操作,只是达到了显示的目的,还要重写edit,commit,abort方法,来达到点击单元格后修改内容,然后提交,最后更新到数据库。

下面是程序的完整代码,这里只是抛砖引玉,希望你可以根据需要来作出相应的改进。

'*************************************************

'程序名称:CanSetValueDatagridTextbox

'功能说明:继承自datagridtextboxcolumn类的列样式,主要实现显示值与实际值的显示与更新            

'参数说明:无

'返回值  :cansetvaluedatagridtextbox

'编写人员:闵峰

'日期时间:2005-06-16上午
'遗留问题:点击列标题排序会发生显示值的改变,这是一个bug吗?有待解决

'************************************************

Public Class cansetvaluedatagridtextbox

    Inherits System.Windows.Forms.DataGridTextBoxColumn

#Region " Windows 窗体设计器生成的代码 "

    Public Sub New()

        MyBase.New()

        '该调用是 Windows 窗体设计器所必需的。

        InitializeComponent()

        '在 InitializeComponent()

[1] [2] [3] [4] [5] [6] [7] [8] 下一页

在google里搜索更多类似BOOLEAN列的DATAGRIDTEXTBOX的改进与重写

Google
Web www.51ec.org
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
我来说两句 对此文章发表了评论
  昵 称: *必填    ·注册用户·
  评 分: 1分 2分 3分 4分 5分     严禁发表危害国家安全、政治、黄色淫秽等内容的评论,用户需对自己在使用本网站服务过程中的行为承担法律责任。本站管理员有权保留或删除评论内容,评论内容只代表机友个人观点,与本网站立场无关。  
评 论
内 容

 
评论列表 (最新 评论仅限网友观点!)

供求信息




| 设为首页 | 加入收藏 | 关于我们 | 广告服务 | 联系方式 | 友情链接 | 版权申明