Pergunta
Eu tenho pesquisado na Internet com a string.format para o meu código e parece que não consigo encontrar o certo que se parece no meu código.
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);
(O ImageFilename é uma coluna na minha tabela de banco de dados) O código acima sempre lança um erro de "Sintaxe Erro: Operador ausente antes de '<'
Como faço isso corretamente?
Solução 4
Obrigado por me ajudar. Consegui descobrir o caminho para fazê -lo. Obrigado por todas as mensagens.
Outras dicas
Talvez tente o seguinte?
string.Format("<a href=\"{0}\\{1}\">View Image</a>", ImageDownloadPath, ImageFilename);
No seu código que você está usando '
está ao redor do identificador de formato de string, que teria aparecido em sua sequência formatada, e o ImageFilename
A propriedade não estava sendo usada corretamente. Seria simplesmente adicionado como texto simples.
O resultado da sua string com os seguintes valores seria como tal:
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>
Não está claro da pergunta, mas acredito que o problema não é um tempo de compilação um de tudo ... não é um com string.Format
. É um problema com DataColumn.Expression
. Você está dando uma expressão que inclui colchetes de ângulo, então acha que você está tentando realizar comparações.
Eu não posso dizer que sei muito sobre DataColumn.Expression
, mas você deve analisar como cita cordas ... e como cita citações dentro de cordas! Por exemplo, este poderia trabalhar:
dtCol.Expression = string.Format
("'<a href=\"{0}'+ImageFilename+'\">View Image</a>'",
ImageDownloadPath);
No entanto, acho que é provável que faça sua vida um muito Mais simples se você não tentou calcular o HTML na expressão para começar. Você realmente não pode aplicar processamento mais tarde?
Experimente isso:
dtImages.Columns["ImagePath"].Expression =
string.Format("<a href=\"'{0}'+ImageFilename\">View Image</a>", ImageDownloadPath);
Tenho certeza de que os <e> estão tentando ser interpretados como parte da expressão.