none
Caracter extraño cuando se presenta una ñ RRS feed

  • Pregunta

  • Hola buenas tardes, tengo el siguiente problema.

    Tengo un un gridview y un registro con el nombre "Joaquin Nuñez", cuando selecciono ese registro del GridView lo presento en un text box con el siguiente código:

    txtAddress.Text=gvMerchants.SelectedRow.Cells[MERCHANT_ADDRESS_INDEX].Text;
    


    en el text box se presento el siguiente texto "Joaquin Nuñez".

    En mi web.config ya tengo agregado el nodo:

    <globalization  fileEncoding="utf-8"  requestEncoding="utf-8" responseEncoding="utf-8" culture="es-ES" uiCulture="es-ES" />

    He visto soluciones donde aplican HttpUtility.HtmlDecode pero no me parece que sea lo correcto poner esa sentencia en todas las lineas donde tenga que obtener un valor.

    Muchas gracias.

    martes, 29 de enero de 2013 17:46

Respuestas

Todas las respuestas

  • ¿Se da el problema en distintos exploradores o solamente en algunos?  Al menos pruebe con IE, Firefox y Chrome.

    Tambíen se me ocurre que puede ser por sacar el valor de la celda del GridView.  ¿No tiene "a mano" la fuente original de datos?  Sería ideal tomar el valor directamente de la fuente de datos.


    Jose R. MCP
    Code Samples


    martes, 29 de enero de 2013 17:53
    Moderador
  • que pasa si haces

    txtAddress.Text= HttpServerUtility.HtmlDecode(gvMerchants.SelectedRow.Cells[MERCHANT_ADDRESS_INDEX].Text);

    sino esta el httpServerUtility usa el

    Server.HtmlDecode()


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 29 de enero de 2013 17:55
  • En los 3 navegadores.
    martes, 29 de enero de 2013 17:55
  • Leandro gracias por responder, con esa sentencia funciona, pero me parece extraño que sea necesario poner esa sentencia cada vez que tenga que obtener un valor.

    martes, 29 de enero de 2013 17:58
  • Como lo puse en mi respuesta anterior, creo que es por sacar el valor de un control HTML.  Lo ideal sería tomar el valor de la fuente de datos original.

    Jose R. MCP
    Code Samples

    martes, 29 de enero de 2013 17:59
    Moderador
  • porque es extraño es completamente valido es las en .net 4 existe uan instuccion si usas el <%: %> que hace esto de forma automatica

    en asp,net mvc tambien existe, solo que en asp.net no se esta acostumbrado pero dberias ahcerlo siemrpe

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 29 de enero de 2013 19:22
  • Jose

    porque crees que obtener los datos del html o de la fuente deberia afectar, esto de usar el encode y decode es muy comun en un desarollo web

    como veras es tan comun que asp.net 4 y asp.net mvc ya lo incluyen en sus intrucciones por defecto


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    martes, 29 de enero de 2013 19:24
  • Es el mismo principio de usar JavaScript para encontrar el valor de una celda.  Normalmente obtendríamos el objeto DOM y examinaríamos el innerHTML.  Pero esta técnica no serviría si por ejemplo al valor internamente lo decoráramos con un <span> para aplicar algún estilo.  El valor sigue ahí, pero ya el JavaScript falla porque hay información de formato de por medio.

    La fuente original de datos no tiene formato ni está ligada a un lenguaje de presentación como HTML.  Por lo tanto siempre recomiendo consultar la capa de datos por datos y nunca la capa de presentación:  Así no tenemos que lidiar con estos detalles de presentación como el tener que decodificar HTML cuando la fuente de datos tiene el dato perfectamente.

    Pero claro está que no es imposible.  Simplemente digo que no es lo mejor.  Si la fuente de datos original está disponible es de ahí de donde debemos tomar datos.

    Ejemplo rápido:  Tengo un List<Tipo> donde Tipo tiene una propiedad double "Total" y esto está vinculado a un GridView.  Con el clic de un botón quiero calcular el gran total.  ¿Qué es más fácil:  Un foreach convirtiendo valores de celda de texto (que pudo haberse formateado con algún símbolo de moneda, o formateado en rojo o negrita) o simplemente un foreach sobre la lista original donde la propiedad ya es de tipo double?  La respuesta es que es más fácil la lista original.  Así no tengo que preocuparme si la celda en el GV hay carácteres o códigos de formato, otros controles, etc.


    Jose R. MCP
    Code Samples

    martes, 29 de enero de 2013 19:47
    Moderador