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

Programar Controles dentro un DataGrid

Estas en el tema de Programar Controles dentro un DataGrid en el foro de ASPX (.net) en Foros del Web. Buenass.. Tengo un Datagrid, de 7 Columnas Templates, 3 Con DropDownList, 3 Con TextBox, 1 Con CheckBox, en el load del form necesito cargar estos ...
  #1 (permalink)  
Antiguo 20/09/2005, 08:02
 
Fecha de Ingreso: julio-2005
Mensajes: 78
Antigüedad: 18 años, 9 meses
Puntos: 0
Programar Controles dentro un DataGrid

Buenass..

Tengo un Datagrid, de 7 Columnas Templates, 3 Con DropDownList, 3 Con TextBox, 1 Con CheckBox, en el load del form necesito cargar estos DropDownList, la pregunta es, como los llamo? Es mi primer proyecto en web y necesito esta respuesta urgente, Muchas Gracias.
  #2 (permalink)  
Antiguo 20/09/2005, 09:08
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años
Puntos: 1
como que como los llamas???? que quieres hacer exactamente????
__________________
:si: El hombre es el único animal que come sin tener hambre, bebe sin tener sed y habla sin tener nada que decir. :si:
  #3 (permalink)  
Antiguo 20/09/2005, 09:19
 
Fecha de Ingreso: julio-2005
Mensajes: 78
Antigüedad: 18 años, 9 meses
Puntos: 0
Mira... tengo 3 DropDownList en una DataGrid los cuales debo cargar en el Load según el valor que haya en otro DropDownList pero fuera de esta grid, como hago para porogramar estos DropDownList que estan dentro del grid??
  #4 (permalink)  
Antiguo 20/09/2005, 09:27
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años
Puntos: 1
mira con esto coges el valor del combo:

DropDownList drop = new DropDownList();
drop =(DropDownList)e.Item.FindControl("comboId");
en fincontrol le pones el id del combo y ya tienes en drop el control para manejarlo

te vale???
__________________
:si: El hombre es el único animal que come sin tener hambre, bebe sin tener sed y habla sin tener nada que decir. :si:
  #5 (permalink)  
Antiguo 20/09/2005, 09:30
 
Fecha de Ingreso: julio-2005
Mensajes: 78
Antigüedad: 18 años, 9 meses
Puntos: 0
thx

Ok gracias voy a chekar
  #6 (permalink)  
Antiguo 20/09/2005, 09:38
 
Fecha de Ingreso: julio-2005
Mensajes: 78
Antigüedad: 18 años, 9 meses
Puntos: 0
Me sale error en e.item, no me da pa ponerle e.item

Mira asi lo hice
Código:
			DropDownList Respon = new DropDownList();
			Respon =(DropDownList)e.Item.FindControl("ddlRespon");
  #7 (permalink)  
Antiguo 20/09/2005, 09:44
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años
Puntos: 1
donde haces esto, en ke evento??? que quieres hacer con ese control???
__________________
:si: El hombre es el único animal que come sin tener hambre, bebe sin tener sed y habla sin tener nada que decir. :si:
  #8 (permalink)  
Antiguo 20/09/2005, 09:56
 
Fecha de Ingreso: julio-2005
Mensajes: 78
Antigüedad: 18 años, 9 meses
Puntos: 0
hehehe, chillin'

Mira te voy a mandar código pa ver si asi me entienes un poquito.

Mira, en el Load del formulario tengo un DropDownList afuera de la grid que tiene unos contratos, al cargar el form, en el DataGrid, en los controles que estan el el datagrid deben cargar tambien<-----Esto es lo ke no se hacer!
si el combo de los contratos tiene 3 registros deben cargar en el datagrid solo 3 y asi ...

Mira asi cargo los contratos ("el dropdownlist que esta afuera del datagrid") :


