找回密码
 立即注册

QQ登录

只需一步,快速开始

wangyiwangyi

中级会员

16

主题

68

帖子

696

积分

中级会员

积分
696
wangyiwangyi
中级会员   /  发表于:2016-11-2 15:29  /   查看:7654  /  回复:11
本帖最后由 wangyiwangyi 于 2016-11-2 15:32 编辑

如上图已经实现自定义控件加载到单元格,(我参照:http://blog.gcpowertools.com.cn/ ... E%A7%E4%BB%B6-.aspx

现有以下二个问题:
1、读取控件多选值(取得的数据值需要保存到数据库)
     官方论坛的帖子查询未果,麻烦提供一个DEMO。自定控件取值。
2、查看状态下只看到值,双击显示下拉(与FarPoint.Web.Spread.ComboBoxCellType 效果)


现效果是: 有输入框。

FarPoint.Web.Spread.ComboBoxCellType效果是:

11 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-11-2 17:20:48
沙发
您好,可否把您的demo发过来,这样处理起来更快一些
回复 使用道具 举报
wangyiwangyi
中级会员   /  发表于:2016-11-3 14:07:34
板凳
dexteryao 发表于 2016-11-2 17:20
您好,可否把您的demo发过来,这样处理起来更快一些

因工程文件较大且包含EXT内容,我只发控件对应文件,你加入你工程中即可,页面后台调用如下:
ManualReportNew.rar (173.73 KB, 下载次数: 213)
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-11-3 17:29:20
地板
您好,我这里仍在调试,明天给您答复。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-11-4 16:31:34
5#
您好,由于时间关系,我这里简单实现了下您的需求,具体细节您还需要修改下。

  1.             TestWebControlInCell usercontrol = new TestWebControlInCell();
  2.             usercontrol.SpreadClientID = FpSpread1.ClientID;
复制代码
  1. [Serializable]
  2.     public class TestWebControlInCell : FarPoint.Web.Spread.GeneralCellType
  3.     {
  4.         public string SpreadClientID { get; set; }

  5.         public override Control GetEditorControl(string id, TableCell parent, FarPoint.Web.Spread.Appearance style, FarPoint.Web.Spread.Inset margin, object value, bool upperLevel)
  6.         {
  7.             Table table = new Table();
  8.             table.CellPadding = 0;
  9.             table.CellSpacing = 0;
  10.             table.BorderStyle = BorderStyle.None;
  11.             table.BorderWidth = new Unit(0, UnitType.Pixel);
  12.             table.Width = new Unit(100, UnitType.Percentage);

  13.             TableRow row = new TableRow();

  14.             TableCell cell = new TableCell();
  15.             cell.VerticalAlign = VerticalAlign.Middle;
  16.             cell.HorizontalAlign = HorizontalAlign.Left;
  17.      
  18.             OrgCommBox buc = (OrgCommBox)parent.Page.LoadControl("OrgCommBox.ascx");
  19.             buc.SpreadClientID = this.SpreadClientID;
  20.             //buc.ID = "NewID" + parent.ID;
  21.             cell.Controls.Add(buc);
  22.             row.Cells.Add(cell);

  23.             table.Rows.Add(row);

  24.             return table;
  25.         }
  26. }
复制代码

  1. <script>
  2.     $(function () {
  3.         var activeRow, activeCol;

  4.         var mutipSel = $('#ms').change(function () {

  5.             //   console.log($(this).val());
  6.         }).multipleSelect({
  7.             width: '100%',
  8.             onClose: function () {

  9.                 var spread = document.getElementById("<%=SpreadClientID %>");
  10.                 var texts = mutipSel.data('multipleSelect').getSelects("text")


  11.                 spread.Cells(activeRow, activeCol).SetValue(texts);

  12.                 console.log($('#ms').val());
  13.             },
  14.             onOpen: function () {
  15.                 var spread = document.getElementById("<%=SpreadClientID %>");
  16.                 activeRow = spread.ActiveRow;
  17.                 activeCol = spread.ActiveCol;
  18.                 var values = spread.GetValue(activeRow, activeRow).split(",");
  19.               //  var texts = mutipSel.data('multipleSelect').setSelects(values)
  20.                
  21.             }

  22.         });
  23.     });
  24. </script>
复制代码

回复 使用道具 举报
wangyiwangyi
中级会员   /  发表于:2016-11-7 10:19:42
6#
GetEditorControl方法是为了在编辑模式下弹出下拉选择,但现在的效果是 blob22658995.png ,下拉多选显示异常。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-11-7 11:48:28
7#
应该是 多选框那里的代码没执行。您吧 $(function () { 方法换成 setTimeout试试
回复 使用道具 举报
wangyiwangyi
中级会员   /  发表于:2016-11-29 11:42:05
8#
本帖最后由 wangyiwangyi 于 2016-11-29 11:43 编辑

$(function () { 方法换成 setTimeout还是不行,
根据我发的DEMO,请给我提供一个简单的下拉多选择功能实现赋值与取值的例子。本需求我想很多人会用到,麻烦你们的技术提供一个完整的DEMO,谢谢!
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-11-29 17:35:30
9#
制作完整Demo会需要一些时间,我处理完后给您答复。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-12-13 14:03:04
10#
请看附件

demo.zip

4 KB, 下载次数: 192

评分

参与人数 1满意度 +5 收起 理由
wangyiwangyi + 5 很给力!

查看全部评分

回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部