![](/img/trans.png)
[英]How do i set the field widths of a GridView in C# and asp.net from database driven data
[英]In ASP.NET/C#, how do I get data from the database into a CSS stylesheet?
我在 ASP.NET 中有一個類可以從數據庫中檢索與樣式表相關的數據。
免責聲明:我知道這樣做不是最佳選擇,但這是我老師想要的。
我需要創建一個網站,除了標簽之外的所有內容(文本、背景圖像等)都直接來自數據庫。 我的問題是:我無法獲取我的數據並將其直接插入到我的 CSS 樣式表中。
我正在扭轉這樣的事情:
SqlCommand body_bg = new SqlCommand("Select * from image_back where placement='body';", conn);
conn.Open();
SqlDataReader reader = body_bg.ExecuteReader();
while (reader)
bod_back = reader["nom"].ToString();
<body runat="server" style="background-image:url(<%bod_back%>);">
注意:如果直接在 CSS 樣式表中會更好。 但是,我已經嘗試過,但沒有成功。
placement
= BODY (我放置圖像的位置;例如,在這種情況下用於主體背景)nom
= /images/bodyback.jpg有沒有辦法做到這一點?
根據您的代碼,我假設您使用的是 ASP.NET Web 窗體框架。 正如評論中提到的,沒有理由不能創建.aspx
文件來輸出 CSS 樣式表。 雖然 Web 表單默認輸出 HTML(即text/html
),但它可用於輸出 JavaScript、JSON 甚至二進制文件,例如 PNG。
顯然,要創建 CSS 樣式表,您不會想要使用任何輸出 HTML 的自以為是的服務器控件。 而且,為了安全起見,您應該將ContentType
設置為text/css
這樣挑剔的瀏覽器就不會抱怨 MIME 類型不匹配。 但是,除此之外,這應該看起來就像一個普通的 Web 表單頁面。
鑒於此,您的代碼可能如下所示:
免責聲明:這將是偽代碼,因為我沒有准備好測試它的環境,而且我已經好幾年沒有編寫 ASP.NET Web 窗體代碼了。
styles.css.aspx.cs
Response.ContentType = "text/css";
var backgroundRecords = new SqlCommand("select * from image_back;", conn);
var backgroundImages = new Dictionary<string, string>();
conn.Open();
var reader = backgroundRecords.ExecuteReader();
while (reader) {
backgroundImages.Add(
reader["placement"].ToString(),
reader["nom"].ToString()
);
}
BackgroundStyles.DataSource = backgroundImages;
BackgroundStyles.DataBind();
styles.css.aspx
<asp:Repeater id="BackgroundStyles" runat="server">
<ItemTemplate>
<%# Eval("Key") %> {
background-image: url('<%# Eval("Value") %>');
}
</ItemTemplate>
</asp:Repeater>
<link rel="stylesheet" href="styles.css.aspx">
@Page
指令或Page_Load
事件body
)placement
使用CSS類名(例如, .header
)希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.