找回密码
 立即注册

QQ登录

只需一步,快速开始

一萧一剑

中级会员

30

主题

70

帖子

650

积分

中级会员

积分
650

活字格认证微信认证勋章元老葡萄

一萧一剑
中级会员   /  发表于:2016-11-15 11:42  /   查看:3254  /  回复:5
在源代码调试模式下JS是有效的,23列单元格填写价格 失去焦点会计算得出总价,写在24列里面。程序发布后,23列填写价格失去焦点后,JS不执行连alert("TE")都不会弹出信息。请问是什么原因引起的呢?


<script language="javascript" type="text/javascript" id="FpSpread1_Script0">
     function FpSpread1_EditStopped(event) {
         //Add code to handle your event here.
         alert(" TE ");
         var spread = this.document.getElementById("FpSpreadGV");
         var activecol = spread.GetActiveCol();
         var activeRow = spread.GetActiveRow();
         if (activecol == 23 && spread.GetValue(activeRow, 23).length > 0) {
             var usage = parseFloat(spread.GetValue(activeRow, 5));
             var price = parseFloat(spread.GetValue(activeRow, 23));
             if (usage > 0) {
                 spread.SetValue(activeRow, 24, usage * price, true);
             }
             else {
                 var itemNo = parseFloat(spread.GetValue(activeRow, 0));
                 var rc = spread.GetRowCount();
                 for (var i = 0; i < rc - 1; i++) {
                     var value = parseFloat(spread.GetValue(i, 0));
                     usage = parseFloat(spread.GetValue(i, 5));
                     if (value == itemNo && usage > 0) {
                         spread.SetValue(activeRow, 24, usage * price, true);
                         break;
                     }
                 }
             }
         }
     }
    </script>



5 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-11-15 15:25:29
沙发
您用的是aspnet 吧  
FpSpreadGV 的 ClientID有可能会变,所以建议下面的写法
var spread = this.document.getElementById("<%=FpSpreadGV.ClientID %>");

回复 使用道具 举报
一萧一剑
中级会员   /  发表于:2016-11-15 17:01:11
板凳
dexteryao 发表于 2016-11-15 15:25
您用的是aspnet 吧  
FpSpreadGV 的 ClientID有可能会变,所以建议下面的写法
var spread = this.docume ...

你说的对的,我明天测试一下,应该可以解决了,Thanks.
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-11-15 17:16:00
地板
不客气
回复 使用道具 举报
一萧一剑
中级会员   /  发表于:2016-11-16 10:37:13
7#
dexteryao 发表于 2016-11-15 15:25
您用的是aspnet 吧  
FpSpreadGV 的 ClientID有可能会变,所以建议下面的写法
var spread = this.docume ...

还是不行啊, function FpSpread1_EditStopped(event)这个事件都不进来(源代码调试会进来),
事件进来至少会先弹出 "TE" 显示
   function FpSpread1_EditStopped(event) {
         //Add code to handle your event here.
         alert(" TE ");
}




<FarPoint:FpSpread ID="FpSpreadGV" runat="server" BorderColor="Black" BorderStyle="Solid"
            BorderWidth="1px" Height="510px" Width="100%" ActiveSheetViewIndex="0"
            currentPageIndex="0"
            
            DesignString="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;&lt;Spread /&gt;"
            onbuttoncommand="FpSpreadGV_ButtonCommand"
            oncreatebutton="FpSpreadGV_CreateButton" EnableAjaxCall="False">
<TitleInfo BackColor="#E7EFF7" ForeColor="" HorizontalAlign="Center" VerticalAlign="NotSet"
                Font-Size="X-Large" Font-Bold="False" Font-Italic="False" Font-Overline="False"
                Font-Strikeout="False" Font-Underline="False"></TitleInfo>

            <Pager Font-Bold="False" Font-Italic="False" Font-Overline="False"
                Font-Strikeout="False" Font-Underline="False" />

            <CommandBar BackColor="Control" ButtonFaceColor="Control" ButtonHighlightColor="ControlLightLight"
                ButtonShadowColor="ControlDark">
<Background BackgroundImageUrl="SPREADCLIENTPATH:/img/cbbg.gif"></Background>
            </CommandBar>
                    <ClientEvents EditStopped="FpSpread1_EditStopped" />
            <Sheets>
              
                    DataAutoCellTypes="False" AutoGenerateColumns="False"
                    ColumnHeaderHeight="30" AllowSort="True">
                    <ColumnHeader Height="30" />
                </FarPoint:SheetView>
            </Sheets>
            <HierBar Font-Bold="False" Font-Italic="False" Font-Overline="False"
                Font-Strikeout="False" Font-Underline="False" />
        </FarPoint:FpSpread>
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-11-16 11:54:24
8#
您试试下面的方式

  1. <script lang="javascript" type="text/javascript">
  2. window.onload = function () {
  3.             var spread1 = document.getElementById("<%=FpSpread1.ClientID %>");
  4.             if (document.all) {
  5.                 // IE
  6.                 if (spread1.addEventListener) {
  7.                     // IE9
  8.                     spread1.addEventListener("EditStopped", cellChanged, false);
  9.                 } else {
  10.                     // Other versions of IE and IE9 quirks mode (no doctype set)
  11.                     spread1.onEditStopped  = cellChanged;
  12.                 }
  13.             }
  14.             else {
  15.                 // Firefox
  16.                 spread1.addEventListener("EditStopped ", cellChanged, false);
  17.             }
  18.         }
  19.    
  20.         function cellChanged(event) {
  21.             alert("r"+event.row+",c"+event.col);
  22.         }
  23. </script>
复制代码

评分

参与人数 1满意度 +5 收起 理由
一萧一剑 + 5 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部