Я искал Интернет с 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 является столбцом на моей таблице базы данных), вышеупомянутый код всегда бросает ошибку "Оператора Syntax error: Missing operand before ' <'"
Как я делаю это правильно?
Спасибо, что помогли мне. Я смог придумать, как это сделать. Спасибо за все сообщения.
Возможно, попробуйте следующее?
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>
Это совсем не ясно из вопроса, но я считаю, что проблема вовсе не во времени компиляции ... string.Format
. Это проблема с DataColumn.Expression
. Вы даете выражение, которое включает угловые скобки, поэтому он думает, что вы пытаетесь выполнить сравнение.
Я не могу сказать, что знаю много о DataColumn.Expression
, но вы должны изучить, как он цитирует строки ... и как он цитирует кавычки внутри строк! Например, этот может работать:
dtCol.Expression = string.Format
("'<a href=\"{0}'+ImageFilename+'\">View Image</a>'",
ImageDownloadPath);
Однако я думаю, что он, вероятно, упростит вашу жизнь на лот , если вы не попытаетесь вычислить HTML в выражении, чтобы начать с участием. Вы действительно можете не применять обработку позже?
Попробуйте следующее:
dtImages.Columns["ImagePath"].Expression =
string.Format("<a href=\"'{0}'+ImageFilename\">View Image</a>", ImageDownloadPath);
Я почти уверен, что <и> пытаются интерпретировать как часть выражения.