Foros del Web » Programando para Internet » ASPX (.net) »

Consulta...

Estas en el tema de Consulta... en el foro de ASPX (.net) en Foros del Web. Hola, estoy haciendo un formulario en asp.net con ajax. El formulario consta de 4 tabpanel, el primero tiene un campo cantidad y un boton, dependiendo ...
  #1 (permalink)  
Antiguo 19/10/2012, 07:53
 
Fecha de Ingreso: octubre-2012
Mensajes: 4
Antigüedad: 11 años, 6 meses
Puntos: 0
Consulta...

Hola, estoy haciendo un formulario en asp.net con ajax. El formulario consta de 4 tabpanel, el primero tiene un campo cantidad y un boton, dependiendo de que cantidad ingreso usuario se despliega en el siguiente tabpanel textbox que coinciden con al cantidad ingresada por el usuario. Para cada uno de los textbox se despliega tambien un DropDownList en donde si el usuario elige la opcion multiple opcion de este panel se despleuga en el 3 panel la misma 3 textbox por cada dropDownlist marcado como multple ocpion. Cada Tabpanel cuenta con un updatePanel y un botn que ejecuta los eventos que describo mas arriba.
el problema es que cuando invoco el dropdownlist desde el evento del boton me aparece vacio por lo tanto no se si el usuario opto por la opcion multiple opcion o no.
Espero puedan ayudarme.

el evento del botón donde me traigo el dropdown list est el siguiente:

