Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manual Aspnet35vb Lec32
Manual Aspnet35vb Lec32
2. PERSONALIZAR LA SELECCIN
Puede utilizar
los eventos
SelectedIndex
Changing y
SelectedIndex
Changed para
escribir cdigo
asociado al
momento
previo y
posterior a
seleccionar
una fila.
3. USAR
LA
SELECCIN
MAESTRO/DETALLE
EN
UN
FORMULARIO
Otro ejemplo
de este tipo de
formularios es
visualizar las
rdenes y las
lneas de
detalle de
cada una de
ellas.
Haga grande
este cuadro de
dilogo para
poder trabajar
con las
propiedades
avanzadas del
parmetro.
El origen del valor del parmetro vendr dado por la seleccin del
control grdCustomers, es decir, de la rejilla con los datos de los
clientes de la parte superior de la pgina. Por ello, debe elegir Control
en la lista Parameter source y dicho control en la lista inferior.
Adems, al pulsar en Show advanced properties puede establecer las
propiedades necesarias del parmetro.
La cuestin aqu es indicar de dnde se recoger el valor para el
parmetro @CustomerID.
Sabemos que podemos hacerlo a travs de la propiedad
DataKeyNames del control GridView de la parte superior de la pgina.
Pues deberemos establecerlo en la propiedad PropertyName del
parmetro.
Si se fija en la figura anterior, comprobar que el valor dado para
dicha propiedad es la expresin:
SelectedDataKey.Values(CustomerID).
Como SelectedDataKey es una coleccin, debemos indicar
exactamente qu campo, para lo que utilizamos la propiedad Values y el
nombre del campo entre parntesis.
Con esto conseguimos el resultado deseado, es decir, que cada vez
que queda seleccionado un cliente en el control GridView superior,
aparece sus rdenes en el control GridView inferior.
Para ello, es necesario realizar un postback de la pgina y,
seguramente, volver a realizar la consulta en la base de datos.
Con todo ello, ya sabemos cmo preparar un formulario
maestro/detalle, tarea habitual en el desarrollo de una aplicacin de base
de datos.
El control GridView tambin proporciona funcionalidad para
editar, es decir, aadir, eliminar o modificar registros de un origen de
datos.
Sin embargo, normalmente es mejor utilizarlo para mostrar
informacin de la base de datos y realizar estas operaciones de edicin
utilizando acceso conectado a la base de datos, es decir, mediante
comandos SQL.
Esto quiere decir que si el control GridView se enlaza cada vez que
ocurre un postback, entonces no tiene sentido habilitar su ViewState, ya
que en todas las ocasiones que se accede al servidor web se realizar la
correspondiente consulta a la base de datos.
En nuestro caso esto es as por varios motivos: primero porque se
utiliza paginacin, lo que hace que se realice la consulta a la base de
datos cada vez que el usuario solicita una pgina distinta del conjunto de
resultados; y segundo porque no tenemos el control para evitarlo al
utilizar un objeto SqlDataSource como origen de los datos al que est
enlazado el GridView.
Por lo tanto, parece obvio que ser conveniente deshabilitar el
ViewState, ya que realmente no se utiliza para rellenar los datos en este
escenario. Recuerde que simplemente tiene que establecer el valor False
en la propiedad EnableViewState del control GridView.
En versiones anteriores de este tipo de controles, no se poda
deshabilitar el ViewState si se utilizaba alguna de las funcionalidades de
paginacin u ordenacin.
Afortunadamente esto no es as con el control GridView, ya que
los detalles necesarios para realizar esas funciones no los guarda en el
ViewState sino en una parte de ste que no puede deshabilitarse, el
Control State.
Se podra decir que hemos visto la mitad de la ecuacin porque en
el escenario planteado tiene sentido deshabilitar el ViewState de
controles como el GridView ya que cada vez que se realiza un postback,
vuelve a accederse a la base de datos.
Sin embargo, puede que sta no sea la mejor solucin y que otras
alternativas, como almacenar el resultado de la consulta en cach y
utilizarla cada vez, sean incluso mejor.
La segunda parte de la ecuacin es precisamente estudiar la cach
de ASP .NET.
Conociendo este componente de ASP .NET ser capaz de decidir
la mejor alternativa en cada caso.
10