Dropdownlist dans un formview + sqldatasource
Bonjour,
J'ai deux formview utilisés pour faire des ajout dans un gridview. Dans les formview, j'ai un dropdownlist qui permet à l'utilisateur de choisir une personne et ainsi de l'ajouter dans le gridview. Cette liste de personne est assez grosse (environ 2000) et il n'y a pas de moyen de la filtrer ou réduire pour l'instant.
Le dropdownlist est branché sur un SQLDataSource (Stored Proc sur SQL Server). Lors de l'ouverture de la page, les deux dropdownlist sont remplient avec la liste de personnes (il y a un petit délai mais c'est ok pour l'utilisateur).
Le problème est que le délai est aussi présent à chaque insertion à partir du formview car il y a un postback et le SQLDataSource semble aller recharger tout la liste de personnes sur le serveur(J'utilises des updatepanel partout).
J'aimerais savoir si il y a une possibilité d'aller chercher la liste des personnes et de remplir le dropdownlist seulement une seule fois et ne jamais perdre le contenu du dropdownlist lors d'un postback et ne pas aller recharger la liste à chaque postback.
Code:
1 2 3 4
|
<asp:SqlDataSource ID="sdsListePersonne" runat="server" ConnectionString="<%$ ConnectionStrings:DB_36624_hlm_ConnectionString %>"
SelectCommand="spListePersonne" SelectCommandType="StoredProcedure" DataSourceMode="DataReader"
OnSelecting="sdsListePersonne_Selecting"></asp:SqlDataSource> |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div style="height: 30px">
<asp:UpdateProgress ID="UpdateProgress3" AssociatedUpdatePanelID="UpdatePanel2" runat="server">
<ProgressTemplate>
<br />
Traitement des données, un moment S.V.P.
</ProgressTemplate>
</asp:UpdateProgress>
</div>
<asp:FormView ID="fvAjoutJoueurVisiteur" runat="server" DataSourceID="sdsJoueurVisiteur"
DataKeyNames="intIDSSJoueur" DefaultMode="Insert" ViewStateMode="Enabled">
<InsertItemTemplate>
Joueur :
<ajaxToolkit:ComboBox ID="insertddlFKintIDPersonne" runat="server" DataSourceID="sdsListePersonne"
DataTextField="strNomComplet" DataValueField="intIDPersonne" SelectedValue='<%# Bind("FKintIDPersonne") %>'
AutoCompleteMode="SuggestAppend" DropDownStyle="DropDownList">
</ajaxToolkit:ComboBox>
<br />
Position :<asp:DropDownList ID="insertddlFKintIDJoueurPosition" runat="server" DataSourceID="sdsListePosition"
DataTextField="strNomPosition" DataValueField="intIDJoueurPosition" SelectedValue='<%# Bind("FKintIDJoueurPosition") %>'>
</asp:DropDownList>
<br />
<asp:Button ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert"
ToolTip="Enregistrer" Text="Ajouter le joueur dans l'allignement visiteur" />
</InsertItemTemplate>
</asp:FormView>
</ContentTemplate> |
Je suis ouvert s'il y a d'autre solutions que d'utiliser un SQLDataSource et de faire du codebehind.
Merci beaucoup et bonne journée !