2014-03-06 159 views
1

試圖更改數值的字體顏色,但出現錯誤:輸入字符串不是正確的格式。更改數值的字體顏色C#

EG碼:

DataTable dt = PDSData.getPDSBndl(bndlId, 'N'); 
string qty = "<font color='red'><i><b>" + dt.Rows[i]["qty"].ToString() + "</b></i></font>"; 
dt.Rows[i]["qty"] =Convert.ToInt32(qty); //@ this line Getting error. 

我試圖將字符串轉換成int,但是沒有希望。

+0

請不要使用'',它甚至在HTML4中也是過時的。改爲使用'>''。 – Dai

+0

你如何展示這一點?通過gridview或Div? –

+0

你想在標籤或任何其他控件中顯示數字值? – Shirish

回答

2

你不能把像bgfbgb56ngfngn這樣的東西解析爲int。 dataTable本身只包含數據,沒有格式信息。

您需要更改視圖(ASP.NET WebForm或剃鬚刀視圖,無論您使用什麼)來處理顯示。

+0

所以如果我想改變'qty'變量的顏色,我該怎麼做。實際上是對其他變量實施相同的,它的工作正常,但不適用於qty變量。 – Lalita

+0

您無法更改變量的顏色。您可以在風格信息被推薦的地方渲染變量。要回答「我怎麼能做到這一點」,你已經證明沒有足夠的信息。您至少需要展示如何呈現視圖 – Sascha

+0

將數據表綁定到中繼控件 rpt.DataSource = dt; rpt.DataBind(); – Lalita

0

兩個問題:

  1. 你的變量數量絕不會是一個整數,因爲你是將HTML代碼添加到它。
  2. 您不能將字體設置應用於變量。你可以在你使用的UI元素上做到這一點。
0

字符串數量持有像'<font color='red'><i><b>" + dt.Rows[i]["qty"].ToString() + "</b></i></font>' &你想投進去INT32是無效刺值。如果數量是持有像「9」或「10」字符串值,它會轉換它,但在你的情況下,它會給出錯誤。使用Int32.TryParse檢查字符串是否正確& in out參數,如果tryparse返回true,您將獲得轉換後的值。

+0

在數據庫中,qty的類型是integer.and某些原因我需要改變數量的顏色。所以我將字體標籤附加到字符串並試圖將其放入數據表中 – Lalita

+0

將整數本身插入數據庫中,同時在屏幕上呈現或顯示期望的字體和顏色,或者在數據庫中保存額外的字符串字段以存儲字體顏色該整數。 –

0

如果您希望它顯示在gridview中,請在設計中進行管理。 如果您有條件設置顏色,則在網格視圖的itemdatabound事件中進行管理。

1

正如你在通過評論
suscha的回答提到「綁定到數據表Repeater控件rpt.DataSource = DT; rpt.DataBind(); - user1676709」
您正在使用中繼器,那麼你可以這樣做...

<span style="font-weight:bold;font-style:italic;color:#ff0000;"><%# Eval("qty") %></span>