Devenir membre club
Connectez vous
Aide & règlement
Votre 1ère visite
Le règlement
Contacter les admins
Contacter le webmaster
Questions & réponses
Comment soutenir CodeS-SourceS
Comment faire un lien vers CodeS-SourceS
Autres questions
A propos & don
A propos du réseau
Les modérateurs
Remerciements
Faire un don
Le livre d'or
Tous les livres
Les dernières parutions
Les plus consultés
Les critiques
Le top des ventes
Le top favoris des membres
Recevoir des livres blancs
Tous les thèmes
Les derniers messages
Les nouveaux messages
Poser une question
Le Chat - IRC
Tous les tutoriels
Ajouter un tutoriel
Les tutoriels en vidéo
Les formations vidéos
Tous les codes
Ajouter un code
Filtrer par catégorie
Filtrer par date
Les plus récents
Les mis à jour
Les codes par jour
Filtrer par niveau
Niveau débutant
Niveau initié
Niveau expert
Filtrer par type
Les codes avec capture
Les codes avec zip
Les codes .Net
Filtrer par qualité
Les plus populaires
Les plus populaires du mois
Les plus téléchargés
Les mieux notés
Top par catégorie
Top des favoris
Filtrer par auteur
Tous les auteurs
Le top des membres
Les snippets
Déposer votre CV
Consulter les offres d'emploi ou de stage
Consulter les CVs
Déposer une offre d'emploi ou de stage
Modèles de CV et lettres
Trouver une convention collective
Les écoles d'informatique
Toutes les écoles
Ajouter une école
Les outils
Outils pour développeurs
Trouver des ressources
Base de données de CodeS-SourceS
Télécharger les meilleurs logiciels
Comparer les prix
Envoyer des ecards
Création de bannières
Annuaire de la prog
Tous les sites
Ajouter votre site
Le dico de la prog
Toutes les définitions
Ajouter une définition
Les évènements
Tous les évènements
Les évènements à venir
Ajouter un évènement
Téléchargements
CodeS-SourceS Toolbox
CodeS-SourceS Toolbar
Toolbar pour FireFox
Fonds d'écran
Les compil's
Nos partenaires
Magazine Programmez
Frontier.fr
Xiti
ProgOnline
Winwise
Editions Eyrolles
Toute la liste
Les RFC
CS
VB, VB.NET
ASP.NET,ASP
C, C++
ColdFusion
PHP
Javascript
Delphi
Flash
Java
Graphisme
Irc
Assembleur
C#
Mobilité
SQL
Foxpro
Python
Regex
Flex
Windev
Ce site au démarrage
begin process at 2012 02 12 22:28:17
Accueil
Codes
Tutoriels
Forum
Livres
Emploi
Services
Connexion
Trouver un code source :
dans
Tout le site
Codes
Tutoriels
Forum
Blogs
Livres
RFC
Icones
News .NET
Boutique
[ Dernières recherches ]
Veuillez saisir votre recherche... Ex: smtp, lire un fichier, rs232
Options de recherche :
Tous les codes
Tous les codes en .Net
Tous les codes sauf .Net
Langages disponibles :
Tous les langages
ASP / ASP.NET
Assembleur
C / C++ / C++.NET
C# / C#.NET
ColdFusion
Delphi
Flash
Flex, Air, ActionScript
Foxpro
Graphisme
IRC
JAVA / J2EE
Javascript / Ajax / DHTML
PDA / PocketPC
PHP
Python
Regex, Regular Expression, Expression régulière
SQL
Visual Basic, VB6, VB.NET, VB 2005, VB
15 commentaire(s) de godvicien
sur des sources sur tout
CodeS-SourceS
Déposé sur
Web skin : créez une interface aspnet pour votre client lourd...
Voici le code correctif qu'il faut ajouter ? chaque page aspx qui utilise des controls avec AutoPostBack,
a mettre dans le code-behind de la page :
/// <summary>
/// Override: nothing.
/// </summary>
/// <param name="control"></param>
public override void VerifyRenderingInServerForm(Control control)
{
//nothing
}
/// <summary>
/// Override: call Render_WithAutoPostBack().
/// </summary>
/// <param name="htmlWriterResponse"></param>
protected override void Render(HtmlTextWriter htmlWriterResponse)
{
this.Render_WithAutoPostBack(htmlWriterResponse);
}
/// <summary>
/// Render the html of the page with AutoPostBack events.
/// </summary>
/// <param name="htmlWriterResponse"></param>
protected void Render_WithAutoPostBack(HtmlTextWriter htmlWriterResponse)
{
//TODO: update the list of YOUR controls that have the AutoPostBack properties
Control[] controlsWithAutoPostBack =
new Control[] { this.ddlSemanticLangs };
//make a new htmlTextWriter on a stringWriter
StringWriter stringWriter = new StringWriter();
HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter);
//render the page
base.Render(htmlTextWriter);
htmlTextWriter.Flush();
string html = stringWriter.ToString();
//add inputs hidden for AutoPostBack function
html = html.Replace("<input type=\"hidden\" name=\"__VIEWSTATE\" id=\"__VIEWSTATE",
"<input type=\"hidden\" name=\"__EVENTTARGET\" id=\"__EVENTTARGET\" value=\"\" />\n" +
"<input type=\"hidden\" name=\"__EVENTARGUMENT\" id=\"__EVENTARGUMENT\" value=\"\" />\n" +
//"<input type=\"hidden\" name=\"__LASTFOCUS\" id=\"__LASTFOCUS\" value=\"\" />\n" +
"<script type=\"text/javascript\">\n" +
" var theForm = document.forms['aspnetForm'];\n" +
" if (!theForm) {\n" +
" theForm = document.aspnetForm;\n" +
" }\n" +
"function __doPostBack(eventTarget, eventArgument) {\n" +
" if (!theForm.onsubmit || (theForm.onsubmit() != false)) {\n" +
" theForm.__EVENTTARGET.value = eventTarget;\n" +
" theForm.__EVENTARGUMENT.value = eventArgument;\n" +
" theForm.submit();\n" +
" }\n" +
"}\n" +
"</script>\n" +
"<input type=\"hidden\" name=\"__VIEWSTATE\" id=\"__VIEWSTATE");
//loop to treat each control with AutoPostBack
foreach (Control control in controlsWithAutoPostBack)
{
//get render of the control
StringWriter strWriter = new StringWriter();
HtmlTextWriter htmlWriter = new HtmlTextWriter(strWriter);
control.RenderControl(htmlWriter);
htmlWriter.Flush();
string htmlControl = strWriter.ToString();
//get id of the control
XmlDocument xmlControl = new XmlDocument();
xmlControl.LoadXml(htmlControl);
string idControl = "id=\"" + xmlControl.DocumentElement.Attributes["id"].Value + "\"";
//build onchange function
string onchange = "onchange=\"javascript:setTimeout('" + this.GetPostBackEventReference(control).Replace("'", "\\'") + "', 0)\"";
//affect in html
html = html.Replace(idControl, idControl + " " + onchange);
}//next control
//write html in the response
htmlWriterResponse.WriteLine(html);
}
Comme vous pouvez le voir il suffit de mettre a jour la liste des controls qui utilisent le AutoPostBack au d?but de la fonction Render_WithAutoPostBack().
Posté le :
17/05/2008 18:28:03
Déposé sur
Web skin : créez une interface aspnet pour votre client lourd...
Je viens de d?couvrir un gros bug : ce system ne g?n?re pas le code 'AutoPostBack' des controls serveur ASP.
Pourquoi ? Myst?re ...
Posté le :
17/05/2008 13:29:56
Déposé sur
Web skin : créez une interface aspnet pour votre client lourd...
MAJ V4:
J'ai ajouté quelques fonctionnalités indispensables :
- Gestion des sous-repertoires de la WebApp (dont App_GlobalRessources)
- Gestion des fichiers Non-ASP (images, css, html)
A part ca j'ai découvert que l'on pouvait débuguer la WebApp avec ce server comme pour une WebApp sous IIS.
C'est magique, il suffit d'inserer un point d'arret dans une page web.
Posté le :
16/05/2008 08:08:38
Déposé sur
Web skin : créez une interface aspnet pour votre client lourd...
@Warny: Exact ! On peut tout a fait concevoir une interface d'administration à distance (par internet) du client lourd.
J'ai fais le teste à l'instant, ca fonctionne en réseau local (pas essayé par internet). Il suffit d'indiquer l'ip de la machine sur le formulaire de la V3. Le serveur écoute alors tout les requêtes du réseau. Reste qu'il me semble que les box-internet modernes masquent l'ip de la machine sur internet. Faut donc faire quelques testes.
J'ai donc mis à jour la source pour vous donner la version finale qui intègre une dll (ServerASPNET.dll) qu'il faut simplement placer dans le répertoire /bin/ de votre WebApp. Et d'instancier ensuite la classe 'ServerASPNET' dans votre client lourd.
Vous pouvez maintenant mettre une note à mon code...
Posté le :
12/05/2008 14:44:33
Déposé sur
Web skin : créez une interface aspnet pour votre client lourd...
Alors, tu n'échangerais pas ton baril de WinForms contre mon baril de WebForms, sans même avoir essayé ?
Je crois que pour dire ca tu n'as pas de clients à satisfaire, ou alors tu es un pro des WinForms. Car, pour mon application, la skin de base est une WinForm, et à chaque fois c'est la même remballe : C'est condensé, riche, complexe, bref peu-lisible pour quelqu'un qui n'a pas été spécialement formé à l'interface.
La philosophie d'un client lourd ou client riche, à base de WinForms, est d'être très puissant en offrant un maximum de fonctionnalités sur chaque formulaire. Mon formulaire principale cumule les fonctions de :
- champs de recherches
- listings de résultats
- consultation de fiches
- création de fiches
Tout ca sur le même formulaire, alors qu'en WebApp il y aurait une page par fonctionnalité. Pour être franc les WinForms ont vite tendance à devenir de véritables usines à gaz qui concentrent trop de fonctionnalités. Les utilisateurs de base ne sont pas habitués à autant de fonctionnalités, ils préfèrent une navigation claire par page dans un navigateur Web. Je n'ai pas l'intention de former tous mes utilisateurs donc je décide de me lancer dans l'aventure...
Au fait je précise que malgrès l'utilisation des Visual Express 2008 le projet est compilé pour le Framework .Net 2.0, donc il est possible d'ouvrir les fichiers solution du projet avec Visual Studio 2005 en changeant simplement la version de ces fichiers .sln (textes).
Si vous recompilez le tout n'oubliez pas de mettre une copie de ServerLocalASPNET.exe (ou .dll) dans le dossier /bin/ de l'application, car c'est la que cherchera la fonction de création du Host Server. Il doit y trouver la classe 'ServerLocalASPNET'.
Posté le :
08/05/2008 10:50:32
Déposé sur
Web skin : créez une interface aspnet pour votre client lourd...
Arf. J'ai complètement oublier de dire que ce code ne fonctionne pas sous Windows Vista, qui bloque l'utilisation du HttpListener, visiblement pour des question de sécurité. Il doit y avoir un bout de code à rajouter pour cela fonctionne sous Vista, mais lequel ??
Si quelqu'un trouve la solution pour faire marcher cet exemple sous Vista, je pourrai être très gratifiant (je serais même prêt à payer, c'est vous dire).
De même si quelqu'un trouve la solution pour faire fonctionner cet exemple avec Firefox...
Posté le :
07/05/2008 11:50:50
Déposé sur
Sérialisation xml d'un dictionary
Très bon code, je mets 8/10.
Posté le :
18/04/2008 12:27:47
Déposé sur
Ouvrir des documents dans la même instance de l'application s...
Bon il me reste en effet un ultime bug de première ouverture de fichier.
On dirait que ca viens de l'OS.
Sinon j'ai une petite question : Ca sert à quoi ca :
_ddeListener.SubClass = true/false;
Ca veut dire quoi : "définit ou renvoie l'état du subclassing de la form" ??
Posté le :
17/03/2008 15:22:11
Déposé sur
Ouvrir des documents dans la même instance de l'application s...
Excellent !
Tout fonctionne sur mon soft, le transfert c'est fait sans problème.
En ce qui concerne la class EXTAssociation je la trouve très lourde, le framework .NET permet de manipuler les clés de registre beaucoup plus facilement.
Alors pour la remplacer il faut créer votre classe et bien suivre ce schéma de la base de registre :
(que vous pouvez stocker dans un fichier .reg, c'est ce que je fais pour outrepasser les droits de vista)
Il suffit de remplacer 'ed2k' par votre extension '.xyz'. En effet on peut créer son propre type de liens comme dans cette exemple :
[FichierTexte.reg]
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\ed2k]
@="URL: ed2k Protocol"
"URL Protocol"=""
; cette ligne précédente est indispensable pour créer un protocole style "ed2K://votre_URL"
[HKEY_CLASSES_ROOT\ed2k\DefaultIcon]
@="C:\\Program Files\\eMule\\eMule.exe,0"
[HKEY_CLASSES_ROOT\ed2k\shell]
@="open"
[HKEY_CLASSES_ROOT\ed2k\shell\open]
[HKEY_CLASSES_ROOT\ed2k\shell\open\command]
@="\"C:\\Program Files\\eMule\\eMule.exe\" \"%1\""
[HKEY_CLASSES_ROOT\ed2k\shell\open\ddeexec]
@="[peeurl(\"%1\")]"
[HKEY_CLASSES_ROOT\ed2k\shell\open\ddeexec\Application]
@="eMule.exe"
[HKEY_CLASSES_ROOT\ed2k\shell\open\ddeexec\Topic]
@="P2P"
[/FichierTexte.reg]
Et lancer l'écoute des messages DDE avec ce code dans votre FormMain.Load() :
_ddeListener = new DDEListener(this.Handle, "eMule.exe", "P2P");
_ddeListener.OnReceiveCommand += new DDEListener.OnReceiveCommandDelegate(DDEListener_OnReceiveCommand);
_ddeListener.SubClass = true;
Et dans votre FormMain.Closing :
_ddeListener.SubClass = false;
Voila j'espère avoir bien résumer le tout. Un grand merci pour cette source parfaitement documentée.
Posté le :
16/03/2008 16:12:34
Déposé sur
Ouvrir des documents dans la même instance de l'application s...
Excellent code. C'est exactement ce qu'il me fallait ;-)
Sur vista la classe EXTAssociation ne fonctionne pas. Surement du aux nouveaux droits d'accès à la base de registre.
Sinon en effet le premier double clic sur un fichier .xyz ouvre le soft, mais comme celui ci ne gére pas les lignes de commande il n'affiche pas de "open 1 params. nom_du_fichier.xyz".
Y aurait-il un bug de trouvage de fichier *.exe "%1" ??
Posté le :
15/03/2008 22:43:39
1
2
Nos sponsors
Derniers Blogs
[WP7] DYNAMICALLY CHANGE STARTUP PAGE
[WP7] DYNAMICALLY CHANGE STARTUP PAGE
par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article
par KooKiz
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS
par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article
par Groc
[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES
[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES
par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article
par gpommier
[SHAREPOINT] LES SESSIONS TECHDAYS 2012.
[SHAREPOINT] LES SESSIONS TECHDAYS 2012.
par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article
par Patrick Guimonet
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3
par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article
par ROMELARD Fabrice
La suite
RSS
Côté IT
Utiliser Office 365 pour un projet d?équipe - PART 2
Utiliser Office 365 pour un projet d?équipe - PART 1
SharePoint 2007 : Installation du Service Pack 3 de MOSS
SharePoint 2007 : Installation du Service Pack 3 de WSS V3
Installation de SQL Server DENALI CTP3
Mise à jour de Windows 2003 R2 vers Windows 2008 R2
Upgrade de SQL Server 2005 vers SQL Server 2008 R2
La suite
RSS
Offres d'emploi
Recherche Recherche développeur web ASP et ASP.Net
Recherche Analyste Programmeur Adélia
Recherche Développeur eZ Publish confirmé
Recherche AP (H/F) ACCESS EXCEL VBA
Recherche SUPPORT INFORMATIQUE / DEVELOPPEUR
Recherche Developpeur web
Recherche développeur Web
Déposer une offre
La suite
RSS
Formations Video
Coffret : Ateliers sur la mode
Atelier sur la mode : Motifs et matières
Atelier sur la mode : La planche tendance
Atelier sur la mode : De retour de pige et repérage
Corel Painter 12 : Les fondamentaux
Coffret : Microsoft Office 2010 de A à Z
De Microsoft Office 2003 à 2007 et 2010
La suite
RSS
Appels d'offres
Passerelle Pericles sur site Joomla 17
Budget :
499€
Infogerance Serveur Debian Linux
Budget :
2 400€
Developpeur applications iphone - ipad - android
Budget :
800€
La suite
RSS
Logiciels
Tribler (2012)
TRIBLER (2012)
Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des...
Cliquez pour télécharger Tribler
OneSwarm (2012)
ONESWARM (2012)
Le peer-to-peer qui protège votre vie privée, c'est OneSwarm. Ce logiciel de peer-to-peer crypté...
Cliquez pour télécharger OneSwarm
PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)
PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)
PONAMEDIA TV DEVIENS HELLLOOO FLASH LA TV SUR VOTRE ORDINATEUR. Toute une plateforme Multi...
Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO
Academy System (17.2.1.0)
ACADEMY SYSTEM (17.2.1.0)
Logiciel de gestion des établissements. - élèves/étudiants (inscription, dossier, absence...) -...
Cliquez pour télécharger Academy System
Easy-Planning (1.0.0.1)
EASY-PLANNING (1.0.0.1)
Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ...
Cliquez pour télécharger Easy-Planning
+ de logiciels à télécharger
Vidéos drôles
Halloween Party
Terry Tate Office Linebacker Superbowl 2003
Jeu vidéo instructif
C'est un véritable vol !
Banana Song
Comment attraper la grippe A
Parodie Pub Window 7
La suite
RSS
Sondage...
Votre navigateur n'utilise pas le javascript, pour
voter aux sondages de ce site, cliquez ici
Statistiques
1 873 943
membres
220
nouveaux aujourd'hui
16 151
membres club
Comparez les prix
Archos Archos 70 8 Go EU/US - Tablette internet Android
Entre 238€ et 238€
Visiter le guide achat
CalendriCode
Février
2012
L
M
M
J
V
S
D
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
Consulter la suite du CalendriCode
Photothèque
Visiter la photothèque
CS Tool Box