找回密码
 立即注册

QQ登录

只需一步,快速开始

flycatki

论坛元老

3

主题

12

帖子

5039

积分

论坛元老

积分
5039

活字格认证

最新发帖
flycatki
论坛元老   /  发表于:2012-9-14 14:04  /   查看:8705  /  回复:10
在spread外面有一个行追加按钮,每次追加后焦点都要在最后一行的第一个单元格上,但是第一列恰好是按钮类型。
使用类似代码焦点无法设置过去,一直在第一个行的那个按钮上
            Me.sp.ActiveSheetView.SelectionModel.ClearSelection()
            Me.sp.ActiveSheetView.ActiveRow = Me.sp.ActiveSheetView.RowCount - 1
            Me.sp.ActiveSheetView.ActiveColumn = 0
不知道这种问题有没有解决办法

10 个回复

倒序浏览
flycatki
论坛元老   /  发表于:2012-9-14 14:06:00
沙发
使用的是spread for asp.net 5.0
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-9-14 19:21:00
板凳
回复 2楼flycatki的帖子

你好,下面是我的实现方法:
后台:

  1.         protected void Button1_Click(object sender, EventArgs e)
  2.         {
  3.             this.FpSpread1.Sheets[0].RowCount++;
  4.             this.FpSpread1.Sheets[0].SelectionModel.ClearSelection();
  5.             this.FpSpread1.Sheets[0].ActiveRow = this.FpSpread1.Sheets[0].RowCount - 1;
  6.             this.FpSpread1.Sheets[0].ActiveColumn = 0;
  7.             this.FpSpread1.Sheets[0].Cells[this.FpSpread1.Sheets[0].ActiveRow, this.FpSpread1.Sheets[0].ActiveColumn].BackColor = System.Drawing.Color.Red;
  8.         }
复制代码

前台获取当前活跃单元格:

  1.     <script language="javascript" type="text/javascript">
  2. // <![CDATA[

  3.         function Button2_onclick() {
  4.             var spread = this.document.getElementById("<%=FpSpread1.ClientID %>");
  5.             alert("当前活跃单元格为行"+spread.ActiveRow+"列"+spread.ActiveCol);
  6.         }

  7. // ]]>
  8.     </script>
复制代码
回复 使用道具 举报
flycatki
论坛元老   /  发表于:2012-9-17 16:23:00
地板
请问iceman,你的0列的单元格类型是button么,如果是textbox我这里也没有问题。
回复 使用道具 举报
flycatki
论坛元老   /  发表于:2012-9-17 16:25:00
5#
还有就是单元格虽然是激活了,但是网页上对按钮会有个默认的焦点,所以我的焦点还是不能到达新增加行的那个按钮单元格上。
非常感谢回答
回复 使用道具 举报
flycatki
论坛元老   /  发表于:2012-9-17 16:36:00
6#
还想问个相关的问题。
EditModePermanent 我这个属性没有设置,默认是false,所以网页上不是直接可以编辑的,如果想得焦点后自动切换到编辑状态,服务器端代码是否能实现呢。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-9-17 18:30:00
7#
回复 6楼flycatki的帖子

你好,这是我关于 button 列焦点问题的 Demo ,请参考:
6035.zip (18.34 KB, 下载次数: 657)
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-9-17 18:45:00
8#
还想问个相关的问题。
EditModePermanent 我这个属性没有设置,默认是false,所以网页上不是直接可以编辑的,如果想得焦点后自动切换到编辑状态,服务器端代码是否能实现呢。
flycatki 发表于 2012-9-17 16:36:00

可以通过前台方法实现,代码如下:
  1.     <script language="javascript" type="text/javascript" id="FpSpread1_Script0">
  2.                 function FpSpread1_ActiveCellChanged(event){
  3.                     //Add code to handle your event here.
  4.                     var spread = this.document.getElementById("<%=FpSpread1.ClientID %>");
  5.                     spread.StartEdit();
  6.                 }
  7.         </script>
复制代码
回复 使用道具 举报
flycatki
论坛元老   /  发表于:2012-9-18 11:26:00
9#
非常感谢回答
我测试了下提供的demo,和我的现象基本一样,只能激活单元格,实际单元格内的按钮是无法得到焦点的,也就是说在激活某个单元格的情况下,直接点击空格键是无法触发按钮的click事件的,请问版主还有什么好的解决方案能实现这个问题么,再次感谢
回复 使用道具 举报
flycatki
论坛元老   /  发表于:2012-9-18 17:33:00
10#
又想到个办法,不适用ButtonCellType,准备使用LabelCellType,但是怎么在这种类型的cell上增加客户端按钮事件呢,因为没有onClientClick的接口,求解,谢谢
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部