Spread ASP.NET 17
Spread for ASP.NET 17 Product Documentation / Developer's Guide / Customizing the Appearance / Customizing the Appearance of Rows and Columns / Creating Row Templates (Multiple-Line Columns)
In This Topic
    Creating Row Templates (Multiple-Line Columns)
    In This Topic

    You can create row templates, also called aggregation subtotals or multiple-line columns. You can display multiple lines within a column, such as to display address information together in one column that involves multiple fields of information.

    Row Template (multiple-line columns) Example

    In this figure, the ID and name information appear staggered in a single column and the street address and city information appear in the same column.

    The parts of the API that are involved with this feature include:

    The worksheet template contains a column header template and a row template. Layout information such as cell spans, column count, and row count is stored in the worksheet template.

    This feature has the following effects on other features:

    The following code example creates this image.

    Row Template (multiple-line columns) Example

    Using Code

    1. Set the LayoutMode property for the sheet.
    2. Set the template to the WorksheetTemplate property for the sheet.
    3. Set the ColumnCount property for the template.
    4. Set the row count for the column header template and the row template.
    5. Set the cell spans for the column header and row templates.
    6. Create data for the cells.
    7. Use the DataIndex property to put data in the cell.

    Example

    This example assigns a layout mode for the column headers.

    C#
    Copy Code
    protected void Page_Load(object sender, System.EventArgs e)
    {
    if (this.IsPostBack) return;
    FpSpread1.ActiveSheetView.LayoutMode = FarPoint.Web.Spread.SheetView.LayoutModeType.RowTemplateLayoutMode;
    FarPoint.Web.Spread.WorksheetTemplate template1 = FpSpread1.Sheets[0].WorksheetTemplate;
    template1.ColumnCount = 3;
    template1.ColumnHeaderTemplate.RowCount = 2;
    template1.RowTemplate.RowCount = 2;
    template1.LayoutColumns[1].Width = 250;
    //Set row template's layout
    template1.RowTemplate.LayoutCells[1, 1].ColumnSpan = 2;
    //set column header template's layout
    template1.ColumnHeaderTemplate.LayoutCells[0, 0].RowSpan = 2;
    template1.ColumnHeaderTemplate.LayoutCells[1, 1].ColumnSpan = 2;
    DataTable dt = new DataTable();
    dt.Columns.Add("ProductID");
    dt.Columns.Add("ProductName");
    dt.Columns.Add("Region");
    dt.Columns.Add("Date");
    dt.Columns.Add("Description");
    dt.Rows.Add(new object[] { 21, "Computer", "China", "2010/1/1", "Using newest display adapter" });
    dt.Rows.Add(new object[] { 36, "Notebook", "Vietnam", "2010/6/1", "Dell" });
    dt.Rows.Add(new object[] { 13, "Hard disk", "Taiwan", "2011/1/1", "Speed is 7200" });
    FpSpread1.Sheets[0].DataSource = dt;
    template1.LayoutCells[0, 0].DataIndex = 0;
    template1.LayoutCells[1, 0].DataIndex = 1;
    template1.LayoutCells[0, 1].DataIndex = 2;
    template1.LayoutCells[0, 2].DataIndex = 3;
    template1.LayoutCells[1, 1].DataIndex = 4;
    }
    
    VB
    Copy Code
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    If (IsPostBack) Then
        Return
    End If
    FpSpread1.ActiveSheetView.LayoutMode = FarPoint.Web.Spread.SheetView.LayoutModeType.RowTemplateLayoutMode
    Dim template1 As FarPoint.Web.Spread.WorksheetTemplate = FpSpread1.Sheet(0).WorksheetTemplate
    template1.ColumnCount = 3
    template1.ColumnHeaderTemplate.RowCount = 2
    template1.RowTemplate.RowCount = 2
    template1.LayoutColumns(1).Width = 250
    'Set row template's layout
    template1.RowTemplate.LayoutCells(1, 1).ColumnSpan = 2
    'set column header template's layout
    template1.ColumnHeaderTemplate.LayoutCells(0, 0).RowSpan = 2
    template1.ColumnHeaderTemplate.LayoutCells(1, 1).ColumnSpan = 2
    Dim dt As New DataTable()
    dt.Columns.Add("ProductID")
    dt.Columns.Add("ProductName")
    dt.Columns.Add("Region")
    dt.Columns.Add("Date")
    dt.Columns.Add("Description")
    dt.Rows.Add(New Object() {21, "Computer", "China", "2010/1/1", "Using newest display adapter"})
    dt.Rows.Add(New Object() {36, "Notebook", "Vietnam", "2010/6/1", "Dell"})
    dt.Rows.Add(New Object() {13, "Hard disk", "Taiwan", "2011/1/1", "Speed is 7200"})
    FpSpread1.Sheets(0).DataSource = dt
    template1.LayoutCells(0, 0).DataIndex = 0
    template1.LayoutCells(1, 0).DataIndex = 1
    template1.LayoutCells(0, 1).DataIndex = 2
    template1.LayoutCells(0, 2).DataIndex = 3
    template1.LayoutCells(1, 1).DataIndex = 4
    End Sub
    

    Using the Spread Designer

    1. Select the Settings menu.
    2. Select the Row Template icon under the Other Settings section.
    3. Set the various template properties.
    4. Click OK.
    5. Click Apply and Exit to close the Spread Designer.
    See Also