ASP.NET - ASP y JavaScript

 
Vista:

ASP y JavaScript

Publicado por Emmanuel (2 intervenciones) el 09/08/2012 01:13:26
Que tal amigos, tengo la siguiente pregunta, soy nuevo en esto de programas en asp y javascript

tengo un combo
<asp:DropDownList runat="server" id="DropDownList1" AutoPostBack="True">
<asp:ListItem Selected="True">2009</asp:ListItem>
<asp:ListItem>2010</asp:ListItem>
</asp:DropDownList>

con esos 2 elementos ahora bien tengo un boton

<asp:Button runat="server" Text="Buscar" id="ButtonDescargar" OnClientClick="Descarga()r" />

y ese boton manda llamar una funcion de javascript que me deberia de descargar un archivo pero no se si estoy obteniendo bien el valor que trae el ComboBox, en si no me hace nada y solo me envia un error diciendo que se requiere un objero, podrian ayudarme?

function Descargar()
{
var valor=document.getElementById('ctl00_pnlContent_DropDownList1').
options[document.getElementById('ctl00_pnlContent_DropDownList1').selectedIndex].
value;
if( valor == "2009")
{
document.location = 'http://miURL/Archivo_2009.xlsx';
window.open(archivo);//Descarga archivo 2009
}
if( valor == "2010")
{
document.location = 'http://MiURL/Archivo_2010.xlsx';
window.open(archivo);//muestra popup
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

ASP y JavaScript

Publicado por Sebastian Cruz (35 intervenciones) el 10/08/2012 15:00:47
Puede q tu probleama sea que el nombre de tu control no sea correcto y por eso la funcion de javascript no encuentra el control, recuerda q los controles asp al ser renderizados al cliente se convierten en controles html standars, pero con la particularidad q los mismos cambian alguno de sus datos como ser el nombre del campo id segun ciertos criterios del netframework

Para evitar los dramas mencionados en lugar de colocar de pecho el nombre del control renderizado como en el ejemplo seria mas convenientes que uses la propiedad clientID del control en particular con lo q te quedaria

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function Descargar()
{
var valor=document.getElementById('<%=DropDownList1.ClientID=%>').
options[document.getElementById('<%=DropDownList1.ClientID=%>').selectedIndex].
value;
if( valor == "2009")
{
document.location = 'http://miURL/Archivo_2009.xlsx';
window.open(archivo);//Descarga archivo 2009
}
if( valor == "2010")
{
document.location = 'http://MiURL/Archivo_2010.xlsx';
window.open(archivo);//muestra popup
}
}


en caso de que el javascript no este definido dentro del code behind (clase de la pagina asp)

Si la cadena javascript la armas dentro de la clase el lugar de poner los caracteres de escape ASP (<%%>) simplemente concatenas el texto con el valor ClientID del control en particular.

Espero q esto resuelva tu problema, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ASP y JavaScript

Publicado por Sebastian Cruz (35 intervenciones) el 10/08/2012 15:03:36
me equivoque al poner el ejemplo, la sentencia asp q va dentro del javascript es de esta manera

<%=DropDownList1.ClientID %>

sin el igual al final, solo al principio
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ASP y JavaScript

Publicado por Emmanuel (2 intervenciones) el 05/09/2012 18:51:02
Excelente, Muchas gracias por tu ayuda! lo voy a probar!!

Saludos
Emmanuel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar