Colocar un Dropdownlist en un Repeater

Iniciado por jabedoya, 20 Octubre 2014, 18:17 PM

0 Miembros y 1 Visitante están viendo este tema.

jabedoya

Buenos dias

tengo una dificultad al tratar de llenar un Dropdownlist que tengo dentro de un repeater, si depronto alguno conoce agradezco me puedan colaborar.


peib0l

que es un "repeater" ? un bucle?

y si nos dices que lenguaje usas.. pues igual te podemos decir algo  :P

jabedoya

#2
Buenos dias

adjunto un pantallazo de donde quiero poner el Dropdownlist (en la columna que se llama centro de costos) por el momento no estoy trayendo nada, esta columna debe ser llenada con la informacion generada de una consulta sql, el Dropdownlist esta dentro de un repeater que se llena con una informacion de la una lista de precios, estoy desarrollando en asp.net







este es el codigo donde creo el asp repeater
Código (asp) [Seleccionar]
<asp:Repeater ID="rpLinea" runat="server">
              <HeaderTemplate>
                 <table width="100%" id="tblProductos">
                   <tr>   
              <td colspan="14" class="tablaTitulo" align="center">RESULTADO DE LA BÚSQUEDA - PRODUCTOS
                      </td>
               </tr>                
                   <tr bgcolor="#F5E600" align="center">                   
                      <td align="left" with="5%" class="text"></td>
                      <td id="Td1" class="text"  runat="server" visible='<%#verPptoValorLinea()%>'>Linea</td>
                      <td class="text">Código</td>
                      <td class="text">Descripción</td>
                      <td class="text">Medida</td>
                      <td class="text">Valor</td>
                      <td class="text">IVA</td>
                      <td class="text">Valor + Iva</td>
                      <td id="Td2" class="text" runat="server" visible='<%#verPromedioProducto()%>'>Prom.</td>                     
                      <td id="Td3" class="text" runat="server" visible='<%#verPptoCantidad()%>'>Tope</td> 
                       <td id="Td4" class="text" runat="server" visible='<%#verExistencia()%>'>Existencia</td>     
                      <td class="text">Cantidad</td>
                      <td class="text">Total Producto sin Ivas($)</td>   
                      <td class="text">Centros de costo</td>                     
                   </tr>
              </HeaderTemplate>

                <ItemTemplate>
                    <!--<tr id='tlinea' class="text" runat="server">
                        <td colspan="7"><%#DataBinder.Eval(Container.DataItem, "varNombreLinea")%></td>
                    </tr>-->
                    <asp:Repeater ID="rpProductos" runat="server" DataSource='<%# GetChildRelation(Container.DataItem,"productoLinea")%>' OnItemDataBound="rpProductos_ItemDataBound">
                     <HeaderTemplate>
                            <%# nombreLinea%>
                        </HeaderTemplate>
                        <ItemTemplate>
                            <tr runat="server" id="a" bgcolor="White">
