none
Código XSL - Personalizacion de vista en Designer RRS feed

  • Pregunta

  • Hola!

    Tengo el siguiente problema a resolver:

    Tengo una página con X elementos, cada elemento tiene que llevar a un link que toma una determinada url con un parametro que esta guardado en un campo de una lista.

    Lo que tengo q hacer es desde el designer especificar un <a href=../../..aspx?ContentTypeId=@URLTipoContenido></a> o algo por el estilo, es la unica manera en la que se me ocurre...

    @URLTipoContenido es el campo donde guardo el Id de ese tipo de contenido en una lista personalizada que cree y necesito para otras cuestiones.

    Tenia entendido que deberia ponerse así <a href=../../..aspx?ContentTypeId={@URLTipoContenido}></a> pero no funciona tampoco, quisiera saber cuál es la forma.

    Muchas Gracias espero su respuesta!! Espero que entiendan cual es mi problema, sino pregunten y explico de alguna otra forma!

    Saludos

    lunes, 26 de septiembre de 2011 13:24

Todas las respuestas

  • Hola!

    ¿Tu código es exactamente asi:

    <a href=../../..aspx?ContentTypeId={@URLTipoContenido}></a> ?

    No te olvides de ponerle las comillas correspondientes:

    <a href="../../..aspx?ContentTypeId={@URLTipoContenido}"></a>

    Cuenta después si eso ayudó!

    lunes, 26 de septiembre de 2011 14:11
  • Las comillas las tengo.. el problema es que no me toma bien el parametro (que es un campo) @URLTipoContenido, he revisado sintaxis y demas, y si copio un valor de ese campo el link funciona, no me esta funcionando para que sea dinamico...

    <a href="../../..aspx?ContentTypeId={@URLTipoContenido}"></a> asi no funciona, tira error de sintaxis

    A ver si puedes ayudarme un poco más.. jaja, espero tu respuesta! Muchas Gracias!!!

    lunes, 26 de septiembre de 2011 14:58
  • Podrías probar creando una variable, asignarle el valor del parámetro, para descartar que sea un error de lo que trae el parámetro.

    Y luego asignar esta variable al atributo href.

    Algo así:

    <xsl:variable name="URL">
    
      <xsl:value-of select="@URLTipoContenido"/> 
    
    </xsl:variable>
    
    <a href="../../..aspx?ContentTypeId={$URL}"></a> 
    
    

    lunes, 26 de septiembre de 2011 15:08
  • Es lo mismo que estaba probando.. No funciona asi, me maraca un error "Input string was not in a correct format". Se te ocurre algo mas que pueda hacer?

    Gracias por la ayuda!

    lunes, 26 de septiembre de 2011 16:01
  • Realmente muchas opciones no quedan.

    ¿Has probado de imprimir lo que tiene la variable $URL para ver qué datos trae realmente?. Si es un campo hyperlink hay que formatearla, normalmente su valor es algo así:

    'linkpropiamentedicho,nombredellink' - Ejemplo: 'http://www.sharepoint.com,Sharepoint'

    Si es así, tienes que formatearlo:

    <xsl:variable name="URL">
    
      <xsl:value-of select="substring-before(@URLTipoContenido,',')"/> 
    
    </xsl:variable>
    
    <a href="../../..aspx?ContentTypeId={$URL}"></a> 

     


    Marcos Alan Turrós - Microsoft Certified Technology Specialist



    • Editado Marcos Turrós lunes, 26 de septiembre de 2011 16:49 Error de sintaxis
    lunes, 26 de septiembre de 2011 16:45
  • En el campo URLTipoContenido tengo solamente una serie de numeros que pertenecen al ContentType de los tipos de contenidos definidos.. Es decir deberia funcionar, no entiendo porq no toma lo que contiene ese campo..

    Necesito solucionarlo y no se como!

    Saludos!

     

     

     

     

     

     

     

    lunes, 26 de septiembre de 2011 19:58
  • Bien, entiendo.

    Prueba imprimir lo que trae ese parámetro, para que puedas visualizar si efectivamente está trayendo lo que esperas. Una vez que te asegures que el valor es el adecuado, podrás concentrarte en cómo se lo concatenas al querystring de la url

    Algo así:

    <b>
    
      <xsl:value-of select="@URLTipoContenido"/> 
    
    </b><br />
    <a href="../../..aspx"></a> 

    Otra cosa, ¿has probado de hardcodear algun valor en el atributo href del link, sólo para ver que la redirección funcione correctamente


    Marcos Alan Turrós - Microsoft Certified Technology Specialist
    lunes, 26 de septiembre de 2011 20:08
  • Respecto del primer punto, no se como ubicar eso.. ese es el codigo de impresion??? Con la salida de la vista tengo una columna con ese campo, es decir puedo ver lo que me trae no se donde quieres que me asegure de la impresion... en que parte del código

    Sobre el segundo punto, he probado <a href="../../..aspx?Id{@ID} "> y funciona ok, es decir para mi tengo algun problema con ese campo URLTipoContenido.

    Te comento de q trata el tema, ese URLTipoContenido guarda el ContentTypeId de otra lista q tengo creado

    Gracias

    lunes, 26 de septiembre de 2011 20:39
  • Cuando digo que "imprimas lo que tiene el parámetro" me refiero a que escribas código html con el valor de ese parámetro. Por eso te sugerí que lo muestres entre etiquetas <b> </b> para que puedas ver en bold lo que realmente tiene ese parámetro. De la siguiente forma:

    <b>

      <xsl:value-of select="@URLTipoContenido"/>

    </b>

    Si te da el error Input string was not in a correct format es porque probablemente ese ContentTypeId tiene un formato no válido para que lo pases por QueryString. Los campos LookUp a Id tienen el siguiente formato:

    ID;#VALUE

    Tendrías que asegurarte qué formato tiene y después con las funciones substring-after o substring-before darle el valor correcto al QueryString.


    Marcos Alan Turrós - Microsoft Certified Technology Specialist
    lunes, 26 de septiembre de 2011 20:50