protected void Button2_Click(object sender, EventArgs e)
{
int cantidad = Int32.Parse(txtCantidaddepreguntas.Text);


DropDownList drop = (DropDownList)UpdatePanel1.FindControl("Lista1");
drop.Text = drop.SelectedItem.Text;
if (drop.Text == "Multiple Opcion")

el evento del boton del primer tab donde creo el drop down list es el sigueinte:

protected void Button1_Click1(object sender, EventArgs e)
{
// f.GuardarEncuesta(f.ufachada, txtNombreEncuesta.Text, DateTime.Now, CalendarFechaComienzo.SelectedDate, Int32.Parse(txtCantidadResultados.Text), f.ufachada.IDEmpresa, 1, CalendarFechaFin.SelectedDate);

int cantidad = Int32.Parse(txtCantidaddepreguntas.Text);

List<String> Lista = f.TipoEncuesta();

for (int i = 1; i <= cantidad; i++)
{
TextBox tb = new TextBox();
Label lb = new Label();
DropDownList cb = new DropDownList();
// cb.RepeatDirection = System.Web.UI.WebControls.RepeatDirection.Horizont al;


lb.Text = "Pregunta " + i;
tb.ID = "TextBox" + (i).ToString();
cb.ID = "Lista" + (i).ToString();

TabPanel2.Controls.Add(lb);
TabPanel2.Controls.Add(tb);
TabPanel2.Controls.Add(cb);

cb.DataSource = Lista;
cb.DataBind();

lb.Visible = true;
tb.Visible = true;
cb.Visible = true;

TabPanel2.Visible = true;


UpdatePanel1.ContentTemplateContainer.Controls.Add (lb);
UpdatePanel1.ContentTemplateContainer.Controls.Add (tb);
UpdatePanel1.ContentTemplateContainer.Controls.Add (cb);

UpdatePanel1.Visible = true;
}

}
  #2 (permalink)  
Antiguo 19/10/2012, 12:51
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 2 meses
Puntos: 41
Respuesta: Consulta...

déjame y entiendo. El valor que el usuario eligió en el DropDownList no te lo esta capturando. Prueba con drop.SelectedValue. pero tu cuando creas tu DropDownList le agregas lo que es la propiedad Value y Text manualmente ?. rectifica para ver.
  #3 (permalink)  
Antiguo 19/10/2012, 15:03
 
Fecha de Ingreso: octubre-2012
Mensajes: 4
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Consulta...

No me anda, mira este es el codigo html y el aspx.cs:
<asp:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="1"
Height="848px" Width="595px">
<asp:TabPanel runat="server" HeaderText="TabPanel1" ID="TabPanel1"> <HeaderTemplate>
</HeaderTemplate>
<ContentTemplate>
<table style="width: 100%; height: 697px;" class="table">
<tr>
<td class="style7">
&nbsp;</td>
<td height="10">
<asp:Label ID="lblAlerta" runat="server" Font-Bold="True" ForeColor="Red"></asp:Label>
</td>
<td align="center" class="style7">
<asp:Label ID="lblNombreEncuesta" runat="server" Text="Nombre de Encuesta:"></asp:Label>
<asp:TextBox ID="txtNombreEncuesta" runat="server" Width="181px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ControlToValidate="txtNombreEncuesta"
ErrorMessage="Ingrese el Nombre de Encuesta" ForeColor="Red"
Font-Names="Plantagenet Cherokee" ></asp:RequiredFieldValidator>
<tr>
<td align="center" class="style7">
<asp:Label ID="lblFechaComienzo" runat="server" Text="Fecha Comienzo:"></asp:Label>
</td>
<asp:Calendar ID="CalendarFechaComienzo" runat="server" Height="16px"
Width="144px"></asp:Calendar>
</td>
<td align="center" class="style7">
<asp:Label ID="lblFechaFin" runat="server" Text="Fecha Fin:"></asp:Label>
<asp:Calendar ID="CalendarFechaFin" runat="server" Height="16px" Width="216px"></asp:Calendar>
&nbsp;&nbsp;&nbsp;&nbsp;
</td>
<td align="center" class="style7">
<asp:Label ID="lblCantidadPreguntas" runat="server" Text="Catidad de Preguntas:"></asp:Label>
<asp:TextBox ID="txtCantidaddepreguntas" runat="server"></asp:TextBox>
<asp:FilteredTextBoxExtender ID="txtCantidaddepreguntas_FilteredTextBoxExtender "
FilterType = "Numbers"
runat="server" TargetControlID="txtCantidaddepreguntas" Enabled="True">
</asp:FilteredTextBoxExtender>
&nbsp;&nbsp;&nbsp;&nbsp;
<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server"
ControlToValidate="txtCantidaddepreguntas" ErrorMessage="Ingrese cantidad"
ForeColor="Red" Font-Names="Plantagenet Cherokee"></asp:RequiredFieldValidator>
<tr>
<td class="style5">
<asp:Label ID="lblCantidadResultados" runat="server" Text="Catidad de Resultados Necesarios:"></asp:Label>
</td>
<td class="style6">
<asp:TextBox ID="txtCantidadResultados" runat="server"></asp:TextBox>
<asp:FilteredTextBoxExtender ID="txtCantidadResultados_FilteredTextBoxExtender1 "
FilterType = "Numbers"
runat="server" TargetControlID="txtCantidadResultados" Enabled="True">
</asp:FilteredTextBoxExtender>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"
ControlToValidate="txtCantidadResultados" ErrorMessage="Ingrese cantidad"
ForeColor="Red" Font-Names="Plantagenet Cherokee"></asp:RequiredFieldValidator>
<td height="10" class="style7">
<td align="center" class="style7">
<asp:LinkButton ID="Button1" runat="server" onclick="Button1_Click1"
Text="Paso1AgregarPreguntas" />
</table>
</ContentTemplate>
</asp:TabPanel>
<asp:TabPanel ID="TabPanel2" runat="server" HeaderText="TabPanel2">
<HeaderTemplate>
Agregar Preguntas
</HeaderTemplate>
<ContentTemplate>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" >
<ContentTemplate>
<asp:LinkButton ID="Button2" runat="server" OnClick="Button2_Click"
Text="Paso2-AgregarOpciones" />
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</asp:TabPanel>
<asp:TabPanel ID="TabPanel3" runat="server" HeaderText="TabPanel3">
<HeaderTemplate>
Agregar Opciones
</HeaderTemplate>
<ContentTemplate>
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</asp:TabPanel>
<asp:TabPanel ID="TabPanel4" runat="server" HeaderText="TabPanel4">
<HeaderTemplate>
Agregar Permisos
</HeaderTemplate>
</asp:TabPanel>
</asp:TabContainer>
-
Fachada f = Fachada.getInstance();
protected void Page_Load(object sender, EventArgs e){}
protected void Button1_Click1(object sender, EventArgs e)
{ int cantidad = Int32.Parse(txtCantidaddepreguntas.Text);
List<String> Lista = f.TipoEncuesta();
for (int i = 1; i <= cantidad; i++)
{ TextBox tb = new TextBox();
Label lb = new Label();
DropDownList cb = new DropDownList();
lb.Text = "Pregunta " + i;
tb.ID = "TextBox" + (i).ToString();
cb.ID = "Lista" + (i).ToString();
TabPanel2.Controls.Add(lb);
TabPanel2.Controls.Add(tb);
TabPanel2.Controls.Add(cb);
cb.DataSource = Lista;
cb.DataBind();
lb.Visible = true;
tb.Visible = true;
cb.Visible = true;
TabPanel2.Visible = true;
UpdatePanel1.ContentTemplateContainer.Controls.Add (lb);
UpdatePanel1.ContentTemplateContainer.Controls.Add (tb);
UpdatePanel1.ContentTemplateContainer.Controls.Add (cb);
UpdatePanel1.Visible = true;
protected void Button2_Click(object sender, EventArgs e)
{ int cantidad = Int32.Parse(txtCantidaddepreguntas.Text);
for (int j = 1; j <= cantidad; j++)
{ DropDownList cb = (DropDownList)UpdatePanel1.ContentTemplateContaine r.FindControl("Lista" + j.ToString());
if (cb.SelectedValue == "Multiple Opcion")
{ for (int i = 1; i <= cantidad; i++)
{ TextBox tbb = new TextBox();
TextBox tb = new TextBox();
TextBox tb1 = new TextBox();
TextBox tb2 = new TextBox();
tbb.Text = "Pregunta " + i;
tb.ID = "TextBox1";
TabPanel3.Controls.Add(tbb);
TabPanel3.Controls.Add(tb);
TabPanel3.Controls.Add(tb1);
TabPanel3.Controls.Add(tb2);
tbb.Visible = true;
tb.Visible = true;
tb1.Visible = true;
tb2.Visible = true;
TabPanel3.Visible = true;
UpdatePanel2.ContentTemplateContainer.Controls.Add (tbb);
UpdatePanel2.ContentTemplateContainer.Controls.Add (tb);
UpdatePanel2.ContentTemplateContainer.Controls.Add (tb1);
UpdatePanel2.ContentTemplateContainer.Controls.Add (tb2);
UpdatePanel2.Visible = true;
Espero puedan encontar donde esta el error.
Muchas gracias! Ale.hour
  #4 (permalink)  
Antiguo 19/10/2012, 15:38
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 2 meses
Puntos: 41
Respuesta: Consulta...

O sea el DropDownList si se muestra pero lo que no te muestra son los datos ?
Y en que parte del código esta agregando los item al DropDownList ?

Última edición por DeivisAndres; 19/10/2012 a las 15:46
  #5 (permalink)  
Antiguo 19/10/2012, 20:38
 
Fecha de Ingreso: octubre-2012
Mensajes: 4
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Consulta...

Me muestra los dropdownlist pero el usuario selecciona los datos en ellos y no hace nada, osea cuando trato de capturar el dato de que eligio el usuario en todos los dropdownlist me da error en el objeto dado que no lo encuentr.
Los dropdownlist los lleno mediante una consulta a la BD con un datasource
List<String> Lista = f.TipoEncuesta();
cb.DataSource = Lista;
cb.DataBind();
Cuando hago esto en el boton del tabpanel2 me da error porque no reconoce el objeto:
DropDownList cb = (DropDownList)UpdatePanel1.ContentTemplateContaine r.FindControl("Lista" + j.ToString());
if (cb.SelectedValue == "Multiple Opcion")

Muchas gracias.
SAludos.
Ale.
  #6 (permalink)  
Antiguo 22/10/2012, 07:41
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 2 meses
Puntos: 41
De acuerdo Respuesta: Consulta...

Pues hay veo que le estas llenando el DropDownList pero no les estas dando el Value ni el text al tu ddl. Pues por que lo como yo llenaría mi ddl seria de manera manual para darle un valor a la lista o sea de esta manera:

Código Javascript:
Ver original
  1. public DataSet Llenar(string sql)
  2. {
  3.    Conexion conn = new Conexion();
  4.    conn.Conectar();
  5.    SqlDataAdapter da = new SqlDataAdapter(sql, conn.get_conecction());
  6.    DataSet ds = new DataSet();
  7.    da.Fill(ds);
  8.    con5.Desconectar();
  9.    return ds;
  10. }
  11.  
  12. string sql = "SELECT IDCAMPO, CAMPO FROM TABLA1 ORDER BY CAMPO";
  13.  
  14. Funciones fun = new Funciones();
  15. this.ddl_control.DataSource = fun.Llenar(sql);
  16. this.ddl_control.DataTextField = "CAMPO";
  17. this.ddl_control.DataValueField = "IDCAMPO";
  18. this.ddl_control.DataBind();

Donde el IDCAMPO sera el value que se va a mandar al TabPanel2 y el CAMPO seria el nombre que se mostrar en el ddl... llenalo de esta manera para ver si te resulta ya que no veo que le estés dando un valor a tu ddl que es el va a capturar

Etiquetas: asp, net
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:01.