ASP.NET - Referenciar ID's en Javascript

   
Vista:

Referenciar ID's en Javascript

Publicado por Javier Santamaria (312 intervenciones) el 01/10/2007 12:51:48
Hola,

Os pongo en situacion:
Tengo tres textbox y un radio button list. Un textbox es el precio total, otro es el descuento y otro el precio final. En el readio button list se muestran las opciones del tipo de descuento, que puede ser porcentual o cuantitativo.

Quiero crear una funcion de javascript que cuando cambie el descuento y ese textbox pierda el foco me calcule automaticamente el precio final. Esta funcion obviamente necesita saber que tipo de descuento se aplica para aplicar una formula u otra. La funcion la he creado y funciona perfectamente en una pagina de prueba, pero no me funciona en mi pagina.

El problema creo que esta al utilizar una master page (no utilizada en la pagina de prueba). Ya que, cuando intento recuperar el elemento del documento mediante "document.getElementById, no se que "id" utilizar. Es decir, he probado con:

1. La id que utilizaba en mi pagina de prueba que era: "Rdol_0". Esta id la copie del codigo HTML que se genera para mostrar la pagina. La id supuse que se correspondia con el nombre de la radio button list (Rdol) y el indice de la opcion seleccionada (_0).

2. La id que se genera en esta nueva pagina: 'ctl00_ContentPlaceHolder_RdoLConcession_0'. Donde vemos que se añade el codigo del content place holder.

Ninguna de las dos alternativas funciona. Por tanto pregunto a ver si alguien me puede decir como puedo obtener el indice seleccionado de la radio button list en javascript, teniendo en cuenta que se usa un content place holder.

Y para un futuro, como poder renombrar al crearse la pagina html los elementos utilizados en asp.net para poder referenciarlos luego mediante javscript, en lugar de tener que copiar y pegar nombres tan largos como el de la degunda prueba.

PD: Os dejo la funcion por si ayuda en algo:

function CalculateFare(d,t,f)
{
if (document.getElementById('ctl00_ContentPlaceHolder_RdoLConcession_0').checked == true)
{
f.value = (1 - (d.value / 100)) * t.value;
}
else
{
f.value = t.value - d.value;
}
}

Saludos y muchas gracias
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
Imágen de perfil de Santos Pairazamán

RE:Referenciar ID's en Javascript

Publicado por Santos Pairazamán (46 intervenciones) el 01/10/2007 21:41:00
Para empezar mándale a tu function el ClientID de tu control ya q asp net le da un nombre diferente, por ejm que el argumento se llame ctrl

var textbox = eval(document.getElementById(ctrl));
if(textbox != null){
//aqui haces tu operacion
}

si lo quiere hacer desd el mismo asp net, pongo una part de código q uso para cambiar propiedades de algunos controles [0] es cuando busca en la master y 1 es cuando busca en un content page, Main es el nombre del contentplaceholder
(aqui si puedes poner el nombre q tu le das en modo diseño)

If dnd = 0 Then
myCtrl = pagina.Master.FindControl("txtejemplo")
Else
myCtrl = pagina.Master.FindControl("Main").FindControl("txtejemplo1")
End If

If (Not myCtrl Is Nothing) Then
myCtrl.Visible = True
End If

espero t sirva
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

RE:Referenciar ID's en Javascript

Publicado por Javier Santamaria (312 intervenciones) el 02/10/2007 10:06:02
Hola Santos,

Gracias por responder. El caso es que ya puedo recoger el control, pero al tratarse de un radio button list, luego no se como conocer que opcion esta marcada de entre todos los radiobutton.

Si alguien sabe como discernir entre la opcion marcada y las que no lo estan me sera de gran ayuda su consejo.

Saludos y gracias
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

RE:Referenciar ID's en Javascript

Publicado por Javier Santamaria (312 intervenciones) el 02/10/2007 12:02:08
Hola de nuevo, he llegado a esta funcion que me ha servido para solucionar el tema:

<script type="text/javascript" language="javascript" >

function CalculateFare(d)
{
var t = document.getElementById('<%=TxtPrice.ClientId%>');
var f = document.getElementById('<%=TxtFinalPrice.ClientId %>');
if (GetSelectedOption('<%=RdoLConcession.ClientId%>') == "%")
{
f.value = (1 - (d.value / 100)) * t.value;
}
else
{
f.value = t.value - d.value;
}
}

function GetSelectedOption(ctrlOptionsId)
{
var position = 0;
var item = document.getElementById(ctrlOptionsId+"_"+position );
while(item != null)
{
if(item.checked)
{
return item.value
}
else
{
position += 1;
item = document.getElementById(ctrlOptionsId+"_"+(positio n));
}
}
}

</script>

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