title: binding validation controls in a datagrid
body: <p>I have the following datagrid:</p>
  
  <pre><code>&lt;asp:DataGrid runat="server" ID="gastosReembolsables" ShowFooter="True" AutoGenerateColumns="False"&gt;
          &lt;AlternatingItemStyle CssClass="DATAitem2"&gt;&lt;/AlternatingItemStyle&gt;
          &lt;ItemStyle CssClass="DATAitem1"&gt;&lt;/ItemStyle&gt;
          &lt;HeaderStyle CssClass="DATAheader"&gt;&lt;/HeaderStyle&gt;
          &lt;FooterStyle CssClass="DATAitem1"&gt;&lt;/FooterStyle&gt;
          &lt;Columns&gt;
              &lt;asp:TemplateColumn runat="server" HeaderText="Item"&gt;
                  &lt;ItemTemplate&gt;
                      &lt;asp:Label ID="Item" runat="server" Text='&lt;%# Eval("item") %&gt;'&gt;&lt;/asp:Label&gt;
                  &lt;/ItemTemplate&gt;
                  &lt;FooterTemplate&gt;
                      &lt;asp:TextBox runat="server" ID="Item" Width="40px" /&gt;
                  &lt;/FooterTemplate&gt;
              &lt;/asp:TemplateColumn&gt;
              &lt;asp:TemplateColumn runat="server" HeaderText="Precio"&gt;
                  &lt;ItemTemplate&gt;
                      &lt;asp:Label runat="server" ID="precio" Width="40px" Text='&lt;%# Eval("precio") %&gt;'&gt;&lt;/asp:Label&gt;
                  &lt;/ItemTemplate&gt;
                  &lt;FooterTemplate&gt;
                      &lt;asp:TextBox runat="server" Width="40px" ID="precio"&gt;&lt;/asp:TextBox&gt;
                  &lt;/FooterTemplate&gt;
              &lt;/asp:TemplateColumn&gt;
              &lt;asp:TemplateColumn runat="server" HeaderText="Cantidad"&gt;
                  &lt;ItemTemplate&gt;
                      &lt;asp:TextBox ID="cantidad" Width="40px" runat="server" Text='&lt;%# Eval("cantidad") %&gt;' /&gt;
                      &lt;asp:DropDownList runat="server" ID="unidadMedida" DataValueField='id' DataTextField="nombre"&gt;&lt;/asp:DropDownList&gt;
                  &lt;/ItemTemplate&gt;
                  &lt;FooterTemplate&gt;
                      &lt;asp:TextBox ID="cantidad" Width="40px" runat="server"&gt;&lt;/asp:TextBox&gt;
                      &lt;asp:DropDownList runat="server" ID="unidadMedida" DataValueField='id' DataTextField="nombre"&gt;&lt;/asp:DropDownList&gt;
                  &lt;/FooterTemplate&gt;
              &lt;/asp:TemplateColumn&gt;
              &lt;asp:BoundColumn runat="server" HeaderText="Total" DataField="total" /&gt;
              &lt;asp:BoundColumn runat="server" Visible="False" DataField="id" /&gt;
              &lt;asp:TemplateColumn runat="server"&gt;
                  &lt;ItemTemplate&gt;
                      &lt;asp:ImageButton ID="actualizarGasto" runat="server" CommandName="Update" ImageUrl="../../imagenes/btn_guardar.gif"
                          CausesValidation="True" ValidationGroup="item" /&gt;
                      &lt;asp:ImageButton ID="eliminarGasto" runat="server" CommandName="Delete" ImageUrl="../../imagenes/btn_eliminar.gif"
                          CausesValidation="False" ValidationGroup="item" /&gt;
                  &lt;/ItemTemplate&gt;
                  &lt;FooterTemplate&gt;
                      &lt;asp:ImageButton ID="agregarGasto" runat="server" CommandName="New" ImageUrl="../../imagenes/agregar.png"
                          CausesValidation="True" ValidationGroup="footer" /&gt;
                  &lt;/FooterTemplate&gt;
              &lt;/asp:TemplateColumn&gt;
              &lt;asp:TemplateColumn runat="server" Visible="True"&gt;
                  &lt;ItemTemplate&gt;
                      &lt;asp:RequiredFieldValidator ID="validaCantidad" runat="server" 
                          ControlToValidate="cantidad" ValidationGroup='item&lt;%# Eval("id") %&gt;' ErrorMessage="Ingrese una Cantidad" Display="Dynamic"&gt;&lt;/asp:RequiredFieldValidator&gt;
                      &lt;asp:CompareValidator ID="validaCantidadNumerico" Display="Dynamic" runat="server" 
                          ControlToValidate="cantidad" ValidationGroup='item&lt;%# Eval("id") %&gt;' ErrorMessage="La cantidad debe ser num&amp;eacute;rica" 
                          Operator="DataTypeCheck" Type="Integer"&gt;&lt;/asp:CompareValidator&gt;
                      &lt;asp:CompareValidator ID="validaUnidadMedida" runat="server" 
                          ControlToValidate="unidadMedida" ValidationGroup='item&lt;%# Eval("id") %&gt;' ErrorMessage="Seleccione una unidad de medida" Display="Dynamic" Operator="NotEqual" ValueToCompare="0"&gt;&lt;/asp:CompareValidator&gt;
                      &lt;asp:ValidationSummary ID="resumenGastosReembolsablesItem" runat="server" ShowMessageBox="True" ShowSummary="false" ValidationGroup='item&lt;%# Eval("id") %&gt;' /&gt;
                  &lt;/ItemTemplate&gt;
                  &lt;FooterTemplate&gt;
                      &lt;asp:RequiredFieldValidator ID="validaCantidad" runat="server" 
                          ControlToValidate="cantidad" ErrorMessage="Ingrese una Cantidad" Display="None" ValidationGroup="footer"&gt;&lt;/asp:RequiredFieldValidator&gt;
                      &lt;asp:CompareValidator ID="validaCantidadNumerico" runat="server" 
                          ControlToValidate="cantidad" Display="Dynamic" ErrorMessage="La cantidad debe ser num&amp;eacute;rica" 
                          Operator="DataTypeCheck" Type="Integer" ValidationGroup="footer"&gt;&lt;/asp:CompareValidator&gt;
                      &lt;asp:CompareValidator ID="validaUnidadMedida" runat="server" 
                          ControlToValidate="unidadMedida" ErrorMessage="Seleccione una unidad de medida" Display="Dynamic" ValidationGroup="footer" Operator="NotEqual" ValueToCompare="0"&gt;&lt;/asp:CompareValidator&gt;
                      &lt;asp:RequiredFieldValidator ID="validaItem" runat="server" 
                          ControlToValidate="Item" ErrorMessage="Ingrese un Item" Display="Dynamic" ValidationGroup="footer"&gt;&lt;/asp:RequiredFieldValidator&gt;
                      &lt;asp:RequiredFieldValidator ID="validaPrecio" runat="server" 
                          ControlToValidate="precio" ErrorMessage="Ingrese un precio" Display="Dynamic" ValidationGroup="footer"&gt;&lt;/asp:RequiredFieldValidator&gt;
                      &lt;asp:CompareValidator ID="validaPrecioNumerico" runat="server" 
                          ControlToValidate="precio" ErrorMessage="El precio debe ser num&amp;eacute;rico" 
                          Operator="DataTypeCheck" Type="Double" Display="Dynamic" ValidationGroup="footer"&gt;&lt;/asp:CompareValidator&gt;
                      &lt;asp:ValidationSummary ID="resumenGastosReembolsablesFooter" runat="server" ShowMessageBox="True" ShowSummary="False" ValidationGroup="footer" /&gt;
                  &lt;/FooterTemplate&gt;
              &lt;/asp:TemplateColumn&gt;
          &lt;/Columns&gt;
      &lt;/asp:DataGrid&gt;
  </code></pre>
  
  <p>all bindings work except the ones in the validation controls for the itemtemplate of the last column (they are passed as text to the web page).</p>
  
  <p>Why is this happening? is it even possible to do what I'm trying to do?</p>