找回密码
 立即注册

QQ登录

只需一步,快速开始

dapsjj
初级会员   /  发表于:2016-11-18 10:58  /   查看:4058  /  回复:5
本帖最后由 dapsjj 于 2016-11-18 12:56 编辑

spread的ComboBox如何获取dataset中的数据显示到下ComboBox中?写了个方法:
  1. private void getProdNameList()
  2.         {
  3.             string sql = "SELECT prodName FROM prod";
  4.             try
  5.             {
  6.                 connPCDB = cp.GetConString();
  7.                 SqlHelper sh = new SqlHelper(connPCDB);
  8.                 DataSet ds = sh.ExecuteDatasetSQL(sql);
  9.                 ComboBox comboBox = grdMain.ActiveSheet.Columns[2].XXXXX;//想给spread的第三列(下标为2)的列赋值dataset中的数据这一行要怎么写?另外这个getProdNameList()方法要写到页面的Load方法里还是构造方法里?
  10.                 comboBox.Items.Clear();
  11.                 for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
  12.                 {
  13.                     comboBox.Items.Add(ds.Tables[0].Rows[i][0]);
  14.                 };
  15.             }
  16.         }
复制代码





5 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-11-18 13:45:43
沙发
使用ComboBoxCellType


  1.             var comboCellType = new ComboBoxCellType();
  2.             comboCellType.Items = new string[3];
  3.             fpSpread1.ActiveSheet.Columns[2].CellType = comboCellType;
复制代码
回复 使用道具 举报
dapsjj
初级会员   /  发表于:2016-11-18 13:59:05
板凳
  1. private void getProdNameList()
  2.         {
  3.             string sql = "SELECT prodName FROM prod";
  4.             try
  5.             {
  6.                 connPCDB = cp.GetConString();
  7.                 SqlHelper sh = new SqlHelper(connPCDB);
  8.                 DataSet ds = sh.ExecuteDatasetSQL(sql);
  9.                
  10.                 FarPoint.Win.Spread.CellType.ComboBoxCellType cb = new FarPoint.Win.Spread.CellType.ComboBoxCellType();
  11.                 string[] prodNameList = DataSetToArray(ds);
  12.                 cb.Items = prodNameList;
  13.                 grdMain.ActiveSheet.Columns[2].CellType = cb;
  14.             }
  15.         }
  16.                
  17.                 private string[] DataSetToArray(DataSet ds)
  18.         {
  19.             int i = 0;
  20.             int NumLength = 0;
  21.             string[] returnArray = new string[ds.Tables[0].Rows.Count];

  22.             DataRow foundRows = ds.Tables[0].Rows[ds.Tables[0].Rows.Count - 1];
  23.             NumLength = foundRows[0].ToString().Length;

  24.             foreach (DataRow dr in ds.Tables[0].Rows)
  25.             {
  26.                 returnArray[i] = dr[0].ToString();
  27.                 i++;
  28.             }
  29.             return returnArray;
  30.         }
复制代码

这样写就显示出来了,您看看我这个写法是否有问题?还有就是怎么能让combobox的下拉列表的向下箭头不显示,在点击这个单元格的时候才显示下拉箭头,不想显示成下图这样。
2016-11-18_135631.png
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-11-18 14:30:18
地板
代码没有问题。
没有属性可以隐藏button,那个是默认的。

评分

参与人数 1满意度 +5 收起 理由
dapsjj + 5 赞一个!

查看全部评分

回复 使用道具 举报
dapsjj
初级会员   /  发表于:2016-11-18 14:45:52
5#
dexteryao 发表于 2016-11-18 14:30
代码没有问题。
没有属性可以隐藏button,那个是默认的。

谢谢您!
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-11-18 15:26:03
6#
不客气
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部