2010-08-04 15 views
1

Je suis nouveau à asp.net et je connais peu de son travail et que je me déplace avant que je reçois de nouvelles et plus nouveaux doutes.Comment enregistrer demande de connexion à la base de données dans ce scénario

Ici, à ce stade, je travaillais avec deux RadioLists qui sont liés au chargement de la page.

Maintenant, lorsqu'un utilisateur modifie l'index du bouton radio dans la liste 1. La seconde doit être mise à jour en conséquence en fonction de la valeur actuellement définie pour le bouton radio sélectionné. Depuis la page sera réaffecté donc je soit besoin de tirer une requête à nouveau pour obtenir de nouvelles données de base pour l'index sélectionné ou peut stocker 2-3 tables dans session sous forme de Dataset.

Que dois-je faire dans ce scénario. Dois-je tirer une requête SQL à nouveau ou récupérer DataSet de session.

Quelle est l'approche la plus optimale pour cela. Et pourquoi ?

Répondre

1

Les données de la liste de boutons radio 1 (rbl1) ne doivent plus être extraites de la base de données. Il devrait déjà être rempli à partir de ViewState. Ceci est un objet invisible sur votre page qui garde la trace du contenu de vos commandes entre les charger dans le navigateur et retourner le formulaire au serveur. Si vous relancez rbl1 sur les données d'une publication, vous perdrez la sélection en cours.

Il ne devrait y avoir rien de mal à extraire les données pour la liste des radiobutton d'envoi de la base de données si les résultats vont changer en fonction de la sélection de la première. Toutefois, si la taille des données est faible, vous pouvez mettre en cache les résultats dans le cache de l'application, si tous les utilisateurs voient le même ensemble de données ou si le cache de session dépend de l'utilisateur. Puis, vous pouvez utiliser Linq pour interroger les données en fonction de la sélection de la première liste de radiobutton.

<asp:RadioButtonList ID="rbl1" runat="server" AutoPostBack = "true" 
OnSelectedIndexChanged="rbl1_SelectedIndexChanged"> 

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!IsPostBack) 
    { 
     //bind your rbl1 here 
    } 
} 

protected void rbl1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    //load your second radio button list depending on the selection of the first 
}