找回密码
 立即注册

QQ登录

只需一步,快速开始

[已处理] spread清空

simonshen
论坛元老   /  发表于:2012-7-23 09:30:00
11#
因为我的需要是一个文本框里的值发生改变的时候,spread里的内容全部清空。现在我按照您的代码来做,我修改文本框里的值,但是文本框里的值没有发生改变,而spread却全部清空了
回复 使用道具 举报
simonshen
论坛元老   /  发表于:2012-7-23 16:02:00
12#
DEMO有6MB,没办法上传,能临时给我个上传权限吗?

ASP.NET.part01.rar

1.07 MB, 下载次数: 387

回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-7-23 16:28:00
13#
回复 12楼simonshen的帖子

我目前的解决方法是在页面添加 HiddenField ,记录每次 keyDown 事件按键,然后赋值给 textbox。不过,有个缺陷,keyCode 为数值型,我还没有找到把数值转换为 char 的方法。把方法提供给楼主:

  1. <html xmlns="http://www.w3.org/1999/xhtml">
  2. <head runat="server">
  3.     <title></title>
  4.     <script language="javascript" type="text/javascript">
  5.         
  6.         function funkeydown() {

  7.             for (var i = 0; i < 3; i++) {
  8.                 for (var j = 0; j < 4; j++) {
  9.                     FpSpread1.SetActiveCell(i, j);
  10.                     FpSpread1.Clear();
  11.                 }
  12.             }
  13.             var textbox = this.document.getElementById("Text1");
  14.             textbox.focus();
  15.             //赋值
  16.             var keepwords = this.document.getElementById("HiddenField1");
  17.             textbox.value = keepwords.value;
  18.         }

  19.         function keepwords() {
  20.             //记录按键值
  21.             var keepwords = this.document.getElementById("HiddenField1");
  22.             keepwords.value += keepwords.String();
  23.         }
  24.     </script>
  25. </head>
  26. <body onkeydown="keepwords()">
  27.     <form id="form1" runat="server">
  28.     <div>
  29.         <FarPoint:FpSpread ID="FpSpread1" runat="server" BorderColor="Black" BorderStyle="Solid"
  30.             BorderWidth="1px" Height="200" Width="400">
  31.             <CommandBar BackColor="Control" ButtonFaceColor="Control" ButtonHighlightColor="ControlLightLight"
  32.                 ButtonShadowColor="ControlDark">
  33.             </CommandBar>
  34.             <Sheets>
  35.                 <FarPoint:SheetView SheetName="Sheet1">
  36.                 </FarPoint:SheetView>
  37.             </Sheets>
  38.         </FarPoint:FpSpread>
  39.         <input id="Button1" type="button" value="button" onclick="return Button1_onclick()" />
  40.         <input onkeydown="funkeydown()" id="Text1" type="text" />
  41.         <asp:HiddenField ID="HiddenField1" runat="server" />
  42.     </div>
  43.     </form>
  44. </body>
  45. </html>
复制代码
回复 使用道具 举报
simonshen
论坛元老   /  发表于:2012-7-27 17:09:00
14#
var FpSpread1 = document.getElementById('<%=vaSpread1.ClientID%>');
                var totCount = FpSpread1.totalRowCount;
                if (totCount != null &amp;&amp; totCount != 0) {
                    for (var i = 0; i < totCount; i++) {
                        FpSpread1.SetActiveCell(i, 0);

                    }
您好,用您提供的代码以后虽然生效,但是当行数比较多的时候速度特别的慢,网页非常卡,有没有快速一点的方法?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-7-27 17:51:00
15#
回复 14楼simonshen的帖子

您好,不好意思,我目前没找到更好的办法解决该问题。
回复 使用道具 举报
simonshen
论坛元老   /  发表于:2012-7-31 10:03:00
16#
后续有一个问题,有一个spread是需要隐藏的,因此我在外面套了一个DIV,设置display=none,可是再运行

  FpSpread1.SetActiveCell(i, 0);
这句JS时,报JS错误,错误信息是对象不支持该方法,请问有办法解决吗?感谢
回复 使用道具 举报
simonshen
论坛元老   /  发表于:2012-7-31 10:57:00
17#
不好意思,已经解决,我将层隐藏的CSS改为 <div style="position: absolute; opacity: 0; filter:Alpha(opacity=0); ">
解决了问题,感谢帮助
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-7-31 19:41:00
18#
回复 17楼simonshen的帖子

你好,不必客气,问题解决就好。
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部