【ASP.NET】求助!在JS中对Spread赋值。
使用版本是:SPREAD for ASP.NET 7.0在修改某个单元格内容时,需要将该行最后一列的单元格赋值,当做标志位使用。最后一列的Locked = True。
由于数据量很大,使用了虚拟翻页。
JS代码如下:
function spdService_DataChanged(e) {
var cell;
cell = e.spread.GetCellByRowCol(e.row, 50);
cell.removeAttribute("FpCellType");
e.spread.SetValue(e.row, "99999", true);
cell.setAttribute("FpCellType", "readonly");
}
在第一页时,JS的赋值方法可以正确的使用,但翻到第二页时,【cell.removeAttribute("FpCellType");】这句出错了,提示cell=null。
请问在使用虚拟翻页的情况下,我如何在JS中,对Locked = True的单元格赋值? 回复 1楼dlerror的帖子
从出错显示cell不存在,这个线索出发:
最快的办法是,打个断点调试一下:当翻到第二页时候,当前Sheet总Row、Column是多少。
cell = e.spread.GetCellByRowCol(e.row, 50);
回复 2楼roger.wang的帖子
总记录数1813行,虚拟翻页每页显示30行,列数没有变化,一直是51列。
翻到第二页,修改单元格后,e.row是35,但是页面显示的只有30行,
cell = e.spread.GetCellByRowCol(e.row, 50);
这句得到的cell就是null了。
在JS中,有没有其他的方法,修改Locked = Ture的单元格的内容? 回复 3楼dlerror的帖子
在js中,是根据页面html内容进行操作的,如果只有30行,操作第35行,则会获取不到Cell,报1#楼的错误了。
1 什么情况下触发了DataChanged js事件的?
2 能给提供一个简易demo吗? 回复 4楼roger.wang的帖子
<FarPoint:FpSpread ID="spdSodatu" runat="server" ActiveSheetViewIndex="0" BorderColor="Black" BorderStyle="Solid" BorderWidth="1px" currentPageIndex="0" Height="100%" Width="100%" TabIndex="5" DesignString="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;&lt;Spread /&gt;">
<commandbar backcolor="Control" buttonfacecolor="Control" buttonhighlightcolor="ControlLightLight" buttonshadowcolor="ControlDark">
<Background BackgroundImageUrl="SPREADCLIENTPATH:/img/cbbg.gif"></Background>
</commandbar>
<sheets>
<FarPoint:SheetView DesignString="" SheetName="Sheet1">
</FarPoint:SheetView>
</sheets>
<ClientEvents DataChanged="spdService_DataChanged" />
<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>
</FarPoint:FpSpread>
这是Spread,<ClientEvents DataChanged="spdService_DataChanged" />这样调用JS方法,单元格输入内容,焦点离开后,触发JS。
demo有点麻烦,我试试。 回复 4楼roger.wang的帖子
Visual Studio 2012 + SPREAD for ASP.NET 7.0 + IE9
不好意思,我们使用的是日文系统,demo没有工程文件,只有页面的前台和后台的代码。
在第一或第二列输入数字,第三列自动赋值“99999”,而且第三列的Locked = True。
使用了虚拟翻页,每页显示30行,第一页没有问题,第二页出现了问题。
麻烦版主帮忙看一下。 回复 6楼dlerror的帖子
谢谢您提供的demo,问题定位了。
初步判断是个bug,我要提交问题到产品团队。
给您造成的不便,再次深表抱歉。 回复 6楼dlerror的帖子
还需要您再配合一下,您用的 SPREAD for ASP.NET 7.0 是英文版本还是日文版。
完整的版本号是多少? 回复 8楼roger.wang的帖子
日文版,版本号:7.0.4001.2010
谢谢版主帮忙! 回复 9楼dlerror的帖子
好的,知道了。 谢谢您的配合。
正在和产品团队沟通,还请您理解。
页:
[1]
2