找回密码
 立即注册

QQ登录

只需一步,快速开始

szpzr
高级会员   /  发表于:2016-7-13 16:59:44
11#
如何调用onUpdateButtonClick() 函数?
回复 使用道具 举报
szpzr
高级会员   /  发表于:2016-7-13 17:16:20
12#
FarPoint.Web.Spread.SheetView sv;
sv = FpSpread1.ActiveSheetView;
sv.AutoPostBack = true;
此代码应放在那个事件?
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-7-13 17:17:50
13#
本帖最后由 dexteryao 于 2016-7-13 17:25 编辑

您可以在前端编辑后自动提交数据,这样就可以获取数据了

<script lang="javascript" type="text/javascript">    window.onload = function () {      var spread1 = document.getElementById("<%=FpSpread1.ClientID %>");      if (document.all) {        // IE      if (spread1.addEventListener) {      // IE9      spread1.addEventListener("EditStopped", onUpdateButtonClick, false);      } else {      // Other versions of IE and IE9 quirks mode (no doctype set)      spread1.onEditStopped = onUpdateButtonClick;      }      }      else {      // Firefox      spread1.addEventListener("EditStopped", onUpdateButtonClick, false);      }      }    </script>
回复 使用道具 举报
szpzr
高级会员   /  发表于:2016-7-13 17:26:24
14#
能捕捉到值了,只能在viewPort.Attributes.Add("onclick", "clickOnSpread()");的onclick事件中。
回复 使用道具 举报
szpzr
高级会员   /  发表于:2016-7-14 07:28:46
15#
老师请帮看下如何修改能使用回车校验输入:
1、后台protected override void Render(HtmlTextWriter writer)
        {
            Table viewPort = this.FpSpread1.FindControl("viewport") as Table;
            viewPort.Attributes.Add("onclick", "clickOnSpread()");
            //viewPort.Attributes.Add("onkeypress", "onUpdateButtonClick()");
            base.Render(writer);
        }
2、前台:
     function clickOnSpread() {
            //alert("单击");
            var spread1 = document.getElementById("<%=FpSpread1.ClientID %>");
            spread1.Update();    // updated to server
            spread1.CallBack("getInfo");
        }
3、后台只能通过单击单元格后能触发校验事件:
   protected void FpSpread1_ButtonCommand(object sender, FarPoint.Web.Spread.SpreadCommandEventArgs e)
        {
            if (e.CommandName == "getInfo")
            {
                FpSpread1.Sheets[0].ColumnHeader.Cells[0, 1].Text = "mingcneg";

                int activeRow = this.FpSpread1.ActiveSheetView.ActiveRow;
                int activeCol = this.FpSpread1.ActiveSheetView.ActiveColumn;
                string cellText = this.FpSpread1.ActiveSheetView.Cells[activeRow, activeCol].Text;
                SqlConnection Sqlcon = new SqlConnection(ConfigurationManager.ConnectionStrings["db_sbglConnectionString"].ConnectionString);
                Sqlcon.Open();
                sqlStr = "Select * From W_Department where DepartmentNo='" + cellText + "'";
                Cmd = new SqlCommand(sqlStr, Sqlcon);
                SqlDataReader Dr = Cmd.ExecuteReader();
                if (Dr.Read())
                {
                    this.FpSpread1.ActiveSheetView.Cells[activeRow, activeCol+1].Text = Dr["DepartmentName"].ToString();
                    ClientScript.RegisterStartupScript(GetType(), "message", "<script>alert('代码正确!');</script>");
                }
                else
                {
                    this.FpSpread1.ActiveSheetView.Cells[activeRow, activeCol + 1].Text = "代码错误!";
                    ClientScript.RegisterStartupScript(GetType(), "message", "<script>alert('代码错误!');</script>");
                }
                Dr.Close ();
                Dr.Dispose ();
                Cmd.Dispose ();
                Sqlcon.Close ();
                Sqlcon.Dispose ();

            }
        }
       此段代码中ClientScript.RegisterStartupScript(GetType(), "message", "<script>alert('代码错误!');</script>");语句为何不执行?
4、前台下列代码只能按回车切换单元格
     //回车键在单元格中切换
        window.onload = function () {
            var spread1 = document.getElementById("<%=FpSpread1.ClientID %>");

            spread1.AddKeyMap(13, false, false, false, function () {

                var ss = spread1;
                ss.MoveToNextCell(true);
            });
        }
       如何完善能在单元格中输入代码按回车后激发校验事件?

回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-7-14 09:10:35
16#
您好,我的意思是在单元格退出编辑状态后提交验证,但是因为是异步提交,所以您RegisterStartupScript没有效果,但是您可以把单元格变成红色,提示用户。

  1.     <script>
  2.         function CheckInput() {
  3.             //alert("单击");
  4.             var spread1 = document.getElementById("<%=FpSpread1.ClientID %>");
  5.             spread1.Update();    // updated to server
  6.             spread1.CallBack("getInfo");
  7.         }


  8.     </script>
  9.     <script lang="javascript" type="text/javascript">
  10.         window.onload = function () {
  11.             var spread1 = document.getElementById("<%=FpSpread1.ClientID %>");
  12.             if (document.all) {        // IE   
  13.                 if (spread1.addEventListener) {      // IE9  
  14.                     spread1.addEventListener("EditStopped", CheckInput, false);
  15.                 } else {      // Other versions of IE and IE9 quirks mode (no doctype set)   
  16.                     spread1.onEditStopped = CheckInput;
  17.                 }
  18.             } else {      // Firefox     
  19.                 spread1.addEventListener("EditStopped", CheckInput, false);
  20.             }
  21.             
  22.             spread1.AddKeyMap(13, false, false, false, function () {
  23.                 var ss = spread1; ss.MoveToNextCell(true);
  24.             });
  25.         }

  26.     </script>
复制代码

  1.                 this.FpSpread1.ActiveSheetView.Cells[activeRow, activeCol].ForeColor = Color.Red;
复制代码
回复 使用道具 举报
szpzr
高级会员   /  发表于:2016-7-14 13:01:27
17#
还是实现不了单元格中输入代码按回车后激发校验事件?
回复 使用道具 举报
szpzr
高级会员   /  发表于:2016-7-14 13:19:13
18#
CheckInput过程能显现吗?
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-7-14 13:32:39
19#
szpzr 发表于 2016-7-14 13:01
还是实现不了单元格中输入代码按回车后激发校验事件?

可以啊,按回车也是结束编辑状态。
回复 使用道具 举报
szpzr
高级会员   /  发表于:2016-7-14 15:03:44
20#
可以了,谢谢!谢谢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部