2012-08-30 58 views
4

這真是令人沮喪,有一個搜索網站打:如何添加CSS類從代碼到ASP.NET背後

我有一個<asp:table id="questionsTable" runat="server">到我動態添加行和列。 我想添加一個預定義的Cssclass到這些新創建的行和列,但無濟於事。

的行和列設置代碼:

TableRow row = new TableRow(); 
TableCell cell1 = new TableCell(); 
TableCell cell2 = new TableCell(); 
TableCell cell3 = new TableCell(); 
TableCell cell4 = new TableCell(); 
TableCell cell5 = new TableCell(); 

我知道我能做到這一點:

row.Style.Add("width", "80%"); 
row.Style.Add("text-align", "left"); 

cell1.Style.Add("width", "10px"); 
cell2.Style.Add("width", "auto"); 
cell3.Style.Add("width", "75px"); 
cell4.Style.Add("width", "75px"); 
cell5.Style.Add("width", "75px"); 

和它的作品...但它使代碼隱藏文件凌亂。

所以,我已經看到了這一點:

row.Attributes.Add("Class", "rowA"); 

//CSS - in StyleSheet.css 
.rowA 
{ 
    width:80%; 
    text-align:center; 
    background-color:#FCF6CF; 
} 

但它似乎並沒有爲我工作....

但是,如果我看的標記源生成我得到這個奇怪的是

</tr><tr Class="rowA"> 

以上是從所呈現的頁面複製 - 但沒有被採用的CSS ...我知道的CSS是正確的,因爲如果我手動添加它,它正確地應用它。

編輯

對於所有誰在這方面的協助,非常感謝。不幸的是出現了一些問題,並且外部樣式表的鏈接被刪除了。對斯文的讚揚是爲了這個想法。經過漫長的一天,比如今天我可以犯下初學者的錯誤。

再次感謝你

親切的問候

艾登

+2

您是否嘗試過'row.CssClass =「rowA」;' – harry180

+2

當該行的生成html輸出有類時,那麼在html文件中沒有鏈接css文件,或者您在類中存在拼寫錯誤名稱。 –

+1

你確定它沒有被應用?也許它被另一個規則覆蓋了(例如'td')?據我所知,你提供的信息應該可以工作。你有沒有在任何瀏覽器中使用* Firebug *或開發工具欄?您可以在這些工具中看到應用了哪些規則以及什麼被覆蓋。 – Jeroen

回答

5

當行的生成HTML輸出有類,再有就是在HTML文件中未鏈接的css文件,或者你有類名稱的拼寫錯誤。

7

class屬性應該是小寫(XHTML):

row.Attributes.Add("class", "rowA"); 

另外,還要確保你包括在CSS文件頁面呈現您的表格。

+0

是的...... html不區分大小寫 –

+0

我已經刪除了*必須*要*應*。 @AidenStrydom根據你的評論「*一些如何鏈接到樣式表被刪除,我不知道如何*」 - 這不是說我的答案是正確的嗎? – James

1

您的代碼背後沒有任何問題。它的CSS是錯誤的。

請參W3 docs on tables

表的水平佈局不依賴於 細胞的內容;它僅取決於表格的寬度,列的寬度以及邊框或單元格間距。

如果您希望行具有80%的寬度,則應將表寬度設置爲80%。就像這樣:

<asp:table id="questionsTable" runat="server" class="myTable"> 

.rowA 
{ 
    text-align:center; 
    background-color:#FCF6CF; 
} 

.myTable{ 
    width:80%; 
} 
+0

如上面在問題本身中所述,如果那樣的話我無法看到內容,但是我確實......如果我手動添加樣式,它可以正常工作 - 但有趣的是, –