找回密码
 立即注册

QQ登录

只需一步,快速开始

jesseroy

新手上路

1

主题

2

帖子

27

积分

新手上路

积分
27
  • 25

    金币

  • 主题

  • 帖子

最新发帖
jesseroy
新手上路   /  发表于:2013-2-26 20:11  /   查看:5589  /  回复:4
首先DataTable的是检索Oracle后所得的DataTable。
将DataTable作为Spread的dataSource。
问题:如果DataTable中
列1的值为“1”则对应的Spread的列1的显示结果为“有”。
列1的值为“0”,则对应的Spread的列1的显示结果为“无”。
如何实现以上功能?

4 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-2-27 12:02:00
沙发
可以通过自定义CellType实现该功能,代码如下:
  1.     protected void Page_Load(object sender, EventArgs e)
  2.     {
  3.         if (!IsPostBack)
  4.         {
  5.             DataTable dt = new DataTable();
  6.             dt.Columns.Add("ID");
  7.             dt.Columns.Add("Col1");
  8.             dt.Columns.Add("Col2");
  9.             dt.Columns.Add("Col3");

  10.             dt.Rows.Add(10, 0, 12, 13);
  11.             dt.Rows.Add(11, 1, 12, 13);
  12.             dt.Rows.Add(12, 1, 12, 13);
  13.             dt.Rows.Add(13, 0, 12, 13);

  14.             // 在绑定数据源的时候,不自动设置列的CellType
  15.             FpSpread1.ActiveSheetView.DataAutoCellTypes = false;
  16.             FpSpread1.DataSource = dt;

  17.             FpSpread1.ActiveSheetView.Columns[1].CellType = new CCellType();
  18.         }
  19.     }

  20.     /// <summary>
  21.     /// 自定义CellType,将 0 显示为“无”,将 1 显示为“有”
  22.     /// </summary>
  23.     [Serializable]
  24.     public class CCellType : FarPoint.Web.Spread.TextCellType
  25.     {
  26.         public override Control PaintCell(string id, TableCell parent, FarPoint.Web.Spread.Appearance style, FarPoint.Web.Spread.Inset margin, object value, bool upperLevel)
  27.         {
  28.             if (value != null)
  29.             {
  30.                 // 将 0 显示为“无”,将 1 显示为“有”
  31.                 if (value.ToString() == "0")
  32.                 {
  33.                     value = "无";
  34.                 }
  35.                 else
  36.                 {
  37.                     value = "有";
  38.                 }
  39.             }

  40.             return base.PaintCell(id, parent, style, margin, value, upperLevel);
  41.         }
  42.     }
复制代码
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-2-27 12:04:00
板凳
更多 Spread 产品使用文章,可访问我们的产品博客:http://blog.gcpowertools.com.cn/
回复 使用道具 举报
jesseroy
新手上路   /  发表于:2013-2-27 17:13:00
地板
非常感谢楼上朋友的回复,今天我试验了下,其实在Oracle的SQL语句内对‘0’,‘1’的值列进行Decode()就可以实现,毕竟最后的检索结果直接作为Spread的DataSource。不过我还是要学会楼上您的那种方法。3Q
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-2-27 18:13:00
5#
你采用SQL语句来实现该功能也很方便。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部