找回密码
 立即注册

QQ登录

只需一步,快速开始

chcchb
论坛元老   /  发表于:2011-12-26 14:00  /   查看:5879  /  回复:8
页面上会用到2个spread表格,在后台定义时 代码如下

  1. case "1"
  2.         Dim cb1 As New FarPoint.Web.Spread.CheckBoxCellType()
  3.         Dim cb2 As New FarPoint.Web.Spread.CheckBoxCellType()
  4.         cb1.OnClientClick = "postback(this,'1')"
  5.         cb2.OnClientClick = "selected(this,'1')"
  6.         sheet.ColumnHeader.Cells(1, 0).CellType = cb1
  7.         sheet.Columns(COL_OWNER_SELECT).CellType = cb2
  8. case else
  9.         Dim cb1 As New FarPoint.Web.Spread.CheckBoxCellType()
  10.         Dim cb2 As New FarPoint.Web.Spread.CheckBoxCellType()
  11.         cb1.OnClientClick = "postback(this,'2')"
  12.         cb2.OnClientClick = "selected(this,'2')"
  13.         sheet.ColumnHeader.Cells(1, 0).CellType = cb1
  14.         sheet.Columns(COL_OWNER_SELECT).CellType = cb2
复制代码
页面js如下:
  1. function postback(obj, str) {
  2.             var spread, btnRemove;

  3.             switch (str) {
  4.                 case "1":
  5.                     spread = document.getElementById("FpSpread1");
  6.                     btnRemove = document.getElementById("btnA");
  7.                     break;
  8.                 case "2":
  9.                     spread = document.getElementById("FpSpread2");
  10.                     btnRemove = document.getElementById("btnB");
  11.                     break;        
  12.             }
  13.             if (obj.checked) {
  14.                 obj.checked = false;
  15.                 btnRemove.className = "ctlButtonNot";
  16.                 btnRemove.disabled = true;
  17.                 for (var i = 0; i < spread.GetRowCount(); i++) {
  18.                     spread.SetValue(i, 0, "false", true);
  19.                 }
  20.             }
  21.             else {
  22.                 obj.checked = true;
  23.                 btnRemove.className = "ctlButton";
  24.                 btnRemove.disabled = false;
  25.                 for (i = 0; i < spread.GetRowCount(); i++) {
  26.                     spread.SetValue(i, 0, "true", true);
  27.                 }

  28.             }
复制代码

后台在FpSpread_UpdateCommand中又重新把datatable放入到对应的spread绑定了一边,没有出现全选以及按钮样式改变的效果

8 个回复

正序浏览
chcchb
论坛元老   /  发表于:2011-12-26 16:13:00
9#
单元格的id有规律,这个是知道的。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2011-12-26 15:58:00
8#

回复 7# chcchb 的帖子

您好,不知道我们使用的方法是否相同?这个帖子中是我取 Spread 单元格 ID 的方法,并且,单元格的 ID 生成是有规律可循的:http://gcdn.grapecity.com/showtopic-2853.html
回复 使用道具 举报
chcchb
论坛元老   /  发表于:2011-12-26 15:50:00
7#
现在通过取解析完后id能取到了。就是好繁琐啊,后面一个页面要用到6个。。js要写死人了。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2011-12-26 15:27:00
6#

回复 2# chcchb 的帖子

关于 2# 的问题,在把 Spread 拖拽到 Page 上时,Spread 在客户端的 ID 已经生成,可以在 IDE 中查看 Spread ID,如果您指的是 Spread 单元格的 ID ,目前只有通过这种办法去取了。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2011-12-26 15:24:00
5#

回复 4# chcchb 的帖子

chcchb  您好,不好意思,关于 按钮样式改变 我没能重新您的问题,能否发个重现问题的 Demo 到论坛调试呢?
回复 使用道具 举报
chcchb
论坛元老   /  发表于:2011-12-26 15:10:00
地板
asp.net的标准控件
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2011-12-26 15:00:00
板凳

回复 1# chcchb 的帖子

chcchb  你好,针对 JS 代码进行了修改,请检查一下您的逻辑:

  1.         function postback(obj, str) {
  2.             var spread;
  3.             spread = document.getElementById("FpSpread1");
  4.             if (obj.checked) {
  5.                 obj.checked = true;
  6.                 for (var i = 0; i < spread.GetRowCount(); i++) {
  7.                     spread.SetValue(i, 0, "true", true);
  8.                 }
  9.             }
  10.             else {
  11.                 obj.checked = false;
  12.                 for (i = 0; i < spread.GetRowCount(); i++) {
  13.                     spread.SetValue(i, 0, "false", true);
  14.                 }
  15.                 FpSpread1.UpdatePostbackData();
  16.                 FpSpread1.CallBack("Update");
  17.                  }
  18.             }
复制代码
2.请问您的 button 是 Spread ButtonCellType 还是 ASP.NET 标准控件?
回复 使用道具 举报
chcchb
论坛元老   /  发表于:2011-12-26 14:43:00
沙发
前台处理只能是按照解析完的代码中去根据getElementById("xxx") 来设置吗?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部