Je suis en train de finir une page de “surveillance” de sites. En gros, toutes les x minutes cette page de surveillance se déclenche, récupère les pages concernées, les scan à la recherche de mots-clés bien définis et, si elle en trouve, met à jour la base de données. Toute la partie “surveillance” marche sans soucis, je suis le plus heureux des hommes.
Mais là, je suis en train de finir la page d’administration, celle qui permet de rentrer de nouvelles pages à surveiller avec les mots clés en question. Elle se compose d’une textbox pour rentrer le nom de la page, l’url et d’un bouton envoyer. Ca, ca marche sans soucis. D’ailleurs, quand on ajoute une url, la dropdownlist (qui contient la liste de toutes les pages) se met à jour toute seule comme une grande. Ensuite, j’ai une autre textbox avec un bouton pour ajouter un autre mot clé. La pareil, ca marche a merveille.
Enfin, j’ai un repeater, bindé (en théorie) sur la table des mots clés. Vous l’avez déjà compris, c’est là que ca merde. En effet, il n’affiche jamais un seul mot clé de la liste. J’ai donc tenté un tas de trucs, comme par exemple de forcer un peu la main sur le SelectedIndexChanged du dropdown :
this.SqlDataSourceKeywords.SelectParameters["urlid"].DefaultValue = this.DropDownListUrls.SelectedValue;
this.SqlDataSourceKeywords.DataBind();
this.RepeaterKeyword.DataBind();
D’ailleurs, le truc louche c’est que si je récupere un DataReader du SqlDataSourceKeywords.Select(), il ne contient rien. Nada. Pourtant, la valeur urlid est bien la bonne. Par contre, si je vais chercher avec la même requete toute conne (SELECT * FROM [Keywords] WHERE [urlid]=@urlid, dans l’idée) un datareader a grand coup de SqlConnection et SqlCommand, et que je le bind a la main sur le Repeater, il m’affiche tout du premier coup, comme il devrait.
J’ai l’impression que je passe a côté d’un truc tout con, qui expliquerait pourquoi ca marche pas en fait. Donc si vous avez une idée, je suis preneur.