2010-08-12 42 views
1

我一直在用我的代碼的string.format搜索互聯網,看起來我無法找到正確的代碼。string.format error

DataColumn dtCol; 
dtCol = new DataColumn("ImagePath", System.Type.GetType("System.String")); 
dtImages.Columns.Add(dtCol); 
dtImages.Columns["ImagePath"].Expression = string.Format("<a href=\"'{0}'+ImageFilename\">View Image</a>", ImageDownloadPath); 

(該映像文件名稱是我的數據庫表中的列) 上面的代碼總是拋出 的錯誤「語法錯誤:缺少操作之前‘<’經營者」

如何做到這一點正確?

+1

您提高得到答案的機會,如果你做的問題的標題更具體。 – Benjol 2010-08-12 06:19:38

+0

原始html的期望輸出是什麼? – 2010-08-12 06:45:53

回答

0

感謝您的幫助。我能夠想出辦法。感謝所有的職位。

alt text

1

也許嘗試以下方法?

string.Format("<a href=\"{0}\\{1}\">View Image</a>", ImageDownloadPath, ImageFilename); 

在你的代碼使用'的串繞格式標識符,它會在你的格式化字符串都那麼出了,沒有被正確使用的ImageFilename屬性。它會被簡單地添加爲純文本。

您的字符串具有以下值的結果會是這樣:

ImageFilename = "1.jpg"; 
ImageDownloadPath = "http://www.downloadme.com/images"; 

Yours: <a href="'http://www.downloadme.com/images'+ImageFilename">View Image</a> 
Mine: <a href="http://www.downloadme.com/images/1.jpg">View Image</a> 
0

試試這個:

dtImages.Columns["ImagePath"].Expression = 
string.Format("&lt;a href=\"'{0}'+ImageFilename\"&gt;View Image&lt;/a&gt;", ImageDownloadPath); 

Im相當肯定的<和>試圖解釋爲的一部分表達方式。

1

這個問題並不完全清楚,但我相信這個問題並不是編譯時間一個......其實不是一個與string.Format。這是DataColumn.Expression的問題。您正在給出一個包含尖括號的表達式,所以它認爲您正在嘗試執行比較。

我不能說我對DataColumn.Expression瞭解太多了,但是您應該看看它是如何引用字符串的......以及它如何在引號內引用引號!例如,這威力工作:

dtCol.Expression = string.Format 
    ("'<a href=\"{0}'+ImageFilename+'\">View Image</a>'", 
    ImageDownloadPath); 

不過,我認爲這是有可能使你的生活很多簡單,如果你沒有嘗試計算HTML中開始表達。你以後真的不能申請加工嗎?

+0

hi Jo, 我試過你的代碼,它的工作。然而它正在顯示 View Image 我想要發生的是使超鏈接「查看圖像」不是整個標記在我的gridview列 – nhoyti 2010-08-12 06:33:08

+0

@nhoyti:那麼這取決於你*如何使用*你的數據表。正如我所說,我不認爲這是最合適的做事方式。 – 2010-08-12 06:40:48