Auf der Website
www.asp.net betreibt Microsoft eine kleine aber feine Control Gallery. Die meisten
sind kostenlos und können gesaugt werden. Wir beschäftigen uns heute mit dem Vote Control vom
20.02.2002.
Der Download umfasst 14 KB und liefert ein Zip mit dem Namen Votecontrol, das wiederum die
Files + Samples beinhaltet. Unbedingt nötig ist ein SQL Server zum Speichern der Umfrageergebnisse.
Das Vote Projekt muss erst kompiliert und die entstandene DLL ins BIN Verzeichnis Ihrer Anwendung kopiert werden.
Als nächstes muss das SQL Script aus der Datei poll.sql ausgeführt werden. Das können Sie z.B. mit
dem SQL Qery Analyzer tun. Nun wird noch die Datei poll.xml in das Projekt Verzeichnis kopiert. Diese dient
dazu die Umfrage zu steuern.
Der Connection String wird über die web.config in der AppSetting Sektion gesteuert.
Erhebliche Probleme treten auf, wenn der Connection String falsch ist. Achten Sie darauf, das Sie
die SQl Syntax und nicht die OLEDB Syntax verwenden.
Das Control können Sie in die Werkzeugleiste von Visual Studio .NET einbinden. Von hier kann dann
das Vote Control per Drag & Drop in jede ASPX und ASCX Seite gezogen werden.
Sie erhalten dann das Control, das visuelle erscheint, aber den Hinweis trägt "Error Creating
Control". Um das Control in der Entwurfszeit zu verwenden muss der Pfad auf die poll.xml und der
Connection String gesetzt werden. Dies funktioniert leider nur in der HTML Ansicht und nicht über
die Propertys.
Probleme
Erhebliche Probleme treten auf, wenn der Connection String falsch ist. Achten Sie darauf, das Sie
die SQl Syntax und nicht die OLEDB Syntax verwenden.
Es gibt leider zwei Orte in dem der Connection String auftritt.
In der ASPX Seite liefert ein falscher Connection String eine Exception vermutlich im Source File
vote.cs
Line 426: connection.Open();
In der Datei poll.xml wird auf den Connection String verwiesen, der wiederum in der Datei web.config
gesetzt wird. Es steht also nur der Name des Keys in der poll.xml. Ein falscher Keyname löst wieder
eine Fehler aus, allerdings erst beim abgeben der Stimme.
Erst wenn man im HTML Modus manuell folgende Zeilen einfügt ist eventuell das Eigenschaftfenster zum
weiteren visuellen editieren vorhanden. (wenn Sie Glück haben)
cc1:vote id="Vote1" runat="server" ConnectionString="server=localhost;database=shops;User ID=sa;Password=" Path="poll.xml"> <ButtonStyle Font-Size="0.7em" Font-Names="Verdana,Arial" Font-Bold="True"></ButtonStyle> <ItemStyle Font-Size="0.7em" Font-Names="Verdana,Arial"></ItemStyle> <QuestionStyle Font-Size="0.7em" Font-Names="Verdana,Arial" Font-Bold="True"></QuestionStyle> </cc1:vote> |
Vote0:
Bei mehrmaligen Versuchen erweist sich dies aber nicht als zuverlässig. Es kann auch ein schliessen
und öffnen der Seite den Eigenschaftsdialog wieder sichtbar machen.
vote1:
Nachdem der Benutzer seine Stimme abgegeben hat wird das Gesamt Ergebnis angezeigt.
Ein mehrfach Voting wird über einen Cookie unterbunden.Sie können ein Mehrfachvoting aber über das
Property AllowMultipleVote erlauben.
Vote2:
Fazit: Das Control ist nett und hilfreich aber bei weitem nicht ausgereift. Da der Source Code
vorliegt, liefert es aber gute Anregungen, wie so ein Control zu entwickeln ist.