找回密码
 立即注册

QQ登录

只需一步,快速开始

marrypen

最新发帖
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-1-16 15:51:00
11#
回复 9楼飞时的帖子

飞时

可以参考10楼中的回复,同时,我看你使用 TextBox + Button 的单元格类型,采用的使用方法实现的呢,能和大家分享以下实现方法吗。
回复 使用道具 举报
marrypen
银牌会员   /  发表于:2013-1-16 16:25:00
12#
回复 10楼dof的帖子

好的  我先看看  先谢谢了
回复 使用道具 举报
飞时
论坛元老   /  发表于:2013-1-16 16:45:00
13#
dof 版主您好,非常感谢您,
我的后台代码:
     Grid1.ActiveSheetView.ColumnHeader.Cells[0, (int)Colk.申请单号].ColumnSpan = 2;
        Grid1.ActiveSheetView.Columns[(int)Colk.申请按钮].Width = 20;
        FarPoint.Web.Spread.ButtonCellType btn2 = new FarPoint.Web.Spread.ButtonCellType();
        btn2.Text = "...";
        btn2.CommandName = "AppBtn";
        btn2.OnClientClick = "return ShowApplyCode(this);";
        Grid1.ActiveSheetView.Columns[(int)Colk.申请按钮].CellType = btn2;
我在fpspread初始化的时候,生成的 buttoncelltype,并且加了客户端事件

前台javascript
                    function ShowApplyCode(obj2) {
                        var sp = document.getElementById("Grid1"); //fpspread的id
                        var perid = document.getElementById("txtPerId").value;
                        var cfeeitem = document.getElementById("txtSHJJLID").value;
                        var obj = window.showModalDialog("../Common/CommApplyList.aspx?CFEEITEMCODE=" + cfeeitem + "&CDEPCODE=" + document.all("hidDepId").value + "&CPERCODE=" + perid, "view");
                        if (obj == undefined) {
                            return false;
                        }
                        var arrInfo;
                        if (obj.length > 0) {
                            arrInfo = obj.split("⊥");
                            if (arrInfo.length > 1) {
                                  sp.SetValue(sp.ActiveRow, 6, arrInfo[1],true);
                                  sp.SetValue(sp.ActiveRow, 20, arrInfo[0],true);
                                  sp.Cells(sp.ActiveRow, 6).title = arrInfo[0];
                                  sp.UpdatePostbackData();
                            }
                        }
                        return false;
                    }

在JS中调用弹出界面,并且返回值对fpspread单元格进行赋值。
版主请多多指教,我是刚研究这个。
回复 使用道具 举报
marrypen
银牌会员   /  发表于:2013-1-16 18:48:00
14#
回复 11楼dof的帖子

请问一下  修改的部分只是
//            var spread = document.getElementById("ctl00_Content_FpSpread1");
//            var objchk = document.getElementById("ctl00_Content_FpSpread1_" + event.row + "," + event.col);
            var spread = document.getElementById("FpSpread1");
            var objchk = document.getElementById("FpSpread1_" + event.row + "," + event.col);
这些么   我换成这样以后问题依旧存在
暂时没发现别的修改的地方
回复 使用道具 举报
marrypen
银牌会员   /  发表于:2013-1-16 18:51:00
15#
回复 13楼飞时的帖子

兄弟,你的问题要是解决了的话 回复我一下  我这问题依旧存在  谢谢
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-1-16 19:20:00
16#
回复 13楼飞时的帖子

实现方法类似,主要是通过客户端的click事件来调用另外一个窗体然后返回结果,并设置给spread.
回复 使用道具 举报
飞时
论坛元老   /  发表于:2013-1-17 08:24:00
17#
marrypen 您好,我的情况,这句没有问题
                              sp.SetValue(sp.ActiveRow, 20, arrInfo[0],true);
这句还是不行,postback后就没有了。
                                  sp.Cells(sp.ActiveRow, 6).title = arrInfo[0];
回复 使用道具 举报
marrypen
银牌会员   /  发表于:2013-1-17 09:36:00
18#
回复 17楼飞时的帖子

我没用他这种做法  我用的是objchk.value=""
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-1-17 17:22:00
19#
回复 18楼marrypen的帖子

你在运行10楼的Demo是能重现你的问题吗。如能重现,请告知详细操作步骤,我好调试。

在客户端获取Spread单元格的值,最好用spread.GetValue和spread.SetValue,而不要使用Value或者其它属性。
回复 使用道具 举报
marrypen
银牌会员   /  发表于:2013-1-19 20:33:00
20#
回复 19楼dof的帖子

可以重现  具体步骤就是  先输入一个错误的值  触发datachange之后javascript检测未通过将cell值清空   之后再输入相同的值  不会在触发datachange事件
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部