前几天写程序时遇到了一个很简单的小问题,就是我的数据在SQL Server中用char型存储是否置顶的信息,如果大于等于1表示该信息置顶,是0则表示未置顶。当然在dataGrid中显示时是不能显示0或者1的,而是要显示“未置顶”或“置顶”。

        开始我希望在DataGrid中的ItemDataBind事件中解决这个问题,即遍历DataGrid中所有该列的字段的值,如果大于等于1就让这个项的label值为“置顶”,否则就显示“未置顶”。但是不知为什么效果不理想,一直未能显示(我猜测是否是当时我的数据库内的数据有问题),无奈之下先清空了数据库中的垃圾数据然后参考同事的代码用了下面的方法:

         首先让改列转换为模板列,然后点击鼠标右键选择“编辑模板列”,在Item Template中放一个label,然后查看这个label的属性,选择“数据”里的DataBindings,在“可绑定属性”中选择text,然后选择“自定义绑定表达式”,加入下面的代码Convert.ToInt32(DataBinder.Eval(Container, "DataItem.ToTop").ToString().Trim())>0?"置顶":"未置顶"

         其实原理和我一开始的方法一样,都是在数据绑定时读取绑定的ToTop字段的值,然后将其转换为int型,并判断是否大于0,如果大于0就显示“置顶”,否则显示“未置顶”。

         这样只要通过一行代码就可以实现这个功能了,而且有类似的功能只要对其中的语句内容稍微修改一下即可。其实这是非常简单的一个小功能,在这里只想把这行代码显示一下,留作自己以后所需和其他初学.net的朋友们参考一下。^_^