Pregunta

He estado buscando en internet con el string.format de mi código y parece que no puedo encontrar el más adecuado que se ve como en mi 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);

(el ImageFileName es una columna en mi mesa de base de datos) el código anterior siempre se genera un error de "Error de sintaxis: falta operando antes '<' operador"

¿Cómo se hace esto correctamente?

¿Fue útil?

Solución 4

Gracias por ayudarme. Yo era capaz de averiguar la manera de hacerlo. Gracias por todos los mensajes.

text alt

Otros consejos

Tal vez intente lo siguiente?

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

En el código que está utilizando ' de todo el identificador de formato de cadena, lo que habría mostrado a continuación, en su cadena con formato, y la propiedad ImageFilename no estaba siendo utilizada correctamente. Sería simplemente se han añadido como texto sin formato.

El resultado de su cadena con los siguientes valores sería 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>

No está del todo claro a partir de la pregunta, pero creo que el problema no es un tiempo de compilación en absoluto ... no es de hecho uno con string.Format. Es un problema con DataColumn.Expression. Usted le está dando una expresión que incluye paréntesis angulares, por lo que supone que usted está tratando de realizar comparaciones.

No se puede decir que sé mucho sobre DataColumn.Expression, pero se debe analizar el modo en que cita cuerdas ... y como se cita a las cotizaciones dentro de cadenas! Por ejemplo, este fuerza de trabajo:

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

Sin embargo, creo que es probable que haga su vida un mucho más simple si no se intenta calcular el código HTML en la expresión para empezar. ¿Puede usted realmente no se aplique ningún procesamiento posterior?

Prueba esto:

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

Estoy bastante seguro de que el están tratando de ser interpretado como parte de la expresión.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top