找回密码
 立即注册

QQ登录

只需一步,快速开始

Helen
高级会员   /  发表于:2015-11-6 16:22:00
11#
回复 10楼一萧一剑的帖子

依然无法重现,现在代码如下,烦请发一个可以重现的Demo给我们,谢谢!
string[] strMoneyText;
            strMoneyText = new String[] { "RMB NO VAT", "USD", "EUR", "HKD" };
            string[] strMoneyValue;
            strMoneyValue = new String[] { "RMB", "USD", "EUR", "HKD" };
            FarPoint.Web.Spread.ComboBoxCellType cbMoney = new FarPoint.Web.Spread.ComboBoxCellType(strMoneyText, strMoneyValue);
            //显示下拉框
            cbMoney.ShowButton = true;
            FpSpreadGV.ActiveSheetView.Columns[3].CellType = cbMoney;


            FpSpreadGV.DataSource = dt;
            FpSpreadGV.DataBind();
            this.FpSpreadGV.ActiveSheetView.PageSize = 50;

            this.Response.Write(this.FpSpreadGV.ActiveSheetView.Cells[52,3].Value);
回复 使用道具 举报
一萧一剑
中级会员   /  发表于:2015-11-6 16:48:00
12#
还有一个和你说明一下,我后台查询数据的时候Columns[3]的值都是Null,
而你是直接赋值的 ,可能的问题点在这里。因为用户进人这个界面,可能只导入了其中1,2行数据(币种也就只有2行的数据,其他为Null),
然后再点击保存,如果分页设50条记录,那么50条以后的数据会报错。50条记录可以获取界面上下拉框的默认值,50条以后的都是Null
for (int i = 0; i < 60; i++)
            {
                dt.Rows.Add(i.ToString(),i.ToString(),i.ToString(),"RMB",i.ToString(),i.ToString(),i.ToString(),i.ToString(),i.ToString(),i.ToString(),i.ToString(),i.ToString(),i.ToString());
            }
技术改变世界
回复 使用道具 举报
一萧一剑
中级会员   /  发表于:2015-11-6 16:54:00
13#
我已经把"RMB"改为null 了你试一下看看
for (int i = 0; i < 60; i++)
            {
                dt.Rows.Add(i.ToString(),i.ToString(),i.ToString(),null,i.ToString(),i.ToString(),i.ToString(),i.ToString(),i.ToString(),i.ToString(),i.ToString(),i.ToString(),i.ToString());
            }
技术改变世界
回复 使用道具 举报
Helen
高级会员   /  发表于:2015-11-6 17:27:00
14#
回复 13楼一萧一剑的帖子

您这个代码将DataTable第四列值都赋值为null了,然后进行数据绑定,获取对应单元格的Value,当然应该是null.........
烦请发一个可以正确重现的Demo给我们,谢谢!
回复 使用道具 举报
一萧一剑
中级会员   /  发表于:2015-11-9 08:56:00
15#
问题是把第四列都赋值为null,然后数据绑定,获取对应单元格的Value,在当前页的值不是null,
你测试一下,如分页设置50,然后后台获取第4列值,前50条不是null,50以后的才是null,这是什么原因?因为绑定的时候datatable的值是所有值,为什么当前页50条会不是null,50以后是null?
技术改变世界
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-11-9 17:52:00
16#
回复 15楼一萧一剑的帖子

通过以下代码获取的都是null值:

  1.         protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             if (IsPostBack)
  4.             {
  5.                 return;
  6.             }

  7.             DataTable dt = new DataTable();
  8.             dt.Columns.Add("Column1");
  9.             dt.Columns.Add("Column2");
  10.             dt.Columns.Add("Column3",typeof(System.Int32));
  11.             for (int i = 0; i < 60; i++)
  12.             {
  13.                 dt.Rows.Add(i.ToString(), i.ToString(), null);
  14.             }

  15.             this.FpSpreadGV.DataSource = dt;
  16.             this.FpSpreadGV.ActiveSheetView.PageSize = 50;
  17.         }

  18.         protected void FpSpreadGV_UpdateCommand(object sender, FarPoint.Web.Spread.SpreadCommandEventArgs e)
  19.         {

  20.         }

  21.         protected void Button1_Click(object sender, EventArgs e)
  22.         {
  23.             this.Response.Write(this.FpSpreadGV.ActiveSheetView.Cells[52, 2].Value);
  24.             this.Response.Write(this.FpSpreadGV.ActiveSheetView.Cells[2, 2].Value);
  25.         }
复制代码


我想沟通中有些问题还没有提到,明天我会电话和您联系。

评分

参与人数 1满意度 +5 收起 理由
一萧一剑 + 5 谢谢,通过其他方式实现了。

查看全部评分

回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-11-10 13:52:00
17#
回复 16楼iceman的帖子

好的,那本问题关闭了。
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部