
OK u_goldman, está chévere le código que me enviastes.
Sin embargo, el sql que llena el grid, no es el mismo que utilizo para crear el combo; es decir son dos tablas de la B.D. que se encuentran relacionadas.
El combo es de personas y el grid debe contener datos de los proyectos en los cuales la persona ha trabajado.
Ejm:
Pepito Perez ---> este es el nombre de la persona
Proyecto X ¬
Proyecto Y |--> Son los proyectos en que ha trabajado
Proyecto Z -
Eso quiere decir que la relación es de uno a muchos; por lo que necesito que las filas de mi grid sea dinámico también.
Cómo podría hacer ésto, basándome en el mismo código que me enviastes ?
El siguiente código es lo que tengo:
Código:
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>
<BR><BR>
<center>
<strong><font FACE="verdana" SIZE="4">Combo Dinámico Enlazado con un Grid</font></strong>
<FORM ACTION="" METHOD="POST" NAME="frmRecord">
<BR>
<TABLE BORDER=0 WIDTH="100%" class="DataForm">
<TR>
<TD WIDTH="15%">
Persona Asignada:
</TD>
<TD WIDTH="71%">
<Select Name="rola_persona" OnChange="cmdRolAnt(document.forms.frmRecord.rola_persona.value);">
<%
'---declaración de variables
Dim Cnn, SQL, rs
Set Cnn = Server.CreateObject("ADODB.Connection")
Cnn.Open Application("CadenaConexion") 'conexion abierta
SQL = "SELECT (pe_apellidos & '_' & pe_nombres) as nombre, "
SQL = SQL & " (pe_apellidos & ' ' & pe_nombres) as nombre_persona "
SQL = SQL & " FROM Personal Order By (pe_apellidos & ' ' & pe_nombres)"
Set rs = Cnn.Execute(SQL)
While Not rs.EOF
%>
<option value="<%=rs("nombre")%>"><%=rs("nombre_persona")%></option>
<%
rs.MoveNext
Wend
%>
</Select>
</TD>
</TR>
<TR><TR>
<TR>
<TD WIDTH="15%">
Roles Asignados Anteriormente:
</TD>
<TD WIDTH="71%">
<table id="tblRecords" WIDTH="10%" border=1 align="left">
<tr>
<th COLSPAN="2"></th>
<th COLSPAN="2" align="center">Período</th>
</tr>
<tr>
<th WIDTH="20%">Proyecto</th>
<th WIDTH="20%">Rol</th>
<th WIDTH="10%">Desde</th>
<th WIDTH="10%">Hasta</th>
</tr>
<td id="proyecto" WIDTH="20%">
</td>
<td id="rol" WIDTH="20%">
</td>
<td id="feDesde" WIDTH="10%">
</td>
<td id="feHasta" WIDTH="10%">
</td>
</table>
</TD>
</TR>
</TABLE>
</FORM>
</Center>
</BODY>
<script language = "JavaScript">
<!--
var opcion= "<table border=1>"
<%
'---Vamos a crear nuestros arrays de proyectos desde ASP
'---El primer if detecta un cambio en el proyecto para
'---crear un nuevo array en Javascript
SQLRol = "Select ra.*, proy.py_titulo as nom_proyecto "
SQLRol = SQLRol & " From Roles_Asignados as ra, Proyectos as proy "
SQLRol = SQLRol & " Where ra.rola_proyecto_cod = proy.py_codigo Order By rola_persona, rola_rol"
set rs = CreateObject("ADODB.Recordset")
rs.Open SQLRol, Cnn
cuenta = 0
cat = "basura"
While Not rs.EOF
if cat <> rs.Fields("rola_persona") then
'---cambio de contacto, empiezo a contar en 0
cuenta = 0
cat = rs.Fields("rola_persona")
cat1 = replace(rs.Fields("rola_persona")," ","_")
'---además tengo que crear un nuevo array para los contactos
end if
%>
var opcion<%=cat1%>_py = opcion + "<td align=left><%=rs("nom_proyecto")%></td>";
var opcion<%=cat1%>_rol = opcion + "<td align=left><%=rs("rola_rol")%></td>";
var opcion<%=cat1%>_feDesde = opcion + "<td align=center><%=rs("rola_fecha_desde")%></td>";
var opcion<%=cat1%>_feHasta = opcion + "<td align=center><%=rs("rola_fecha_hasta")%></td>";
<%
cuenta = cuenta + 1
rs.MoveNext
wend
'---Limpiamos objetos
rs.Close
set rs = nothing
%>
function cmdRolAnt ( nom_persona )
{
// asigna a variable cada el name creado para cada caso (proyecto, rol, fecha desde, fecha hasta)
capa1= "opcion" + nom_persona + "_py";
capa2= "opcion" + nom_persona + "_rol";
capa3= "opcion" + nom_persona + "_feDesde";
capa4= "opcion" + nom_persona + "_feHasta";
// permite hacer referencia a cada una de las columnas de la tabla definida en la forma
document.getElementById("proyecto").innerHTML=eval(capa1);
document.getElementById("rol").innerHTML=eval(capa2);
document.getElementById("feDesde").innerHTML=eval(capa3);
document.getElementById("feHasta").innerHTML=eval(capa4);
}
//Inicializamos
cmdRolAnt(document.forms.frmRecord.rola_persona.value);
-->
</script>
</HTML>
Alguien me podría ayudar........
:'(