Skip to main content

Posts

Formation ASP.net 2.0

Comme promis , j'anime maintenant des formations inter-entreprises . Qualité et faibles tarifs sont au rendez-vous. Pour commencer, ma formation "Développer une application Web dynamique avec ASP.net 2.0" est programmée dès octobre . Inscrivez-vous vite!

Intégrer un flux RSS à un formulaire Web ASP.net

Je souhaitais afficher les derniers articles de ce blog sur mon site Web . Le contrôle serveur Xml sait récupérer du XML et lui appliquer une transformation XSL/T . Et justement, le RSS c'est du XML . Mais il faut écrire la transformation XSL/T, et je me rappelle qu'un professeur d'informatique disait qu'un bon informaticien est fainéant. Après une petite recherche, je suis tombé sur le contrôle serveur RssFeed . En deux temps et trois mouvements, il était intégré à ma page. Et il fonctionne bien. Il est compilé pour le .net framework 1.1 , et fonctionne donc avec Visual Studio 2003 et 2005. A mettre dans vos favoris!

La limite des ObjectDataSources

En ASP.net V2.0 nous avons les contrôles DataSource qui permettent de créer des WebForms de manipulation de données sans écrire de code. Ils sont plutôt bien faits , même si j'ai tendance à leur reprocher le fait qu'ils introduisent l'utilisation de contrôles non-graphiques dans le gabarit des formulaires Web. Aujourd'hui, je suis tombé sur l'une de leurs limitations, plutôt frustrantes. J'imbrique un contrôle Repeater dans un DataGrid , et j'ai besoin que les données du Repeater varient en fonction de la ligne du DataGrid. Le Repeater étant lié à un ObjectDataSource, j''ai simplement écrit que je souhaite récupérer comme paramètre du DataSource une colonne des données de la ligne courante : <asp:ObjectDataSource ID="ObjectDataSourceSessionsFutures" runat="server" SelectMethod="SessionsFutures"     TypeName="Training.Sessions"> ...

Requêtes de TableAdapters paramétrées et Access

Vous connaissez mon point de vue sur les TableAdapters : ce ne sont pas mes grands amis. Mais comme ils permettent de créer des formulaires simplement sous Visual Studio 2005 , j'apprends à vivre avec pour simplifier la vie de mes clients. Pour chaque TableAdapter , on peut créer des requêtes qui seront stockées dans la définition du DataSet typé et accessibles en tant que méthodes du TableAdapter. Pour leur passer des paramètres , j'étais habitué à utiliser des requêtes du style: SELECT Champ FROM Table WHERE Valeur = @Param Mais, à ma grande surprise, ça ne fonctionnait plus. Pourquoi? Parce que j'utilisais Access . Dans ce cas, la requête doit être du style: SELECT Champ FROM Table WHERE Valeur = ? J'ai eu du mal à trouver cette réponse, et je ne suis pas le seul si on en juge ces articles sans réponse correcte: article 1 , article 2 . En ...

Permettre le chargement dynamique des noeuds d'un TreeView

J'ai besoin d'afficher sous la forme d'un arbre les données d'une grosse base de données. La méthode bête consiste à récupérer toutes les données d'un coup et laisser l'utilisateur naviguer dedans. Une méthode plus fine est de ne charger que le premier niveau de noeuds, et lorsque l'utilisateur clique sur le signe "+" à côté d'un noeud, d'aller chercher les données correspondantes au niveau suivant en base. Bref, de charger au fur et à mesure (dynamiquement) les données. Cependant, s'il n'y a pas de noeuds sous les noeuds de premier niveau, le signe "+" ne s'affichera pas à côté de ceux-ci. Comment l'afficher? Le TreeView des Windows Forms ne semble pas le permettre, contrairement à celui des WebForms qui prévoit l'affichage dynamique . Je n'ai rien trouvé de mieux que d'ajouter un sous-noeud temporaire, que je supprime au moment ou l'uti...

Automatiser un déclenchement d'événement thread-safe en C#

J'ai fait un composant détectant la présence du réseau, car la classe NetworkChange était trop limitée pour les besoins d'un client. Ce composant émet périodiquement des pings vers un serveur pour détecter sa disponibilité. Lorsque le serveur devient accessible ou inaccessible, un événement est levé. Le problème, c'est que si je lève simplement l'événement en appelant le (tableau de) délégué(s) correspondant, le gestionnaire d'événements est appelé par le thread de travail qui fait les pings. Or, en Windows Forms , je n'ai pas le droit de mettre à jour un contrôle avec un thread autre que celui qui est affecté à ce contrôle . Plutôt qu'un long discours, voici le code qui détecte le fait que le gestionnaire d'événements est au sein d'un contrôle, et invoque le gestion...