找回密码
 立即注册

QQ登录

只需一步,快速开始

wangwuliSpread
论坛元老   /  发表于:2014-12-7 15:18  /   查看:10566  /  回复:13
我的需求:增加行的操作,在表格数据的最后增加一空行,并默认当前用户所在的部门,当你默认部门的时候有"下拉例表框"可以让你选择其他部门。

下面是我遇到的两个问题

QQ截图20141207151203.png

下面是我的代码
  /// <summary>
        /// 增加行
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnAddSpRow_Click(object sender, EventArgs e)
        {
            // 增加行自适应高度
            this.CompanyBudgetFpSpread.Height = new Unit(this.CompanyBudgetFpSpread.Height.Value + Convert.ToDouble(21));
            int maxCount = this.CompanyBudgetFpSpread.Sheets[0].RowCount;
            this.CompanyBudgetFpSpread.Sheets[0].AddRows(maxCount, 1);  
            
            DataSet ds=new DataSet();
            // 获取有数据的行数
            int RowCount = this.CompanyBudgetFpSpread.Sheets[0].NonEmptyRowCount;
            if(RowCount>0)
            {
                string ouName = Model.ModuleUtil.GetOUName(this.CurrentUser.LoginID);
                //获取经办人所属部门
                FarPoint.Web.Spread.ComboBoxCellType cmbocell1 = new FarPoint.Web.Spread.ComboBoxCellType();
                cmbocell1.DataSource = SXT.ZHLC.Management.Model.OrgOU.RetSetOUData(this.SiteID,"","");
                cmbocell1.DataTextField = "OUName";
                cmbocell1.DataValueField = "OUID";
                CompanyBudgetFpSpread.ActiveSheetView.Cells[maxCount, 1].CellType = cmbocell1;
      
                // 设置年度
                FarPoint.Web.Spread.ComboBoxCellType cmbocell2 = new FarPoint.Web.Spread.ComboBoxCellType();
                cmbocell2.Items = (new String[] { "2014", "2015", "2016", "2017", "2018", "2019","2020","2021","2022","2023","2024","2025"});
                CompanyBudgetFpSpread.ActiveSheetView.Cells[maxCount, 5].CellType = cmbocell2;

                this.CompanyBudgetFpSpread.ActiveSheetView.Cells[maxCount, 1].Text = ouName;
                this.CompanyBudgetFpSpread.ActiveSheetView.Cells[maxCount, 5].Text = DateTime.Now.Year.ToString();  
            }
            
            this.CompanyBudgetFpSpread.SaveChanges();
        }

13 个回复

倒序浏览
wangwuliSpread
论坛元老   /  发表于:2014-12-8 14:39:00
沙发
this.CompanyBudgetFpSpread.ActiveSheetView.Cells[maxCount, 1].Value= ouName;

.value 也没有用
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-12-8 16:33:00
板凳
回复 2楼wangwuliSpread的帖子

我理解目前有两个问题
1.设置Combo 默认值
2.显示Combo下拉按钮

以下是我的测试代码,实现了上述功能:

  1.             string[] cbstr;
  2.             string[] strval;
  3.             cbstr = new String[] { &quot;One&quot;, &quot;Two&quot;, &quot;Three&quot; };
  4.             strval = new String[] { &quot;1&quot;, &quot;2&quot;, &quot;3&quot; };
  5.             FarPoint.Web.Spread.ComboBoxCellType cb = new FarPoint.Web.Spread.ComboBoxCellType();
  6.             cb.Items = cbstr;

  7.             //显示下拉框
  8.             cb.ShowButton = true;
  9.             FpSpread1.ActiveSheetView.Columns[0].CellType = cb;

  10.             //设置默认值
  11.             FpSpread1.ActiveSheetView.Cells[0, 0].Value = 1;
复制代码


谢谢
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-12-8 16:34:00
地板
回复 2楼wangwuliSpread的帖子

另外,通过 Text 设置,这个 Text 必须是 Comob 选项中某一个值。
回复 使用道具 举报
wangwuliSpread
论坛元老   /  发表于:2014-12-8 16:48:00
5#
王工我这里 CellClick事件不知道为什么触发不了,请问一下需要什么设置什么吗?
回复 使用道具 举报
wangwuliSpread
论坛元老   /  发表于:2014-12-8 16:58:00
6#
/// <summary>
        /// 当用单击spread 单元格时发行该事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void CompanyBudgetFpSpread_CellClick(object sender, SpreadCommandEventArgs e)
        {
            FarPoint.Web.Spread.ComboBoxCellType cmbocell = new FarPoint.Web.Spread.ComboBoxCellType();
            cmbocell.Items = (new String[] { "January", "February", "March", "April", "May", "June" });
            int activeRowIndex = this.CompanyBudgetFpSpread.ActiveSheetView.ActiveRow;
            CompanyBudgetFpSpread.ActiveSheetView.Cells[activeRowIndex, 0].CellType = cmbocell;
        }



我的CellClick代码
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-12-9 13:03:00
7#
回复 6楼wangwuliSpread的帖子

后台 CellClick 事件在设置 AutoPostBack 属性为 true 时才会触发。

如果需要前台点击出发后台事件需要通过 Demo 来实现:

14595_6.zip (7.74 KB, 下载次数: 727)
回复 使用道具 举报
wangwuliSpread
论坛元老   /  发表于:2014-12-9 23:36:00
8#
CellClick 事件怎样获取单击单元格的 位置
我在网上查到内容说 e.Rows; 和 e.Count;  但我在项目中点不出来这个属性
protected void CompanyBudgetFpSpread_CellClick(object sender, SpreadCommandEventArgs e)
        {
e.Rows;
e.Count;
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-12-10 10:15:00
9#
回复 8楼wangwuliSpread的帖子

如果您希望获取当前表单的行数量信息,可以通过以下两个属性:

  1. e.SheetView.Rows.Count
  2. e.SheetView.Rows
复制代码


请问您之前从什么地方查阅 Spread 接口资料?Spread 帮助文档地址:
http://helpcentral.componentone. ... /ASP2/webframe.html

也可以下载离线 PDF 文档:
http://www.componentone.com/newi ... n/SpWinDevGuide.pdf
回复 使用道具 举报
wangwuliSpread
论坛元老   /  发表于:2014-12-10 12:37:00
10#
回复 9楼iceman的帖子

我之前就是在百度上搜索的
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部