1

我一直在使用 string.format 在互联网上搜索我的代码,但似乎找不到与我的代码类似的正确代码。

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);

(ImageFilename 是我的数据库表上的一列)上面的代码总是抛出“语法错误:'<' 运算符之前缺少操作数”的错误

我该如何正确地做到这一点?

4

4 回答 4

1

也许尝试以下?

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

在您的代码中,您'在字符串格式标识符周围使用 's,该标识符随后会显示在您的格式化字符串中,并且该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>
于 2010-08-12T06:20:04.480 回答
1

这个问题根本不清楚,但我相信这个问题根本不是编译时问题......确实不是string.Format. 这是一个问题DataColumn.Expression。您正在给出一个包含尖括号的表达式,因此它认为您正在尝试执行比较。

我不能说我对 . 了解很多DataColumn.Expression,但是您应该研究它如何引用字符串......以及它如何引用字符串中的引号!例如,这可能有效:

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

但是,我认为如果您一开始不尝试计算表达式中的 HTML,它可能会让您的生活变得更简单。以后真的不能申请处理吗?

于 2010-08-12T06:24:34.583 回答
0

试试这个:

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

我很确定 < 和 > 正试图被解释为表达式的一部分。

于 2010-08-12T06:22:53.270 回答
0

谢谢你的协助。我能够想出办法来做到这一点。感谢所有的帖子。

替代文字

于 2010-08-20T08:04:18.767 回答