找回密码
 立即注册

QQ登录

只需一步,快速开始

zpf290079626

论坛元老

4

主题

24

帖子

1万

积分

论坛元老

积分
11018

活字格认证

最新发帖
zpf290079626
论坛元老   /  发表于:2014-6-16 22:45  /   查看:15871  /  回复:20
后台代码:
我自定义了一个cell的type类型:
//length  为cell的可输入的长度
    public static FarPoint.Web.Spread.Extender.MaskedEditCellType createMinusNumCellType(int length)
    {
        FarPoint.Web.Spread.Extender.MaskedEditCellType numCellType = new FarPoint.Web.Spread.Extender.MaskedEditCellType();
        numCellType.Editor.BorderWidth = 0;
        numCellType.ShowEditor = true;
        numCellType.MaskType = AjaxControlToolkit.MaskedEditType.Number;
        numCellType.AcceptNegative = AjaxControlToolkit.MaskedEditShowSymbol.Left;
        string value = "9".PadLeft(length, '9');
        numCellType.Mask = ComCheck.NullToZero(value).ToString("#,0");
        numCellType.ClearMaskOnLostFocus = true;
        numCellType.CssClass = "CellTypeNum";
        return numCellType;
    }


前台代码:
        if (col == 22 || col == 23 || col == 24) {
            var zeinukiPrice = spread.GetValue(row, 22).toString().replace(new RegExp(',', 'g'), "");
            var zeinukiPos = spread.GetValue(row, 23).toString().replace(new RegExp(',', 'g'), "");
            var zeinukiDis = spread.GetValue(row, 24).toString().replace(new RegExp(',', 'g'), "");
         
            var taxNum = (Number(zeinukiPrice) + Number(zeinukiPos) + Number(zeinukiDis)) * Number(cmbTax);
            //alert(FormatNumDecMinusForSP(String(taxNum ), "13_0"));
            spread.SetValue(row, 25, FormatNumDecMinusForSP(String(taxNum ), "13_0"), true);
        }


说明: 有一列cell  使用了我自定义的类型   此列为非锁定状态 前台代码实现了自动计算的功能,如果最后计算的数值,也就是taxNum 为正数的话,是没有问题的,但是如果taxNum <0   是负值的话,-号就不会表示在页面上,是不是我自定义的type   有问题?
请版主帮忙看看
如果使用cell.removeAttribute("FpCellType");的方式,显示结果是正常的,不过表格的格式就没有了,相当于我设置的type被清楚了。
请教一下解决的办法。
努力工作!

20 个回复

倒序浏览
zpf290079626
论坛元老   /  发表于:2014-6-16 22:50:00
沙发
我用的是 VS2012  SPREAD7   IE8
努力工作!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-6-17 17:57:00
板凳
回复 2楼zpf290079626的帖子

你好,
感谢你的问题反馈。
问题已经清楚,但是通过当前的代码我们无法重现这个问题。
能否请你把 Demo 发上论坛查看?
回复 使用道具 举报
zpf290079626
论坛元老   /  发表于:2014-6-17 18:47:00
地板
你好  由于工程太大 没办法上传   我就拿了一个页面,您看看能不能明白。

输入正值没有问题,负值带不了负号

DEMO.zip

2.24 KB, 下载次数: 994

努力工作!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-6-19 18:41:00
5#
回复 4楼zpf290079626的帖子

Demo 可以调试,明天反馈进一步结果。
回复 使用道具 举报
zpf290079626
论坛元老   /  发表于:2014-6-19 22:07:00
6#
期待版主的回复  如果是自身的BUG   我就不搞这个问题了  纠结了好几天了
努力工作!
回复 使用道具 举报
zpf290079626
论坛元老   /  发表于:2014-6-20 16:47:00
7#
版主在么?我自己调试了一下,觉得就是spread自身的bug。它忽略了负数的情况。
努力工作!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-6-21 20:48:00
8#
回复 7楼zpf290079626的帖子

抱歉,让你久等了,能否提供 ComCheck.NullToZero(value)方法的实现代码?
“numCellType.Mask = ComCheck.NullToZero(value).ToString("#,0");”

目前缺少这段我没有办法执行。
谢谢
回复 使用道具 举报
zpf290079626
论坛元老   /  发表于:2014-6-22 22:54:00
9#
public static decimal NullToZero(object txtStr)
    {
        decimal ret = 0;
        // Null

        if (IsNull(txtStr) == true)
        {
            ret = 0;
        }
        else
        {
            ret = Convert.ToDecimal(txtStr);
        }
        return ret;
    }



    public static Boolean IsNull(object chkItem)
    {
        bool ret = false;
        if (chkItem == null)
        {
            // Null
            ret = true;
        }
        else
        {
            if (chkItem.ToString().Trim().Equals(""))
            {

                ret = true;
            }
            else
            {

                ret = false;
            }
        }
        return ret;
    }

应该就这些了
努力工作!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-6-23 18:20:00
10#
回复 9楼zpf290079626的帖子

嗯,现在工程可以运行了。
我这边负号当前可以显示,

Untitled.png

我使用的版本是 Spread for ASP.NET 7.0V3 + IE11
请问您的 Spread 版本是?
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部