¿Cómo reemplazar parcialmente la página asp.net con una solicitud jquery ajax?

Digamos, tengo un control Listview en la página. Cada elemento de Listview tiene 2 listas desplegables y 1 cuadro de texto. Cuando la primera lista desplegable tiene un valor seleccionado cambiado, la segunda lista desplegable debe llenarse con la ciudad, dependiendo de la primera. Finalmente, cuando se selecciona un valor para la segunda lista desplegable, debe aparecer un costo en el cuadro de texto.

  
Country City Cost

Ahora quiero usar ajax cuando el usuario selecciona un valor diferente para la lista desplegable

 $('select').change(function () { $.ajax({ type: "POST", url: "Default.aspx/DropDownList1_SelectedIndexChanged", data: "{}", success: function(msg) { // Replace the div's content with the page method's return. // } }); 

Quiero reemplazar solo el elemento tr entero. Esas son mis preguntas:

  1. ¿Qué debo enviar en los datos? ¿El valor de la lista desplegable?

  2. ¿Cómo reemplazo solo la fila que contiene la lista desplegable que activó la llamada ajax?

EDITAR

Todos los métodos tienen la siguiente firma.

 protected void ddlCountry_SelectedIndexChanged(object sender, EventArgs e) 

Es una página muy larga y compleja.

Gracias por ayudar

En primer lugar, mirando el código de muestra que publicó y cómo planea hacer la llamada Ajax, deberá habilitar los PageMethods de página en su página. Vea este tutorial sobre cómo hacer esa parte.

La llamada real ajax usando jQuery puede ser tan simple como esto:

 $('select').change(function () { $.post('Default.aspx/MethodName',{selectedVal:$(this).val()}, function(data){ //as far as placing the result in the input text field, I think this will do: $(this).parents('tr').find('input:text').val(data); }); }); 

Ahora, su método MethodName debería verse así:

  [WebMethod] public static string MethodName(string selectedVal) { return "something"; } 

jsfiddle (menos la llamada ajax).

Actualizar

Lo siento, malinterpreté la pregunta, el OP quiere reemplazar la fila ENTERA. Esto hará entonces:

  $(this).parents('tr').replaceWith('
'+data+'
');

Contexto completo:

 $('select').change(function () { $.post('Default.aspx/MethodName',{selectedVal:$(this).val()}, function(data){ //as far as replacing the row, this will do: $(this).parents('tr').replaceWith('
'+$(this).val()+'
'); }); });