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

Ayuda!! Paso de Variable desde Un PopUp

Estas en el tema de Ayuda!! Paso de Variable desde Un PopUp en el foro de ASPX (.net) en Foros del Web. Hola amigos del Foro, espero me puedan ayudar, les cuento tengo 2 paginas aspx, en la primera un formulario (que es la principal), en donde ...
  #1 (permalink)  
Antiguo 28/10/2005, 13:59
 
Fecha de Ingreso: enero-2005
Mensajes: 103
Antigüedad: 19 años, 3 meses
Puntos: 0
Ayuda!! Paso de Variable desde Un PopUp

Hola amigos del Foro, espero me puedan ayudar, les cuento tengo 2 paginas aspx, en la primera un formulario (que es la principal), en donde hago click en un Boton y se me abre un PopUp con 3 opciones (que seria las segunda pagina), lo que hago una vez que selecciono una de esas 3 opciones, es consultar a una Base de Datos y asignar el valor a un Textbox de la Primera Pagina, hasta ahi no hay problema, el problema me surgio ahora que debo rescatar 2 valores de la Base de Datos y asignarlos a 2 Textbox de la Pagina Principal......espero me entiendan... aqui les mando parte del codigo de las 2 paginas, ojala me puedan ayudar

Primera Pagina(Principal)

<html>
<head>
<script language="javascript"> function Precios(obj)
{
var url = 'VerPrecios.aspx?textbox=' + obj;
window.open(url,'cal','width=517,height=577,left=3 70,top=350,resizable=0,scrollbars=0');
}
</script>
</head>
<body>
<form runat="server">
<p>
<asp:TextBox id="Textbox1" runat="server"></asp:TextBox>
<a onclick="VerPrecios('Textbox1');" href="#">ver</a>
</p>
<p>
<!-- Insert content here -->
</p>
</form>
</body>
</html>


Segunda Pagina (Popup),

<%@ Page Language="VB" %>

Sub Button1_Click(sender As Object, e As EventArgs)
Dim obj As String = Request.QueryString("textbox")
= "<script>window.opener.document.getElementById ('" + obj + "').value = '"

Dim aux As New System.Data.DataSet
' Consulta es la Funcion que me rescata los valores de la Base de Datos
aux = consulta(RadioButtonList1.SelectedItem.text)

If Not obj Is Nothing Then
strScript += aux.tables(0).rows(0).item(0)
strScript += "';self.close()"
strScript += "</" + "script>"
RegisterClientScriptBlock("Change", strScript)
End If

End Sub

Última edición por rfgb1976; 29/10/2005 a las 13:45
  #2 (permalink)  
Antiguo 28/10/2005, 17:45
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
pero cual es el problema?
  #3 (permalink)  
Antiguo 28/10/2005, 18:26
 
Fecha de Ingreso: enero-2005
Mensajes: 103
Antigüedad: 19 años, 3 meses
Puntos: 0
El problema es que necesito pasar 2 variables al mismo tiempo (o sea del Popup a la pagina principal) y no una... eso es lo que no se hacer.....espero me entiendas..

Saludos
  #4 (permalink)  
Antiguo 29/10/2005, 20:13
Avatar de splinter  
Fecha de Ingreso: junio-2004
Ubicación: Misantla,Ver.Mexico
Mensajes: 181
Antigüedad: 19 años, 10 meses
Puntos: 0
Podrias concatenar los valores que necesitas pasar en una sola cadena separado por un caracter y despues usar la funcion split para separa los valores, asi solo usarias una sola variable con multiples valores

"valor1:valor2:valor3";


saludos
  #5 (permalink)  
Antiguo 30/10/2005, 10:04
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 3 meses
Puntos: 7
Hmm, me parece que sería _mejor_ que lo hagas de la manera tradicional:
Código:
VerPrecios.aspx?variable1=valo1r&variable2=valor2&variable3=valor3....
Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #6 (permalink)  
Antiguo 30/10/2005, 22:43
 
Fecha de Ingreso: enero-2005
Mensajes: 103
Antigüedad: 19 años, 3 meses
Puntos: 0
Hola a To2, Hice lo que me dijeron, pero no me funciono , aqui les mando el codigo, espero me puedan ayudar....

Pagina Principal
<%@ Page Language="VB" Debug="True" %>
<script runat="server">
' Insert page code here
'
</script>
<html>
<head>
<script language="javascript">
function VerPrecio(obj,obj2)
{
var url = Prueba2.aspx?textbox=obj&textbox2=obj2;
window.open('url','cal','width=517,height=577,left =3 70,top=350,resizable=0,scrollbars=0');
}
</script>
</head>
<body>
<form runat="server">
<p>
<asp:TextBox id="TextBox1" runat="server" ReadOnly="True" TextMode="MultiLine" Width="251px"></asp:TextBox>
<asp:TextBox id="TextBox2" runat="server"></asp:TextBox>
<a onclick="VerPrecio('TextBox1','TextBox2');" href="#">Ver</a>
</p>
<!-- Insert content here -->
</form>
</body>
</html>

Pagina Popup
<%@ Page Language="VB" Debug="True" %>
<script runat="server">
' Insert page code here
'
Function Consulta(ByVal descripcion As String) As System.Data.DataSet
Dim connectionString As String = "server='(local)'; user id='Cementerioaspnet'; password='12345'; database='Cemente"& _
"rio'"
Dim dbConnection As System.Data.IDbConnection = New System.Data.SqlClient.SqlConnection(connectionStri ng)

