如何:创建分层网格

上次修改时间: 2011年6月16日

适用范围: SharePoint Foundation 2010

此帮助主题说明如何创建分层 JS 网格控件。此主题基于如何:创建基本 JS 网格中完成的项目编写。

备注

在以下指令中,您的计算机可能会为部分 Visual Studio 用户界面元素显示不同的名称和位置。您拥有的 Visual Studio 版本和所使用的设置将确定这些元素。

先决条件

  • Microsoft SharePoint Foundation 2010

  • Microsoft Visual Studio 2010

  • Microsoft Visual Studio 2010 中的 SharePoint 开发工具

  • 完成如何:创建基本 JS 网格

备注

虽然无需使用 Visual Studio 2010 即可完成此帮助主题,但可更轻松地使用 Visual Studio 2010 和 Microsoft Visual Studio 2010 中的 SharePoint 开发工具。

创建分层网格

通过调用 EnableHierarchy(DataTable, String, String, Boolean) 创建分层网格。此方法需要一个父键列和一个大纲文本列。如何:创建基本 JS 网格中创建的 GridData.cs 和 GridUtilities.cs 文件中已包含父键列和大纲文本列;现在只需启用层次结构即可。

创建分层网格

  1. 在 Microsoft Visual Studio 2010 中的 SharePoint 开发工具中,打开按照如何:创建基本 JS 网格中的步骤执行操作所创建的 JSGrid 项目。

  2. 打开 JsGridWebPartUserControl.ascx.cs。

  3. 在 Page_Load 方法中,在定义网格控制器后,立即使用 EnableHierarchy(DataTable, String, String, Boolean) 来启用层次结构。

    _grid.JSControllerClassName = "GanttManager";
    gds.EnableHierarchy(null, "HierarchyParentKey", "Title", false);
    

    第一个参数(若不为空)定义一个未筛选的模拟运算表。第二个参数是 GridData.cs 中定义的层次结构父键列 HierarchyParentKey。第三个参数指示哪个列显示层次结构指示器。(在我们的示例中,该列为 Title 列,它也是在 GridData.cs 中定义的。)最后一个参数(如果为 true)指示应将未筛选的模拟运算表向下传递到客户端。为简单起见,此示例不使用未筛选的模拟运算表。

  4. 检查 GridUtilities.cs 中的 HierarchyParentKey 和 Title 的定义。

    打开 GridUtilities.cs。

    在 GridUtilities.cs 中,不应显示 HierarchyParentKey。请记住,列是可见的,而字段是不可见的,这也是为何要确保 HierarchyParentKey 在 GridUtilities.cs 中不可见的原因。

    if (iterator.ColumnName != "Key"
                        && iterator.ColumnName != GridSerializer.DefaultGridRowStyleIdColumnName
                        && iterator.ColumnName != "HierarchyParentKey"
                        && iterator.ColumnName.Substring(0, 5) != "costq"
                        && iterator.ColumnName.Substring(0, 5) != "Quart")
    
  5. 打开 GridData.cs 以查看其中包含的 HierarchyParentKey 和 Title 的定义。

    在 DataTable 方法中添加 Title 和 HierarchyParentKey 列。

    data.Columns.Add(new DataColumn("HierarchyParentKey", typeof(Guid))); // Hierarchial Grid
    data.Columns.Add(new DataColumn("Title", typeof(string)));
    

    在 DataTable 方法中,注意在带数据的 HierarchyParentKey 列和 Title 列中填入的代码。

         // used for the hierarchy grid how-to.
                  dr["Key"] = curKey;
                    if (i % 10 == 0)
                    {
                        parent = curKey;
                        j++;
                    }
                    if (parent.HasValue)
                    {
                        dr["HierarchyParentKey"] = parent.Value;
                    }
                    if (parent == null)
                    {
                        parent = curKey;
                    }
                    dr["Tasks"] = "Task " + j + "." + i % 10;
    

    在此示例中,取模运算符用于为每个主任务创建 10 个小任务。任务编号(如 1.1、1.2 和 1.3)将存储在 Title 列中。

可以在如何:创建基本 JS 网格中找到 GridData.cs 和 GridUtilities.cs 的完整列表。

测试 Web 部件

  1. 在 Visual Studio 中,按 F5 运行项目。

    在运行项目时,会发生部署并且 SharePoint 2010 网站将打开。该 Web 部件将自动添加到 SharePoint 2010 Web 部件库。

  2. 打开并编辑任何 Web 部件页。可以将该 Web 部件添加到任何 Web 部件页。

  3. 单击"插入",再单击"Web 部件",然后从自定义类别中选择"JSWebPart"。该 Web 部件将显示在页面上。

请参阅

引用

EnableHierarchy(DataTable, String, String, Boolean)