【问题标题】:How Can I create a custom binding for a SpreadJs datagrid to align a defined column?如何为 SpreadJs 数据网格创建自定义绑定以对齐定义的列?
【发布时间】:2017-10-18 21:39:11
【问题描述】:

当我为我的 SPreadJs 网格创建一个新列时,我没有看到任何属性来对齐我的列。例如:

var nameColInfo = { name: "Name", displayName: "Name", size: "150", resizable: true };

我想向我的网格添加一个名为 align 的新自定义绑定。像这样的

var nameColInfo = { name: "Name", displayName: "Name", size: "150", resizable: true, **align: right** };

我不知道这是否已经由其他人完成。如果没有,我将感谢您的帮助。我不想循环遍历我的数据网格,逐行对齐我需要的每个单元格。

【问题讨论】:

    标签: javascript datagrid spreadjs


    【解决方案1】:

    列对齐是通过 CSS 完成的。

      [data-column="Name"] {
          text-align: right;
      }
    

    另一个选择是使用 cssClass 属性,我们已经有一个名为 align-right 的类名。 cssClass: "align-right" 或者您可以使用您自己的 CSS 类来设置对齐方式,例如: cssClass: "myStyle";

    希望这会有所帮助。

    【讨论】:

    • 我认为这在画布对象上是不可能的
    • @LuisMi 不知道你的意思。问题是关于 Spread.Views 产品而不是 Spread.Sheets (使用画布渲染)
    • 我正在使用 Spread.Sheets,它在 html 上呈现为画布。我忘了写那个对不起。这就是我无法使用数据列标签的原因。我尝试使用 cssClass: "align-right" 但什么也没发生。我不确定我是否做错了什么
    • 您的代码似乎与 SJS.Sheets 无关。您能否通过电子邮件向我们的技术支持发送您所遇到的更完整的示例。在 SJS.Sheets 中,您可以将单元格格式应用于可以是整个列的整个范围,因此您不必一个接一个地遍历单元格。
    【解决方案2】:

    这就是我解决问题的方法

            // setting horizontal alignment of Col B to left
            sheet.getRange(-1, 1, -1, 1, GC.Spread.Sheets.SheetArea.viewport).hAlign(GC.Spread.Sheets.HorizontalAlign.left);
            // setting vertical alignment of Col B to top
            sheet.getRange(-1, 1, -1, 1, GC.Spread.Sheets.SheetArea.viewport).vAlign(GC.Spread.Sheets.VerticalAlign.top);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-13
      • 1970-01-01
      • 2013-08-11
      • 1970-01-01
      • 1970-01-01
      • 2019-11-06
      • 1970-01-01
      • 2015-05-27
      相关资源
      最近更新 更多