Spread for ASP.NET 8.0 Product Documentation > Developer's Guide > Customizing the Appearance > Customizing the Appearance of Rows and Columns > Creating Row Templates (Multiple-Line Columns) |
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.
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.
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 |