找回密码
 立即注册

QQ登录

只需一步,快速开始

vincent_lee

注册会员

3

主题

18

帖子

151

积分

注册会员

积分
151
最新发帖

[已处理] sperad动态增加

vincent_lee
注册会员   /  发表于:2016-10-18 10:29  /   查看:11965  /  回复:26
1。如何实现spread的动态增加?
2。如何定义动态的spread变量名称?

26 个回复

倒序浏览
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-10-18 14:14:45
沙发
您好,
需求已收到,在同一Page中添加多个Spread,并进行动态命名,Demo正在验证中,明天给您答复。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-10-19 08:52:51
板凳
您好,您看下附件Demo。
运行SaveTemplate.aspx点击按钮保存模板,
然后运行OpenTemplate.aspx动态加载

AddSpreadWithXML.zip (12.82 MB, 下载次数: 216)
回复 使用道具 举报
vincent_lee
注册会员   /  发表于:2016-10-19 09:20:06
地板
dexteryao 发表于 2016-10-19 08:52
您好,您看下附件Demo。
运行SaveTemplate.aspx点击按钮保存模板,
然后运行OpenTemplate.aspx动态加载

您好 Demo里定义的spread1 和 spread2 这个spread 变量的名称可以是动态的吗?因为抽出数据的件数是未知的,每条数据对应一个spread 显示出来的
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-10-19 10:20:57
5#
明白您的意思了

您可以在循环中生成spread 然后添加就好了

  1.             var list = new string[3] { "spread1", "spread2", "spread2" };
  2.             for (int i = 0; i < list.Length; i++)
  3.             {
  4.                 var spread = new FarPoint.Web.Spread.FpSpread();
  5.                 spread.Open(Server.MapPath("template.xml"));
  6.                 spread.Height = 300;
  7.                 spread.ActiveSheetView.Cells[0, 0].Value = list[i];
  8.                 form1.Controls.Add(spread);
  9.             }
复制代码
回复 使用道具 举报
vincent_lee
注册会员   /  发表于:2016-10-19 13:00:51
6#
dexteryao 发表于 2016-10-19 10:20
明白您的意思了

您可以在循环中生成spread 然后添加就好了

您好,循环动态创建spread 完成 谢谢!
那么另外一个问题 点击保存按钮循环取得上面动态生成的spread 数据并更新到数据库该如何实现?
回复 使用道具 举报
vincent_lee
注册会员   /  发表于:2016-10-19 13:52:17
7#
dexteryao 发表于 2016-10-19 10:20
明白您的意思了

您可以在循环中生成spread 然后添加就好了

这个是在spread 里增加一个sheet?
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-10-19 14:08:50
16#
这个Demo是动态添加spread,不是再spread中动态添加sheet

需要获取数据从congrol 中取spread就好了。
  1.         protected void Button1_Click(object sender, EventArgs e)
  2.         {
  3.             foreach (var control in form1.Controls)
  4.             {
  5.                 if (control is FarPoint.Web.Spread.FpSpread)
  6.                 {
  7.                     var spread = control as FarPoint.Web.Spread.FpSpread;
  8.                     var data = spread.ActiveSheetView.Cells[0, 0].Value;
  9.                 }
  10.             }
  11.         }
复制代码



回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-10-19 14:10:22
17#
如果您需要不用每次手动点击保存spread数据,可以做如下修改,再点击按钮自动提交所有spread修改。

  1.     <form id="form1" runat="server">
  2.         <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" OnClientClick="updateSpreads()" />
  3.     </form>
  4.     <script>
  5.         function updateSpreads() {
  6.             <% for (int i = 0; i < this.spreadsIDs.Count; i++) %>      
  7.             <% { Response.Write(this.spreadsIDs[i] + ".Update();"); }%>
  8.         }
  9.     </script>
复制代码

  1.         public List<string> spreadsIDs { get; set; }
  2.         protected void Page_Load(object sender, EventArgs e)
  3.         {
  4.             spreadsIDs = new List<string>();
  5.             var list = new string[3] { "spread1", "spread2", "spread3" };
  6.             for (int i = 0; i < list.Length; i++)
  7.             {
  8.                 var spread = new FarPoint.Web.Spread.FpSpread();

  9.                 spread.Open(Server.MapPath("template.xml"));
  10.                 spread.Height = 300;
  11.                 spread.ActiveSheetView.Cells[0, 0].Value = list[i];
  12.                 form1.Controls.Add(spread);
  13.                 spreadsIDs.Add(spread.ClientID);
  14.             }
  15.         }
复制代码
回复 使用道具 举报
vincent_lee
注册会员   /  发表于:2016-10-20 14:54:58
18#
dexteryao 发表于 2016-10-19 08:52
您好,您看下附件Demo。
运行SaveTemplate.aspx点击按钮保存模板,
然后运行OpenTemplate.aspx动态加载

您好,动态增加的spread 在pageload的时候 如何在form里进行删除操作?
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部