我一直在使用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是我数据库表上的一列) 上面的代码总是抛出错误 “语法错误:'&lt;'之前缺少操作数运算符“
我该如何正确地做到这一点?
答案 0 :(得分: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>
答案 1 :(得分:1)
问题一点也不清楚,但我认为问题根本不是编译时问题......实际上并不是string.Format
问题。这是DataColumn.Expression
的问题。你给出了一个包含尖括号的表达式,所以它认为你正在尝试进行比较。
我不能说我对DataColumn.Expression
了解多少,但你应该研究它如何引用字符串......以及它如何引用字符串中的引号!例如,可能工作:
dtCol.Expression = string.Format
("'<a href=\"{0}'+ImageFilename+'\">View Image</a>'",
ImageDownloadPath);
但是,如果您没有尝试在表达式中计算HTML,那么我认为这可能会让您的生活变得更简单。你以后真的不能申请处理吗?
答案 2 :(得分:0)
试试这个:
dtImages.Columns["ImagePath"].Expression =
string.Format("<a href=\"'{0}'+ImageFilename\">View Image</a>", ImageDownloadPath);
我很确定&lt;和&gt;试图被解释为表达的一部分。
答案 3 :(得分:0)
感谢您帮助我。我能够弄清楚这样做的方法。感谢所有帖子。