2011-12-19 42 views
0

我是一名新的ASP.NET開發人員。我需要在每行中創建具有不同數量單元格的表,因此如何在C#中執行此操作?如何以編程方式在每行中以不同數量的單元格創建表格?

我使用Google搜索,但無法找到關於此問題的明確有用資源。

+2

您想如何查看結果? – 2011-12-19 19:36:32

+0

需要更多信息。聽起來就像你需要使用中繼器,並在邏輯上構建它,但沒有足夠的數據提供給你正確的評估你的問題。 – Tony 2011-12-19 19:37:09

+0

您可以發佈您想要在表格中顯示的示例數據集嗎?另外,你是否希望較短的行伸展爲與較長的行相同的寬度,或者在較短的行的右側有空白空間? – pseudocoder 2011-12-19 19:42:35

回答

1

這是我在我的項目之一做:

private void AddBalancingLine(String balDescription, Decimal balAmount) 
{ 
    TableRow tr = new TableRow(); 
    tr.Height = Unit.Pixel(17); 
    tblDetailLines.Rows.Add(tr); 

    tr.Cells.Add(newCell("")); 
    tr.Cells.Add(newCell("")); 
    tr.Cells.Add(newCell("")); 
    tr.Cells.Add(newCell(balDescription, HorizontalAlign.Left, "normalFont", 8)); 
    tr.Cells.Add(newCell(nullAmount(balAmount), HorizontalAlign.Right, "normalFont", 2)); 
} 

tblDetailLines是其被添加行System.Web.UI.WebControls.Table。該newCell函數重載與幾個簽名取決於您希望如何創建單元:

private TableCell newCell(String cellText) 
{ 
    return newCell(cellText, HorizontalAlign.Right, "normalFont"); 
} 

private TableCell newCell(String cellText, HorizontalAlign alignment, String cssClass) 
{ 
    return newCell(cellText, alignment, cssClass, 1); 
} 

private TableCell newCell(String cellText, HorizontalAlign alignment, String cssClass, Int32 colSpan) 
{ 
    TableCell tc = new TableCell(); 
    tc.Text = cellText; 
    tc.HorizontalAlign = alignment; 
    tc.VerticalAlign = VerticalAlign.Top; 
    tc.CssClass = cssClass; 
    tc.ColumnSpan = colSpan; 
    return tc; 
} 

最後newCell方法是在最後兩個調用用來tr.Cells.Add的主要功能之一 - 這個可以讓你指定單元格的ColumnSpan。這個表有13列:

  • 3空白
  • 1跨越8列(介紹)
  • 1跨越2個欄 (量)

總計爲13列。

在創建不同的行以獲得不同的佈局時調整colSpan參數。

(對於非常敏銳,對nullAmount功能格式化餘額,佔0量的抑制。)

0

你可以爲你的細胞指定列跨度,我寫了一個小例子來告訴你如何獲得一個2行的表格,第一個表格包含2個單元格,第二個表格包含4個單元格:

Dim table As new Table 'Here is your table defined in markup, i declared to show an example 
Dim row1 As new tablerow 
Dim row2 As new tablerow 
Dim cel1 As new TableCell With {.Text="row1 cel 1"} 
Dim cel2 As new TableCell With {.Text="row1 cel 2"} 
Dim cel3 As new TableCell With {.Text="row2 cel 1"} 
Dim cel4 As new TableCell With {.Text="row2 cel 2"} 
Dim cel5 As new TableCell With {.Text="row2 cel 3"} 
Dim cel6 As new TableCell With {.Text="row2 cel 4"} 

cel1.ColumnSpan=2 
cel2.ColumnSpan=2 
row1.Cells.AddRange({cel1,cel2}) 
row2.Cells.AddRange({cel3,cel4,cel5,cel6}) 
table.Rows.AddRange({row1,row2}) 
相關問題