<%--                             <td with="5%"><img onMouseOut="cerrarventa();"   onMouseOver="verImagen('<%# DataBinder.Eval(Container.DataItem, "lngIdProducto") %>'); " alt="Clic para ver imagen" border=0 src="../imagenes/camara.gif" onClick="verImagen('<%# DataBinder.Eval(Container.DataItem, "lngIdProducto") %>');" /> </td>
--%>
                             <td with="5%"><img onMouseOut="return true"  onMouseOver="status='Ver imagen'; return true" alt="Clic para ver imagen" border=0 src="../imagenes/camara.gif" onClick="verImagen('<%# DataBinder.Eval(Container.DataItem, "lngIdProducto") %>');" /> </td>
                            <td runat="server" id="idlinea"   visible='<%#verPptoValorLinea()%>'><%# DataBinder.Eval(Container.DataItem, "lngidlinea") %></td>
                                <td runat="server" id="IdCod"><%# DataBinder.Eval(Container.DataItem, "varIdProductoCliente") %></td>
                                <td><%# DataBinder.Eval(Container.DataItem, "varDescripcion") %></td>
                                <td><%# DataBinder.Eval(Container.DataItem, "varNombreUnidad")%></td>
                                <td runat="server" id="Precio" ><%# DataBinder.Eval(Container.DataItem, "fltPrecio", "{0:C0}")%></td>
                                <td runat="server" id="iva"><%# DataBinder.Eval(Container.DataItem, "fltPorcentajeIva","{0:P0}") %></td>
                                <td runat="server" id="ValorIva"><%# DataBinder.Eval(Container.DataItem, "Iva","{0:C0}") %></td>
                                 <td id="Td1" runat="server" visible='<%#verPromedioProducto()%>'><%# DataBinder.Eval(Container.DataItem, "lngPromProducto")%></td>
                                 <td id="Td3" runat="server" visible='<%#verPptoCantidad()%>'><%# DataBinder.Eval(Container.DataItem, "lngSaldoCantidad") %></td>
                                 <td id="Td5" runat="server" visible='<%#verExistencia()%>'><%# DataBinder.Eval(Container.DataItem, "existencia") %></td>

                                <td><input type="text"  MaxLength="6" id="txtDigitado" size="4" runat="server"  />
                                <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
                            ControlToValidate="txtDigitado" ErrorMessage="*Solo Números"
                            ForeColor="Red"
                            ValidationExpression="^[0-9]*"></asp:RegularExpressionValidator>
                               
                               
                               
                                </td>
                                <td><input type="text"  id="txtTotalItem" size="10" runat="server" readonly="readonly" style="TEXT-ALIGN: right"  /> </td>
                                                      <td>
                           <asp:dropdownlist ID="ddlHorario" runat="server" ></asp:dropdownlist>
                           </td>
                           
                           
                            </tr>                           
                        </ItemTemplate>
                         <alternatingitemtemplate>
                            <tr runat="server" id="a" bgcolor="#f7f7f7" >
                             <%--<td with="5%"><img onMouseOut="cerrarventa();"    onMouseOver="verImagen('<%# DataBinder.Eval(Container.DataItem, "lngIdProducto") %>'); " alt="Clic para ver imagen" border=0 src="../imagenes/camara.gif" onClick="verImagen('<%# DataBinder.Eval(Container.DataItem, "lngIdProducto") %>');" /></td>--%>

                                <td with="5%"><img onMouseOut="return true"   onMouseOver="status='Ver imagen'; return true" alt="Clic para ver imagen" border=0 src="../imagenes/camara.gif" onClick="verImagen('<%# DataBinder.Eval(Container.DataItem, "lngIdProducto") %>');" /></td>
                              <td runat="server" id="idlinea" visible='<%#verPptoValorLinea()%>'><%# DataBinder.Eval(Container.DataItem, "lngidlinea") %></td>
                                <td runat="server" id="IdCod"><%# DataBinder.Eval(Container.DataItem, "varIdProductoCliente") %></td>
                                <td><%# DataBinder.Eval(Container.DataItem, "varDescripcion") %></td>
                                <td><%# DataBinder.Eval(Container.DataItem, "varNombreUnidad")%></td>
                                <td runat="server" id="Precio"><%# DataBinder.Eval(Container.DataItem, "fltPrecio", "{0:C0}")%></td>
                                <td runat="server" id="iva"><%# DataBinder.Eval(Container.DataItem, "fltPorcentajeIva","{0:P0}") %></td>
                                 <td runat="server" id="ValorIva"><%# DataBinder.Eval(Container.DataItem, "Iva","{0:C0}") %></td>
                                 <td id="Td1" runat="server" visible='<%#verPromedioProducto()%>'><%# DataBinder.Eval(Container.DataItem, "lngPromProducto")%></td>
                                 <td id="Td2" runat="server" visible='<%#verPptoCantidad()%>'><%# DataBinder.Eval(Container.DataItem, "lngSaldoCantidad") %></td>
                                 <td id="Td5" runat="server" visible='<%#verExistencia()%>'><%# DataBinder.Eval(Container.DataItem, "existencia") %></td>

                                <td><input type="text" MaxLength="6" id="txtDigitado" size="4" runat="server"  />
                             <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
                            ControlToValidate="txtDigitado" ErrorMessage="*Solo Números"
                            ForeColor="Red"
                            ValidationExpression="^[0-9]*"></asp:RegularExpressionValidator>
                                </td>
                                <td><input type="text" id="txtTotalItem"  runat="server" size="10" readonly="readonly" style="TEXT-ALIGN: right"  /> </td>
                           <td>
                           <asp:dropdownlist ID="ddlHorario" runat="server" ></asp:dropdownlist>
                           </td>
                           
                           
                            </tr>
                        </alternatingitemtemplate>
                        <FooterTemplate>
                         
                        </FooterTemplate>
                    </asp:Repeater>
                     <% = Imprimirtotal%>
                </ItemTemplate>
                <FooterTemplate>             
       
               
               
                   </table>
                </FooterTemplate>
            </asp:Repeater>



