2010-04-22 36 views
1

我的代碼如下。我想在TableCell的(細胞之間加空格) 東西在TableCell中添加空格BETWEEN單元格()

<td></td>&nbsp;&nbsp;<td></td> 

相當於我不是在尋找的cellpadding或CELLSPACING因爲他們都在左側單元格邊框和左表格邊框(牆)之間添加空間;我想在兩個CELLS之間添加空格,而不是表格和單元格;

protected void Page_Init(object sender, EventArgs e) 
{ 
    Table tb = new Table(); 
    tb.ID = "tb1"; 

    for (int i = 0; i < iCounter; i++) 
    { 
     TableRow tr = new TableRow(); 
     TextBox tbox = new TextBox(); 
     tbox.ID = i.ToString(); 

     TableCell tc = new TableCell(); 
     tc.Controls.Add(tbox); 
     tr.Cells.Add(tc); 
     tb.Rows.Add(tr); 
    } 
    pnlScheduler.Controls.Add(tb); 
} 

任何想法?

+0

這聽起來像你正在尋找對於正確cellspacing ... – 2010-04-22 15:00:30

+0

但cellspacing添加左邊的左邊的單元格和左表之間的空間我不想要; – user279521 2010-04-22 15:01:20

+0

看到我的答案下面 - 嘗試添加一個「子」表與單元格間距 – 2010-04-22 15:03:23

回答

1

另一種可能是這個(我修改你的代碼,並添加一個標籤,你可以添加備用每一個「tc.Controls.Add(TBOX);」

protected void Page_Init(object sender, EventArgs e) 
{ 
    Table tb = new Table(); 
    tb.ID = "tb1"; 

    for (int i = 0; i < iCounter; i++) 
    { 
     TableRow tr = new TableRow(); 
     TextBox tbox = new TextBox(); 
     TextBox tLabel = new Label(); 
     tbox.ID = i.ToString(); 

    tLabel.width = 10; 

     TableCell tc = new TableCell(); 
     tc.Controls.Add(tbox); 
    tc.Controls.Add(tLabel); 
     tc.Controls.Add(tbox); 
    tc.Controls.Add(tLabel); 
     tc.Controls.Add(tbox); 
    tc.Controls.Add(tLabel); 
     tr.Cells.Add(tc); 
     tb.Rows.Add(tr); 
    } 
    pnlScheduler.Controls.Add(tb); 
} 
+0

這是一個很好的解決方案。非常感謝 – user279521 2010-04-23 11:27:06

0

您可以隨時添加所需的「空」單元格。

0

爲了給表格單元格之間的空間,我們必須使用表格的cellpadding和cellspacing屬性。

<表CELLSPACING = 「1」 CELLPADDING = 「2」 > < /表>

< TABLE CELLSPACING = 「X」 >

在線的X,被替換的數目你想要的單元格之間的像素。

< TABLE CELLPADDING =「X」 >

在線的X,被替換爲所需的文本和小區邊緣之間的像素的數量。

0

當您準備好使用此間距添加兩個單元格時,請改爲創建一個表格;有一排和兩個TD的類似:

<table cellspacing="2"><tr><td>stuff</td><td>more stuff></td></tr></table> 
+0

你能轉換成代碼隱藏的語法,就像我有我的示例代碼?問題是我似乎無法添加HTML腳本到我的tc.Controls.Add(tbox);語法 – user279521 2010-04-22 15:07:28

+0

嘗試yourcontrol.InnerHtml + =「我的代碼在這裏」; – 2010-04-22 19:12:11

3

試試這個:

TableCell tc = new TableCell(); 
    HtmlGenericControl div = new HtmlGenericControl("div"); 
    div.Style.Add("padding-left", "5px"); 
    div.Style.Add("padding-right", "5px"); 

    div.Controls.Add(tbox); 

    tc.Controls.Add(div); 
    tr.Cells.Add(tc); 
    tb.Rows.Add(tr); 
+0

您提供的代碼在單元格和表格之間添加填充。不是我在找什麼; – user279521 2010-04-22 15:17:05

+0

對不起,我已經使用正確的答案編輯帖子,請查看 – alejandrobog 2010-04-22 15:37:11

+0

我試過了你的代碼。沒有文本框出現。 – user279521 2010-04-22 15:52:20

0

應用的左邊界表中的TD(除了最後一個每行中)。 你可以通過指定一個通用類,或者通過應用一個只將margin設置爲最後一個td的類來實現。

你可以使用jQuery或者注入margin,但是通過css來做只是更乾淨。

1

*編輯

我道歉的保證金,我不認爲這是可能的利潤,但是我還是能夠創建可應用於中間細胞CSS給他們雙方的左填充和右側。

,但要解決的事實,第一個和最後一個元素不推了對錶的牆上,你必須在類僅適用於中間TD的

的CSS代碼示例

table 
{ 
border:1px solid black; 
border-collapse: collapse; 
table-layout: fixed; 
} 
td.middle 
{ 
border:1px solid black; 
padding-left: 20px; 
padding-right: 20px; 
} 

,然後你的中間運輸署將與<td class="middle"></td>

但創建這種類型的代碼轉換爲C#我不能完全肯定轉換。我將繼續研究如何將這個類應用於特定的元素,但最好的辦法是創建一個標誌來檢查元素,以確保它們不是表中的第一個或最後一個元素,除非您添加他們手動然後你只需要手動添加類。

但是,我可能會建議,如果這是用於頁面佈局,那麼最好讓css爲您做好工作,而不是使用表格設計。但如果是以表格格式顯示數據,那麼別介意,我什麼也沒說。

希望這會有所幫助。將發佈,如果我找到其他東西。

+0

你能提供一個示例語法,我可以在codebehind塊中使用嗎? – user279521 2010-04-22 15:08:32

+0

@ user279521對於長時間的回覆感到抱歉,出去吃午飯。如果你去http://www.w3schools.com/css/css_reference.asp和http://www.w3schools.com/css/pr_margin-left.asp他們解釋表中的不同元素。也http://www.w3.org/TR/CSS2/tables.html給你一個全面的表設計。我將很快發佈一個代碼作爲例子。 – 2010-04-22 17:16:09

+0

@ user279521發佈的代碼可以根據需要進行更改。 – 2010-04-22 18:37:49