2010-08-12 28 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