Tags: , , , | Categories: ASP.Net, Javascript, JQuery Posted by Christoph on 10/13/2009 6:07 PM | Comments (0)
Wenn man in einem datengebundenen Control (Repeater, Datagrid, ...) einen Radiobutton benutzt, der einen Gruppennamen hat, also innerhalb des Controls immer nur ein Button angewählt sein soll, bekommt man das Problem, dass asp.net dem RadioButton einen eindeutigen Namen gibt. Damit wird, wenn ich eine neue Radiobox anwähle, die alte nicht deselektiert. Mit diesem kleinen jQuery Script kann man die Funktion per Javascript wieder "nachbauen": <script language="javascript" type="text/javascript"> //<![CDATA[ jQuery(document).ready(function() { jQuery(":radio").change(function() { var sel = this.id; jQuery(":radio").each(function() { if (sel != this.id) { jQuery(this).removeAttr("checked"); } }); }); }); //]]> </script>
Tags: | Categories: Administration Posted by Christoph on 9/29/2009 5:35 PM | Comments (0)
Microsoft hat eben den Kostenlsen Virenschutz "Microsoft Security Essentials" (der in der Betaphase "Morrow") veröffentlicht. Ich benutze die Beta bereits mehrere Wochen und bin sehr zufrieden mit den Leistungen des Tools. Da ich in meinem Netzwerk auch andere Virenscanner laufen habe, kann ich bisher noch kein Fehlverhalten entdecken, und werde das Tool auch weiterhin auf meinem Atbeitsplatz einsetzen. Für weitere Informationen und den Download geht's hier weiter
Tags: , , | Categories: ASP.Net, Silverlight Posted by Christoph on 7/23/2009 10:21 AM | Comments (0)
Wwnn Silverlight einen Webservice über SSL benutzen soll, müssen dazu folgende 3 Dinge beachtet werden: 1) eine clientaccesspolicy.xmlim Webroot haben: <?xml version="1.0" encoding="utf-8" ?> 2) eine crossdomain.xml im Webroot haben: <?xml version="1.0"?> 3) im Silverlight: ich benutze dazu meisst eine Statische Methode, die den Webservice erstellt, um die jeweilige URL vom System an die Umgebung anpassen zu können. Public Shared Function GetWebservice() As BackendService.BackendServiceSoapClient '--Detect Current URL Dim Url As String = String.Format("{0}BackendService.asmx", Settings.RootURLAll) Dim Binding As ServiceModel.BasicHttpBinding If Settings.RootURLAll.IndexOf("https") > -1 Then Binding = New ServiceModel.BasicHttpBinding(ServiceModel.BasicHttpSecurityMode.Transport) With {.MaxReceivedMessageSize = 5000 * 1024} Else Binding = New ServiceModel.... [More]
Tags: | Posted by Christoph on 6/22/2009 10:41 AM | Comments (0)
Ein Traum wird wahr :-) Die Microsoft TechEd 2009 wird in Berlin (also hier) durchgeführt. Was die Anreise betrifft: Einfacher geht's dann nicht mehr.  
Tags: | Categories: VB.Net Posted by Christoph on 5/22/2009 5:18 PM | Comments (0)
Wenn man eine List(of Integer) in ein String umwandeln möchte, benötigt man zuerst einen Helper, der die Formatierung eines einzelnen Items vornimmt: Private Shared Function I2S(ByVal Nummer As Integer) As String Return Nummer.ToString End Function und diesen kann man dann benutzen, um eine komplette Liste in das gewünschte Zielformat zu konvertieren: Dim Arr1 as New List(of Integer) Dim Arr2 As List(Of String) = Arr1.ConvertAll(New Converter(Of Integer, String)(AddressOf I2S)) Return String.Join(", ", Arr2.ToArray)
Tags: | Categories: ASP.Net, VB.Net Posted by Christoph on 4/7/2009 12:14 PM | Comments (0)
Wenn man Daten über eine Webseite zu Excel exportieren will, geht das eigentlich ganz einfach, indem man eine HTML Seite ausgibt, die eine Tabelle enthält, und dann den Contentyp setzt. Dazu kann man noch den Tabellenzellen bestimmte CSS Attribute mitgeben, so dass die dann von Excel auch passent erkannt werden. Hier mal ein ganz grober Dummy, der aber das Vorgehen veranschaulicht: Response.Clear()Response.ClearHeaders()Response.ContentEncoding = Encoding.DefaultResponse.Buffer = TrueResponse.ContentType = "application/vnd.ms-excel"Response.AddHeader("Content-Disposition", "inline; filename=Statistik.xls")Dim Out As New StringBuilderOut.Append("<html>")Out.Append("<style>")Out.Append("body,th,td{font-size:10px;font-family:arial;color:black;}")Out.Append("table{mso-displayed-decimal-separator:""\,"";mso-displayed-thousand-separator:""\."";}")Out.Append("td... [More]
Posted by Christoph on 4/3/2009 4:18 PM | Comments (0)
Um es einem möglichen Anfreifer etwas zu erschweren, einen CSRF (Cross Site Request Forgery) durchzuführen, sollte man dem Viewstate einen eindeutigen User Key geben, den das .Net Framework dann automatisch zur Validierung der zum Server zurückgesendeten Daten benutzt. Das Ganze geht recht einfach, indem man auf den jeweiligen Seiten (.aspx) folgenden Code hinzufügr: Private Sub Index_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init ViewStateUserKey = Session.SessionID End Sub Ich habe diesen Hinweis bei Scott Hanselman und Phil Haack gefunden
Tags: | Posted by Christoph on 3/25/2009 4:47 PM | Comments (0)
geht recht einfach mit folgendem Code: ' DateTime in UTCDateTime dim utcDate = DateTime.SpecifyKind(DateTime.Parse("2008-11-01T19:35:00.0000000Z"), DateTimeKind.Utc) ' create new TimeZoneInfoTimeZoneInfo dim destinationTimeZone = TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time") ' convert to local date in destination TimeZoneDateTime dim localDate = TimeZoneInfo.ConvertTimeFromUtc(utcDate, destinationTimeZone) die nötigen IDs gibts in der Registry unter: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\TimeZones: gefunden habe ich den Beitrag hier
Tags: , | Categories: LINQ, VB.Net, XML Posted by Christoph on 3/17/2009 10:47 AM | Comments (0)
Ich hatte das Problem, zu einem bestehenden XML noch weitere Elemente hinzufügen zu müssen. Das XML war als String im System vorhanden, und da hab ich das ganze per LINQ gelösst: Als erstes muss folgender Namespace als Referenz im Projekt eingebunden, und in der entsprechenden Klasse importiert sein: Imports System.Xml.Linq und dann funktioniert das ganze recht einfach so: Dim Doc As XDocument = XDocument.Parse(XmlString)Dim Root As XElement = Doc.Element("root")Dim xNewElement As New XElement("newnode")xNewElement.Value = MyValuexNewElement.SetAttributeValue("id", MyID)Root.AddxNewElementReturn Doc.ToString
Categories: LINQ Posted by Christoph on 2/18/2009 12:59 PM | Comments (0)
Man hat z.B. folgendes Objektmodell: [Bestellung] -> [Artikel] -> [Kontakt] Wenn man im EF per LINQ Objekte läd: dim MyBestellung = from Best in Ctx.Bestellung where Best.id=2 werden die “Kinder” normalerweise nicht mitgeladen, und müssen per nachgeladen werden. Dies kann man aber auch direkt im ersten Query ausführen lassen, wenn man an das Objekt ein .Include anhängt: dim MyBestellung = from Best in Ctx.Bestellung.include("Artikel") where Best.id=2 Dies kann man, wenn das Objekt unterschiedliche Kinder hat, auch verbinden: dim MyBestellung = from Best in Ctx.Bestellung.include("Artikel").include("Kontakt") where Best.id=2 (Wichtig dabei: Die Anführungszeichen um die Typen nicht vergessen). Ich habe diesen Hinweis hier gefunden: http://blogs.msdn.com/bethmassi/archive/2008/12/10/master-details-with-entity-framework-explicit-load.aspx