Con este lleno la información.

Código (asp) [Seleccionar]
  protected void buscarProductos(bool verDetalle)
  {
    tblActa_pago.Visible = false;
    Tablaencabezadopago.Visible = false;
    Tbltenencuenta.Visible = false;
    string strProductos = "";
    if (verDetalle)
    {
      //verifica si ya han adicionado productos.
      if (ViewState["htLista"] != null)
      {
        HtProductosAdicionados = (Hashtable)ViewState["htLista"];
      }
      //recorro el hash para traer los productos que ingresaron
      IDictionaryEnumerator myEnumerator = HtProductosAdicionados.GetEnumerator();

      while (myEnumerator.MoveNext())
      {
        strProductos = strProductos + "," + myEnumerator.Key.ToString();
      }
      if (strProductos != "")
        strProductos = strProductos.Remove(0, 1);
    }

    DataSet dsProductos;
    DataSet dsLineas;
    DataTable tmp;
    string[] idCcostos;
    if (hddCcostos.Value == "")
      idCcostos = mpage.ccostos.SelectedItem.Value.Split('|');
    else
      idCcostos = new string[] { "", hddCcostos.Value };
    Producto Producto_VO = new Producto();
    Producto_VO.idCliente = mpage.Cliente;

    //Noviembre 3 de 2010 la línea siguiente no existia

    if (!verDetalle)
    {
      if (rdbLinea.Checked)
      {
        if (cboLinea.SelectedValue!= "%")
          Producto_VO.idLinea = int.Parse(cboLinea.SelectedValue);
      }
      else
      {
        Producto_VO.descripcion = (cboProd.SelectedItem.Value == "Nom" ? "%" + txtProducto.Value.Trim() + "%" : null);
        Producto_VO.idProductoCliente = (cboProd.SelectedItem.Value == "Cod" ? txtProducto.Value.Trim() : null);
      }
    }

    if (mpage.pptoCantidad)
    {
      Producto_VO.Tope = "1";
      Producto_VO.IdPeriodo = int.Parse(hddPeriodo.Value);
    }
    else
    {
      Producto_VO.Tope = "0";
    }

    Producto_VO.idCcostos = int.Parse(idCcostos[1].ToString());

    if (strProductos != "")
      Producto_VO.idProductos = strProductos;

    IProducto objProducto = Factory.CreateProducto();
    dsProductos = objProducto.listarProductos(Producto_VO);
    Linea Linea_VO = new Linea();
    Linea_VO.idCliente = mpage.Cliente;
    ILinea objLinea = Factory.CreateLinea();
    dsLineas = objLinea.consultarLinea(Linea_VO, 1, 9999);
    tmp = dsLineas.Tables[0].Copy();
    tmp.TableName = "Lineas";
    dsProductos.Tables.Add(tmp);
    dsProductos.Relations.Add("productoLinea", dsProductos.Tables["Lineas"].Columns["lngIdLinea"], dsProductos.Tables[0].Columns["lngIdLinea"]);
    rpLinea.DataSource = dsProductos.Tables["Lineas"];
    rpLinea.DataBind();

    if (dsProductos.Tables[0].Rows.Count == 0)
    {
      btnAdicionar.Visible = false;
      tblLista.Visible = false;
      lblMensaje.Text = "No existen registros bajo el criterio de búsqueda.";
      lblMensaje.Visible = true;
      tblMensajes.Visible = true;
    }
    else
    {
      tblLista.Visible = true;
    }
  }