Dim queryString As String = "SELECT [Descripcion].[Descripcion], [Descripcion].[Valor], [Descripcion].[Años] F"& _
"ROM [Descripcion] WHERE ([Descripcion].[Descripcion] = @Descripcion)"
Dim dbCommand As System.Data.IDbCommand = New System.Data.SqlClient.SqlCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection

Dim dbParam_descripcion As System.Data.IDataParameter = New System.Data.SqlClient.SqlParameter
dbParam_descripcion.ParameterName = "@Descripcion"
dbParam_descripcion.Value = descripcion
dbParam_descripcion.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_descripcion)

Dim dataAdapter As System.Data.IDbDataAdapter = New System.Data.SqlClient.SqlDataAdapter
dataAdapter.SelectCommand = dbCommand
Dim dataSet As System.Data.DataSet = New System.Data.DataSet
dataAdapter.Fill(dataSet)

Return dataSet
End Function

Sub Button1_Click_1(sender As Object, e As EventArgs)
Dim auxDS As New System.Data.DataSet
auxDS = consulta(RadioButtonList1.SelectedItem.text)
Dim obj As String = Request.QueryString("textbox")
Dim obj2 As String = Request.QueryString("textbox2")

If Not obj Is Nothing Then
Dim strScript As String = "<script>window.opener.document.getElementById ('" + obj + "').value = '"
strScript += auxDs.tables(0).rows(0).item(0)
strScript += "';self.close()"
strScript += "</" + "script>"
RegisterClientScriptBlock("ChangeDate", strScript)
End If

If Not obj2 Is Nothing Then
Dim strScript2 As String = "<script>window.opener.document.getElementById ('" + obj2 + "').value = '"
strScript2 += auxDs.tables(0).rows(0).item(2)
strScript2 += "';self.close()"
strScript2 += "</" + "script>"
RegisterClientScriptBlock("ChangeDate2", strScript2)
End If

End Sub

</script>
<html>
<head>
</head>
<body>
<form runat="server">
<p align="left">
<asp:RadioButtonList id="RadioButtonList1" runat="server" RepeatLayout="Flow" OnSelectedIndexChanged="RadioButtonList1_SelectedI ndexChanged" AutoPostBack="True" OnSelectionChanged="RadioButtonList1_SelectedIndex Changed" Width="363px" Height="45px" Font-Size="XX-Small" Font-Names="Verdana">
<asp:ListItem Value="Nichos Triples Adultos Perpetuos Rasantes del Suelo / 50 U.T.M.">Nichos Triples Adultos Perpetuos Rasantes del Suelo / 50 U.T.M.</asp:ListItem>
<asp:ListItem Value="Nichos Doble Adulto Perpetuos Rasantes del Suelo / 40 U.T.M.">Nichos Doble Adulto Perpetuos Rasantes del Suelo / 40 U.T.M.</asp:ListItem>
<asp:ListItem Value="Nichos Doble Párvulo Perpetuos Rasantes del Suelo / 45 U.T.M.">Nichos Doble Párvulo Perpetuos Rasantes del Suelo / 45 U.T.M.</asp:ListItem>
</asp:RadioButtonList>
</p>
<p>
<asp:Button id="Button1" onclick="Button1_Click_1" runat="server" Text="Button"></asp:Button>
</p>
<!-- Insert content here -->
</form>
</body>
</html>

Saludos y desde ya muchas gracias
Roberto
  #7 (permalink)  
Antiguo 31/10/2005, 07:27
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 3 meses
Puntos: 7
Como quieres que funcione si estás declarando mal esta variable:
Código:
var url = Prueba2.aspx?textbox=obj&textbox2=obj2;
debería ser:
Código:
var url = "Prueba2.aspx?textbox=" + obj + "&textbox2=" + obj2;
Saludos
PS. Supongo que puede haber otros errores, pero como no indentaste tu código, es muy confuso...
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #8 (permalink)  
Antiguo 31/10/2005, 11:05
 
Fecha de Ingreso: enero-2005
Mensajes: 103
Antigüedad: 19 años, 3 meses
Puntos: 0
Excelente Xknown..!!!!!!!!!!!!! efectivamente estaba declarando mal la variable

Muchas Gracias por la Ayuda
Saludos
  #9 (permalink)  
Antiguo 17/11/2005, 06:10
Avatar de Hell08  
Fecha de Ingreso: enero-2005
Mensajes: 174
Antigüedad: 19 años, 3 meses
Puntos: 0
estoy haciendo algo parecido ... pero quiero mandar a un textbox oculto una variable .... pero el problema que no escribe en el textbox oculto.

si pongo el texbox visible .... no hay ningun problema pero si lo pongo no visible no funca .... alguien sabe porque.

gracias.
__________________
existen 10 tipos de personas los que entienden los numeros binarios y los que no :cool:
  #10 (permalink)  
Antiguo 17/11/2005, 08:47
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
yo lo que hago es agregar el textbox en un DIV oculto...

p.e.

Código:
<div style="DISPLAY: none">
<asp:textbox id="myTextBox1" runat="server">
</div>
  #11 (permalink)  
Antiguo 17/11/2005, 08:55
Avatar de Hell08  
Fecha de Ingreso: enero-2005
Mensajes: 174
Antigüedad: 19 años, 3 meses
Puntos: 0
vale .... me funko perfecto ..... gracias
__________________
existen 10 tipos de personas los que entienden los numeros binarios y los que no :cool:
  #12 (permalink)  
Antiguo 17/11/2005, 12:49
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 3 meses
Puntos: 7
Para eso es mejor usar un elemento de tipo hidden, sin poner cosas innecesarias.
Código:
<input type="hidden" id="foo" name="foo" runat="server" />
Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
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 06:21.