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?

Foi útil?

Solução 4

Obrigado por me ajudar. Consegui descobrir o caminho para fazê -lo. Obrigado por todas as mensagens.

alt text

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("&lt;a href=\"'{0}'+ImageFilename\"&gt;View Image&lt;/a&gt;", ImageDownloadPath); 

Tenho certeza de que os <e> estão tentando ser interpretados como parte da expressão.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top