找回密码
 立即注册

QQ登录

只需一步,快速开始

X765321

银牌会员

31

主题

99

帖子

3742

积分

银牌会员

积分
3742

活字格认证

X765321
银牌会员   /  发表于:2012-6-2 18:34  /   查看:7803  /  回复:6
环境:spread 4 + vs2008
新建web窗体添加FpSpread1和FpSpread2两个控件后
服务端:
protected override void Render(HtmlTextWriter writer)
{
        Table htbHtmlTable = FpSpread1.FindControl("viewport") as Table;
        htbHtmlTable.Attributes.Add("ondblclick", "cell_doubleclick()");
        base.Render(writer);
}
客户端:
    <script type="text/javascript">
        function cell_doubleclick() {
            FpSpread2.Add();
        }
    </script>

双击FpSpread1中的单元格,行并不增加,如果在FpSpread2.Add();语句前添加FpSpread2.focus();语句后行增加,何故?

6 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2012-6-4 11:25:00
沙发
回复 1楼X765321的帖子

X765321 你好,
确实如此,在一个 Spread1 中调用另一个 Spread2 添加行方法,我们需要先设置 Spread 获得焦点,如果楼主希望焦点仍然在 Spread1 中,可以使用以下代码设置:

  1.         function cell_doubleclick() {
  2.             FpSpread2.focus();
  3.             FpSpread2.Add();
  4.             FpSpread1.focus();
  5.         }
复制代码
回复 使用道具 举报
X765321
银牌会员   /  发表于:2012-6-4 11:43:00
板凳
为什么会产生这个问题,spread4还有哪些已知类似的问题,这样才能避免开发过程中问题的出现,谢谢。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-6-4 12:17:00
地板
回复 3楼X765321的帖子

不好意思,具体原因目前不明。并且,类似问题还没有具体的列表,遇到具体问题楼主可以提交到论坛,我们一同解决。
回复 使用道具 举报
X765321
银牌会员   /  发表于:2012-6-4 13:08:00
5#
谢谢。。。但愿以后少遇到占这种问题。。。
回复 使用道具 举报
X765321
银牌会员   /  发表于:2012-6-4 15:05:00
6#
回复 2楼iceman的帖子

我做了一些测试,可能找到原因了。假定一个aspx页面中有speaad a和spread b,那么在spread a的服务端所有事件中,只能对当前spread a进行更改方面的操作,对spread b的更改操作将无法回传给客户端,从而导致客户端对spread b的更改无法响应。现在想问的是spread b如何把在服务端所做的更改回传给客户端,spread是否提供这样的方法?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-6-4 18:46:00
7#
回复 6楼X765321的帖子

X765321 你好,请使用以下代码测试:

  1.         protected override void Render(HtmlTextWriter writer)
  2.         {

  3.             WebControl update = this.FpSpread1.FindControl(&quot;Update&quot;) as WebControl;

  4.             update.Attributes.Add(&quot;onclick&quot;, ClientScript.GetPostBackEventReference(FpSpread1, &quot;Update,-1,-1&quot;) + &quot;; return false;&quot;);

  5.             base.Render(writer);

  6.         }
  7.         protected void FpSpread1_UpdateCommand1(object sender, FarPoint.Web.Spread.SpreadCommandEventArgs e)
  8.         {
  9.             this.FpSpread2.Sheets[0].Cells[0, 0].BackColor = System.Drawing.Color.Red;
  10.         }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部