jueves, 25 de junio de 2009

Crear campos checkbox conectados a DataFields

Objetivo:
Crear un campo checkbox (en cualquier ubicación) del dataview que este conectado a los datos del datafield

Receta:
Pegar este código dentro del dataview en la celda donde se quiera colocar el checkBox
<xsl:variable name="campo_Checked">
<xsl:choose
>
<xsl:when test="'@campoBooleano'='1' or msxsl:string-compare(string('@campoBooleano'),'Yes','','i')=0 or msxsl:string-compare(string('@campoBooleano'),'True','','i')=0">true</xsl:when
>
<xsl:otherwise>false</xsl:otherwise
>
</xsl:choose
>
</xsl:variable
>

<xsl:variable name="idCheck" select="generate-id()"
/>

<
xsl:variable name="XPath">
<xsl:call-template name="dvt.xpath"
/>
</xsl:variable
>

<
asp:CheckBox runat="server" id="campo_{$idCheck}" checked="{$campo_Checked}" __designer:bind="{ddwrt:DataBind('u',concat('campo_',$idCheck),'Checked','CheckedChanged','',string($XPath),'@campoBooleano')}" />

Nota:
Es posible que requiera la plantilla dvt.xpath la cual hay que declarar en un espacio fuera de otros xsl:template

<xsl:template name="dvt.xpath">
<xsl:for-each select="ancestor-or-self::*"><xsl:value-of select="concat('/node()[',count(preceding-sibling::node())+1,']')" /></xsl:for-each
>
</xsl:template>
Saludos
RobertoMarcos.com

1 comentario:

  1. ¿Como sería posible que el valor modificado se almacenar sin tener que editar el registro?

    ResponderEliminar