none
Problema con controles en innerHtml RRS feed

  • Pregunta

  • Hola, eles escribo porque necesito su ayuda... pasa que en mi code behind de mi aspx, hay un método el cuál crea controles mediante un for, los controles los creo en un StringBuilder y son del tipo HtmlInputCheckBox y algunos textboxes y labels. luego de que finaliza el for, hago igualar el innerHtml de la div que tengo a ese texto.
    En la vista de la página está todo perfecto, pero el tema es que cuándo clickeo cierto botón, necesito recorrer la div para saber que checkboxes chequé para poder trabajar con ellos, pero no puedo conseguir recorrer la div y encontrar los controles checkbox por mas de que en la vista de la página están ahí.

    Les pego algo del code behind para que me entiendan un poco mas.
    //ESTE ES EL RECORRIDO DE LA DIV PARA BUSCAR LOS CHECKBOX CHECKEADOS
    if (gifts.Controls.Count > 0)
            {
                foreach (HtmlGenericControl c in gifts.Controls)
                {
                    if (c is HtmlInputCheckBox)
                    {
                        HtmlInputCheckBox chk = (HtmlInputCheckBox)c;
                        idGift = int.Parse(chk.ID);
                        if (chk.Checked)
                        {
                            TextBox t = (TextBox)gifts.FindControl("txt" + idGift);
                            if (t.Text == "")
                            {
                                giftsID.Add(idGift);
                            }
                            else
                            {
                                cantidad = int.Parse(t.Text);
                                for (int i = 0; i < cantidad; i++)
                                {
                                    giftsID.Add(idGift);
                                    Session["GiftsId"] = giftsID;
                                }
                            }
                        }
                    }
                }
            }
    
    //ESTO ES PARTE DEL MÉTODO QUE AGREGA EL INNER HTML
    HiddenField hiddenPrice = new HiddenField();
                    StringBuilder html = new StringBuilder();
                    for (int i = 0; i < oGifts.Rows.Count; i++)
                    {
                        string giftPrice = "";
                        
                        giftPrice = oGifts.Rows[i]["Price_currID_" + currID].ToString();
                        
                        html.AppendLine("<input type=\"checkbox\" id=\"" + oGifts.Rows[i]["idGift"] + "\" name=\"" + oGifts.Rows[i]["idGift"] + "\" />");
                        html.AppendLine("<label for=\"" + oGifts.Rows[i]["idGift"] + "\"> </label>");
                        html.AppendLine("<label id=\"lbl" + oGifts.Rows[i]["idGift"] + "\">" + oGifts.Rows[i]["Name_1"] + " | Precio: " + moneda + giftPrice + " | Cantidad: </label>");
                        html.AppendLine("<input id=\"txt" + oGifts.Rows[i]["idGift"] + "\" type=\"text\" style=\"width: 20px;\" name=\"txt" + oGifts.Rows[i]["idGift"] + "\"/>");
                        html.AppendLine("<br/>");
    hiddenPrice = new HiddenField();
                        hiddenPrice.ID = "hidden_" + oGifts.Rows[i]["idGift"].ToString();
                        hiddenPrice.Value = oGifts.Rows[i]["Price_currID_" + currID].ToString();
                    }
                        giftsDiv.InnerHtml = html.ToString();
                }
                else
                {
                    giftsDiv.InnerHtml = "<label>No existen Gifts para éste producto.</label>";
                }

    Espero me puedan ayudar, gracias!!
    martes, 19 de mayo de 2009 17:42

Todas las respuestas