Probleme refresh gridview

kamapa Messages postés 3 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 2 janvier 2007 - 1 janv. 2007 à 17:17
kamapa Messages postés 3 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 2 janvier 2007 - 2 janv. 2007 à 11:07
Bonjour,
etant debutant, j'utilise un datasource et une gridview. jusque là, tout va tre bien. Ensuite, pour filtrer mon gridview, j'ai utilisé un txtbox dans lequel je saisie une lettre. Je modifi donc le selectcommand de mon datasource; mais voilà, quand je veux ensuite "editer" pour mettre à jour une ligne, il me recharge le gridview avec la source de données  d'origine. c'est comme si il ne gardait pas en memoire mon filtre. Je pense que cela est lié au mode déconnecté, mais comment puis je faire pour garder mon filtre? Quelqu'un a t'il une idée?
Merci

2 réponses

cs_azra Messages postés 425 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 13 juillet 2007 1
2 janv. 2007 à 09:40
Bonjour,

Je suppose que tu mets à jour ton filtre dans ton évenement selectcommand.
Le problème c'est que lorsque tu repasses en mode visu, ton événement n'est pas reéxécuté, donc ton filtre n'est pas réappliqué.
Il te faut donc mettre à jour ton filtre ailleurs et persister l'information comme quoi ta grille est filtrée.

Copie moi ton bout de code si tu veux.

Bon courage!

<hr />Azra(Florent) - MCSD.NET - MCT
0
kamapa Messages postés 3 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 2 janvier 2007
2 janv. 2007 à 11:07
Merci de ton aide. Voici mon code:



protected



void
Page_Load(

object
sender,

EventArgs
e){


MasterPage
.setActiveMenu(2, 4);}


protected



string
FilterCountry(){


StringBuilder
sb =

new



StringBuilder
(

string
.Empty);


string
strOperator =

string
.Empty;


string
strQuery =

string
.Empty;

sb.Append(


"SELECT COUNTRY_ID, COUNTRY_NAME, COUNTRY_KEY FROM COUNTRY"
);


string
strCountry_ID = CreateQueryFilterCountry(

"COUNTRY_ID"
, txtCountryID.Text.ToUpper() );


if
(strCountry_ID!=

string
.Empty ){

strQuery = strCountry_ID;

}


string
strCountry_Name = CreateQueryFilterCountry(

"COUNTRY_NAME"
,txtCountryName.Text.ToUpper() );


if
(strCountry_Name !=

string
.Empty){


if
(strQuery !=

string
.Empty){

strQuery = strQuery +


" AND "
+ strCountry_Name;}


else
{strQuery = strCountry_Name;

}

}


if
(strQuery !=

string
.Empty)sb.Append(


" WHERE "
+ strQuery);


string
strFilter = sb.ToString();CountryDataSource.DataBind();


return
strFilter;}


protected



string
CreateQueryFilterCountry(

string
strField,

string
strValue){


if
(strValue.Trim() ==

string
.Empty){


return



string
.Empty;}


else

{







string
strQuery = strValue.Trim();


string
strInvalidChars =

"`~!@#$%^&()-_=+[{]}\\|;:<,>.*/?""
;


for
(

int
i = 0; i < strInvalidChars.Length; i++){

strQuery = strQuery.Replace(strInvalidChars.Substring(i, 1),


string
.Empty);}

strQuery = strField +


" LIKE '"
+ strQuery +

"%' "
;


return
strQuery;}

}


protected



void
btnFilterCountry_Click(

object
sender,

EventArgs
e){


string
strDataSourceID FilterCountry();strDataSourceID strDataSourceID +


" ORDER BY COUNTRY_ID ASC"
;CountryDataSource.SelectCommand = strDataSourceID;

}
0
Rejoignez-nous