2011-02-01 63 views
0
<table style="width: 100%; background-color: #B5C7DE"> 

我有這個表,並想改變背景顏色,如果使用的詮釋,他的服務器是黃色服務器上的SQL連接字符串是不是' pheddv20'asp.net設置表背景色dynamicaly總部設在SQL的ConnectionString

我將c#代碼添加到頁面加載事件來檢查此並運行動態邏輯。連接字符串保存在web.config中,如通常所見...

這種類型的行爲代碼是什麼樣的?

+1

你可以獲取公共屬性的值來設置背景顏色,例如

;」>。爲此,請創建一個名爲BackColor的公共屬性,並在您的加載事件中設置該值。 – Zachary2011-02-01 17:59:59

+0

我假設您已經將runat =「server」和id添加到此表格標記中,以便您可以在頁面加載事件中訪問它。對? – 2011-02-01 18:00:29

回答

1

這是更好地與CSS類,紀念表:

<style type="text/css"> 
.releasedata{background:red} 
.testdata{background:yellow} 
</style> 
<table class='<%= GetTableClassForEnvironment() %>'>...</table> 

在你你後面的代碼會希望添加的方法

protected string GetTableClassForEnvironment() 
{ 
/* 
    parse environment string from web.config using ConfigurationManager.ConnectionStrings 
http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.connectionstrings.aspx 
*/ 
} 

這不是在您的文章,但我猜你想擁有的表以不同的顏色顯示取決於環境(即。調試/發佈/ QA)。你應該看看使用web.config轉換。如果你這樣做,你可以在你的代碼中使用條件編譯語句,而不必依賴web.config解析。所以你的方法變成

protected string GetTableClassForEnvironment() 
{ 
#IF DEBUG 
return "releasedata" 
#ELSE 
return "testdata" 
#END IF 

} 
0

讓你的表runat =「server」,然後你可以在你的代碼後面訪問style屬性。

我可以建議一個替代方案嗎?

dbtablecolor.Text = dbstring == "pheddv20" ? "white" : "yellow"; 

醜陋,絕對是一個黑客,但如果你把風格/母版頁設置,然後你可以使用在整個應用程序相同的風格:

<style> 
.dbdependant 
{ 
    background: <asp:literal runat="server" id="dbtablecolor" />; 
} 
</style> 
<table class="dbdependant"> 
在後面的代碼

然後需要...