Código:
		#region Carga del webform
		protected void Page_Load(object sender, System.EventArgs e)
		{
			// Put user code to initialize the page here

			#region Carga Combo Contrato Label Descripción
			if(!IsPostBack)
			{
				string dirCon =Server.MapPath("General.xml");
				try
				{
					string strSQL="select strContrato,strDescripcion from vtblContrato";
					SqlConnection  cn= new SqlConnection (clsConexion.ConexionPrincipalXML(dirCon));
					SqlDataAdapter da= new SqlDataAdapter(strSQL,cn); 
					DataSet ds= new DataSet();
					da.Fill(ds);

					ddlContrato.DataSource=ds.Tables[0];
					ddlContrato.DataTextField="strContrato";
					ddlContrato.DataValueField="strDescripcion";
					ddlContrato.DataBind();
					
					MostrarLabelDesc();

				}
				catch(Exception Ex)
				{
					Response.Write(Ex.Message + " " + Ex.InnerException);
				}
			}
			else
			{
				MostrarLabelDesc();
			}
			#endregion

Ahora necesito hacer eso mismo pero teniendo en cuenta que el dropdownlist esta dentro de un datagrid, por medio de un template.

Espero que me hayas entendido
  #9 (permalink)  
Antiguo 20/09/2005, 10:02
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años
Puntos: 1
vale pues te vas a los eventos del datagrid que has creado y en el itemdatabound pones esto lo que te he dicho antes.
Ahi si que te tiene que dejar poner el e.

Y espero ke te valga xq me marcho a casa, mañana si eso seguimos.
__________________
:si: El hombre es el único animal que come sin tener hambre, bebe sin tener sed y habla sin tener nada que decir. :si:

Última edición por Nombela; 20/09/2005 a las 10:07
  #10 (permalink)  
Antiguo 20/09/2005, 10:05
 
Fecha de Ingreso: julio-2005
Mensajes: 78
Antigüedad: 18 años, 9 meses
Puntos: 0
Ok voy a probar.... no te vas a ir!!
  #11 (permalink)  
Antiguo 20/09/2005, 10:14
 
Fecha de Ingreso: julio-2005
Mensajes: 78
Antigüedad: 18 años, 9 meses
Puntos: 0
Ok voy a probar.... no te vas a ir!!
  #12 (permalink)  
Antiguo 20/09/2005, 10:27
 
Fecha de Ingreso: julio-2005
Mensajes: 78
Antigüedad: 18 años, 9 meses
Puntos: 0
:-d

hmm no me sacó error pero tampoco me cargó los datos cheka este cod:

Global declaré esto:

Código:
		DropDownList Prioridad= new DropDownList();
		DropDownList TipoE= new DropDownList();
		DropDownList Respon = new DropDownList();
en el evento itemdatabound hice esto:

Código:
		private void dgIngreso_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
		{
			Respon =(DropDownList)e.Item.FindControl("ddlRespon"); 
			TipoE =(DropDownList)e.Item.FindControl("ddlTipoE"); 
			Prioridad =(DropDownList)e.Item.FindControl("ddlPrioridad"); 
		}
Esos eran mis tres ddl del DataGrid

y en el load hice esto:


Código:
			#region Carga Combo Responsables
			string DirRes =Server.MapPath("General.xml");

			string SQLRespon="select strCodUsuario,strNombreCorto from tblUsuarios where intEstado=1 and strTipoUsuario=1 or strTipoUsuario=3 or strTipoUsuario=6 or strTipoUsuario=8";
			SqlConnection  cnRes= new SqlConnection (clsConexion.ConexionXML(DirRes));
			SqlDataAdapter daRes= new SqlDataAdapter(SQLRespon,cnRes); 
			DataSet dsRes= new DataSet();
			daRes.Fill(dsRes);
			
			Respon.DataSource=dsRes.Tables[0];
			Respon.DataTextField="strNombreCorto";
			Respon.DataValueField="strCodUsuario";
			Respon.DataBind();
			
			#endregion

			#region Carga Combo Tipo Error
			string dirTe =Server.MapPath("General.xml");
			try
			{
				string SQLTe="select strDescCortaTb,strDescripcionTb,strValorTb from tblTablasBasicas where strCodAppl=" + clsUtilidades.CodAppl(dirTe) + " AND strCodigoParam=" + clsUtilidades.CodParamTipoE(dirTe);
				SqlConnection  cnTe= new SqlConnection (clsConexion.ConexionXML(dirTe));
				SqlDataAdapter daTe= new SqlDataAdapter(SQLTe,cnTe); 
				DataSet dsTe= new DataSet();
				daTe.Fill(dsTe);

				TipoE.DataSource= dsTe.Tables[0];
				TipoE.DataTextField="strDescCortaTb";
				TipoE.DataValueField="strValorTb";
				TipoE.DataBind();
			}
			catch(Exception Ex)
			{
				Response.Write(Ex.Message + " " + Ex.InnerException);
			}
			#endregion

			#region Carga Combo Prioridad
			string dirPrio =Server.MapPath("General.xml");
			try
			{
				string SQLPrio="select strDescCortaTb,strDescripcionTb,strValorTb from tblTablasBasicas where strCodAppl=" + clsUtilidades.CodAppl(dirPrio) + " AND strCodigoParam=" + clsUtilidades.CodParamPrioridad(dirPrio);
				SqlConnection  cnPrio= new SqlConnection (clsConexion.ConexionXML(dirPrio));
				SqlDataAdapter daPrio= new SqlDataAdapter(SQLPrio,cnPrio); 
				DataSet dsPrio= new DataSet();
				daPrio.Fill(dsPrio);

				Prioridad.DataSource=dsPrio.Tables[0];
				Prioridad.DataTextField="strDescCortaTb";
				Prioridad.DataValueField="strValorTb";
				Prioridad.DataBind();
			}
			catch(Exception Ex)
			{
				Response.Write(Ex.Message + " " + Ex.InnerException);
			}
			#endregion

Que hice mal?? no me cargó ni un dato, pero tampoco sacó error
  #13 (permalink)  
Antiguo 21/09/2005, 01:47
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años
Puntos: 1
Mira para cargar tu combo tienes que hacer esto: te creas esta fucion en el codebehind

public SqlDataReader Combo()
{
SqlConnection conexion= new SqlConnection (clsConexion.ConexionXML(DirRes));
sqlcommand myCommand = new SqlCommand ("select strCodUsuario,strNombreCorto from tblUsuarios where intEstado=1 and strTipoUsuario=1 or strTipoUsuario=3 or strTipoUsuario=6 or strTipoUsuario=8",conexion);
conexion.Open();
return myCommand.ExecuteReader(CommandBehavior.CloseConne ction);
}

y luego en el html le pones:

<EditItemTemplate>
<asp:DropDownList runat="server" ID="ddlRespon" DataSource="<%# Combo() %>" DataTextField="strNombreCorto" DataValueField="strCodUsuario">
</asp:DropDownList>
</EditItemTemplate>

OK???

lo otro es para una vez cargado poder trabajar con el.
__________________
:si: El hombre es el único animal que come sin tener hambre, bebe sin tener sed y habla sin tener nada que decir. :si:
  #14 (permalink)  
Antiguo 21/09/2005, 09:15
 
Fecha de Ingreso: julio-2005
Mensajes: 78
Antigüedad: 18 años, 9 meses
Puntos: 0
Hola!!! primero ke todo muchas gracias por toda tu ayuda,

lo otro es: en ke parte del html pongo esto:

<EditItemTemplate>
<asp:DropDownList runat="server" ID="ddlRespon" DataSource="<%# Combo() %>" DataTextField="strNombreCorto" DataValueField="strCodUsuario">
</asp:DropDownList>
</EditItemTemplate>

Gracias
  #15 (permalink)  
Antiguo 21/09/2005, 09:41
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años
Puntos: 1
A ver pero tu del lado del html como tienes puesto lo del combo que esta dentro del datagrid???
__________________
:si: El hombre es el único animal que come sin tener hambre, bebe sin tener sed y habla sin tener nada que decir. :si:
  #16 (permalink)  
Antiguo 21/09/2005, 09:53
 
Fecha de Ingreso: julio-2005
Mensajes: 78
Antigüedad: 18 años, 9 meses
Puntos: 0
Código HTML:
 <Columns>
					<asp:TemplateColumn HeaderText="No. Prueba">
						<ItemTemplate>
							<asp:textbox id="txtNoPrueba" tabIndex="6" runat="server" Width="33px" Height="24px" MaxLength="4"
								Enabled="False"></asp:textbox>
						</ItemTemplate>
					</asp:TemplateColumn>
					<asp:TemplateColumn HeaderText="Tipo E.">
						<ItemTemplate>
							<asp:DropDownList id="ddlTipoE" runat="server" Height="6px" Width="48px"></asp:DropDownList>
						</ItemTemplate>
					</asp:TemplateColumn>
					<asp:TemplateColumn HeaderText="Módulo">
						<ItemTemplate>
							<asp:TextBox id="txtModulo" runat="server" Width="184px" MaxLength="50"></asp:TextBox>
						</ItemTemplate>
					</asp:TemplateColumn>
					<asp:TemplateColumn HeaderText="Prioridad">
						<ItemTemplate>
							<asp:DropDownList id="ddlPrioridad" runat="server" Width="40px"></asp:DropDownList>
						</ItemTemplate>
					</asp:TemplateColumn>
					<asp:TemplateColumn HeaderText="Descripción">
						<ItemTemplate>
							<asp:TextBox id="txtDesc" runat="server" Width="194px" Height="32px" MaxLength="2500" TextMode="MultiLine"></asp:TextBox>
						</ItemTemplate>
					</asp:TemplateColumn>
					<asp:TemplateColumn HeaderText="Rsble">
						<ItemTemplate>
							<asp:DropDownList id="ddlRespon" runat="server" Width="54px"></asp:DropDownList>
						</ItemTemplate>
					</asp:TemplateColumn>
					<asp:TemplateColumn HeaderText="Imagen">
						<ItemTemplate>
							<asp:CheckBox id="chk" runat="server" TextAlign="Left"></asp:CheckBox>
						</ItemTemplate>
						<EditItemTemplate>
						&lt;EditItemTemplate&gt;<BR>&lt;asp:DropDownList runat="server" ID="ddlRespon" 
						DataSource="&lt;%# Combo() %&gt;" DataTextField="strNombreCorto" 
						DataValueField="strCodUsuario"&gt;<BR>&lt;/asp:DropDownList&gt;<BR>&lt;/EditItemTemplate&gt;
						</EditItemTemplate>
					</asp:TemplateColumn>
				</Columns> 

mira ya metí el cod ke me mandaste ahí, no se si esta bien.. creo ke no porke no me ta funcionando
  #17 (permalink)  
Antiguo 21/09/2005, 09:57
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años
Puntos: 1
<Columns>
<asp:TemplateColumn HeaderText="No. Prueba">
<ItemTemplate>
<asp:textbox id="txtNoPrueba" tabIndex="6" runat="server" Width="33px" Height="24px" MaxLength="4"
Enabled="False"></asp:textbox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Tipo E.">
<ItemTemplate>
<asp:DropDownList id="ddlTipoE" runat="server" Height="6px" Width="48px" DataSource="<%# Combo()%>" DataTextField="strNombreCorto" DataValueField="strCodUsuario"></asp:DropDownList>

.....

y asi con los otros combos.
Ok?????
__________________
:si: El hombre es el único animal que come sin tener hambre, bebe sin tener sed y habla sin tener nada que decir. :si:

Última edición por Nombela; 21/09/2005 a las 10:03
  #18 (permalink)  
Antiguo 21/09/2005, 10:07
 
Fecha de Ingreso: julio-2005
Mensajes: 78
Antigüedad: 18 años, 9 meses
Puntos: 0
Mira el error ke saca:

Server Error in '/SPF_v1.0.2' Application.
--------------------------------------------------------------------------------

Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: CS0654: Method 'SPF_v1._0._2.WebForm1.Combo()' referenced without parentheses

Source Error:



Código:
Line 68: 					<asp:TemplateColumn HeaderText="Rsble">
Line 69: 						<ItemTemplate>
Line 70: 							<asp:DropDownList id="ddlTipoE" runat="server" Height="6px" Width="48px" DataSource="&lt;%# Combo%&gt;" DataTextField="strNombreCorto" DataValueField="strCodUsuario"></asp:DropDownList>
Line 71: 						</ItemTemplate>
Line 72: 					</asp:TemplateColumn>

Source File: http://localhost/SPF_v1.0.2/frmIngreso.aspx Line: 70
  #19 (permalink)  
Antiguo 21/09/2005, 10:11
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años
Puntos: 1
te falta poner las parentesis en combo es combo().

<asp:DropDownList id="ddlTipoE" runat="server" Height="6px" Width="48px" DataSource="<%# Combo()%>" DataTextField="strNombreCorto" DataValueField="strCodUsuario"></asp:DropDownList>
__________________
:si: El hombre es el único animal que come sin tener hambre, bebe sin tener sed y habla sin tener nada que decir. :si:
  #20 (permalink)  
Antiguo 21/09/2005, 10:11
 
Fecha de Ingreso: julio-2005
Mensajes: 78
Antigüedad: 18 años, 9 meses
Puntos: 0
ahhh ke wea yo, hehe era ddlRespon.!!!

era ddlRespon, Mil Gracias man!!!!
  #21 (permalink)  
Antiguo 21/09/2005, 10:14
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años
Puntos: 1
de nada hombre por aki estamos. Por cierto has tenido suerte xq ya me piro como ayer que aki en España son las 18:25.

Hasta luego
__________________
:si: El hombre es el único animal que come sin tener hambre, bebe sin tener sed y habla sin tener nada que decir. :si:
  #22 (permalink)  
Antiguo 22/09/2005, 10:25
 
Fecha de Ingreso: julio-2005
Mensajes: 78
Antigüedad: 18 años, 9 meses
Puntos: 0
buenass ..

Como hago para que el valor seleccionado en estos famosisimos combos sea igual k el registro seleccionado en la tabla???

Gracias!
  #23 (permalink)  
Antiguo 23/09/2005, 03:34
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años
Puntos: 1
Se hace como te dije al principio para manipular el combo ese.
Algo asi:

DropDownList Respon = new DropDownList();
Respon =(DropDownList)e.Item.FindControl("ddlRespon");
Respon.Items.FindByText("Aqui recupera el valor del registro seleccionado de la tabla").Selected=true;

Te vale???
__________________
:si: El hombre es el único animal que come sin tener hambre, bebe sin tener sed y habla sin tener nada que decir. :si:
  #24 (permalink)  
Antiguo 23/09/2005, 07:07
 
Fecha de Ingreso: julio-2005
Mensajes: 78
Antigüedad: 18 años, 9 meses
Puntos: 0
Hola nombela!

si, lo que pasa es que tengo un problema, a la hora de cargar los combos me toca hacer la consulta a una base de datos de saeguridad y ya al ser filtrado me toca es consultar a otra base de datos para mostrar el registro, entonces si hago la consulta a esta solo me aparece un registro en el combo .

No se entonces k hacer y lo otro es k los textbox y el checkbox k tengo en esa grid tampoco me kieren mostrar datos solo se me estan cargando los combos, estoy ke me devuelvo pa winforms mas bien

Gracias!!
  #25 (permalink)  
Antiguo 23/09/2005, 07:21
 
Fecha de Ingreso: julio-2005
Mensajes: 78
Antigüedad: 18 años, 9 meses
Puntos: 0
Haciendo lo k me acabaste de decir me sale este error en el catch :

Object reference not set to an instance of an object.
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 05:00.