ASP.NET: Einfache Log-Datei schreiben

Muss mal schnell was mitgeloggt werden, bietet sich z.B. der StreamWriter an. using System.IO; … string fileName = String.Format(„log-{0}.txt“, DateTime.Now.ToString(„yyyy-MM-dd“)); string dataRow = String.Format(„{0}; {1}; {2}“, DateTime.Now, var1, var2); StreamWriter myFile = new StreamWriter(Server.MapPath(„~/App_Data/“ + fileName), true); myFile.WriteLine(dataRow); myFile.Close();

ASP.NET: Canonical-Link-Tag dynamisch anpassen und einfügen

Doppelte Inhalte mögen Suchmaschinen bekanntermaßen nicht. Doch meistens können Webseiten über http://domain.de und http://www.domain.de erreicht werden. Für die Suchmaschine sind das zwei unterschiedliche Dinge. Ein recht einfacher Ansatz mit ASP.NET kann so aussehen: // using System.Web.UI.HtmlControls; HtmlLink canonicalLink = new HtmlLink(); canonicalLink.Attributes[„rel“] = „canonical“; canonicalLink.Href = Request.Url.AbsoluteUri.Replace(„www.“, „“); Page.Header.Controls.Add(canonicalLink); Das ganze kommt dann z.B. in den Event-Handler Page_Load (Master-Datei, […]

ASP.NET: Telefonliste mit Initiale per Repeater auflisten

Hier mal ein Quick ’n‘ Dirty-Ansatz einer Telefonliste mit Initialen. .aspx <asp:Repeater ID=“Repeater1″ runat=“server“> <HeaderTemplate> <table> </HeaderTemplate> <ItemTemplate> <%#SetInitial(Eval(„Nachname“).ToString())%> <tr> <td><a href=“profil.aspx?ID=<%#Eval(„ID“)%>“> <%#Eval(„Nachname“)%>, <%#Eval(„Vorname“)%></a></td> <td><%#Eval(„Telefon“)%></td> <td><%#Eval(„EMail“)%></td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> .aspx.cs // C# private char initialOld; public string SetInitial(string lastName) { char initial = Convert.ToChar(lastName.Substring(0, 1).ToUpper()); if (initial == ‚Ä‘) initial = ‚A‘; […]

Fundstelle eines Suchbegriffs markieren (C#)

Hebt den Suchbegriff an der Funstelle hervor, ähnlich den Suchmaschinen. Die Anzahl der Zeichen vor und nach der Fundstelle kann angegeben werden. Beispiel: Suche nach „nur“ im Text „Ich bin nur ein kleiner Text.“ Ergebnis (4 Zeichen vor und nach der Funsstelle): …bin nur ein… // C# public static string MarkReference(string text, string search, int num) { string referenceText […]

ASP.NET: TextBox JavaScript-OnClick-Ereignis hinzufügen (= Pseudo OnClientClick)

Leider gibt es bei TextBoxen kein OnClientClick-Ereignis, um z.B. bei Klick darauf den Inhalt zu entfernen. protected void Page_Load(object sender, EventArgs e) { TextBox1.Attributes.Add(„onclick“, „this.value=“;“); } Ein anderes Beispiel: Einen LinkButton „disablen“ bei OnClick. (Gesehen bei http://www.dotnetsnippets.com) protected void Page_Load(object sender, EventArgs e) { LinkButton1.Attributes.Add(„onclick“, „this.disabled=true; this.onclick=function() { return false; }“); }

MS-DOS: Warten-Befehl

Da es unter MS DOS (Windows XP!) leider keinen Befehl wie wait oder sleep gibt und auch kein choice mehr in der Standard-Installation vorhanden ist, kann man sich aber mit ping behelfen! Nicht die feine englische Art aber es funktionert. Das X durch eine Zahl (= Sekunden) ersetzen: ping -n X 127.0.0.1>nul

SQL: Zufalls-Datensatz bzw. -Sortierung in Access, SQL Server

Zufälligen Datensatz (Zeile) aus einer Tabelle abrufen: Access: SELECT TOP 1 * FROM Table ORDER BY Rnd(ID); — oder — SELECT TOP 1 * FROM Table ORDER BY Rnd(INT(NOW*ID)-NOW*ID); SQL Server: SELECT TOP (1) * FROM Table ORDER BY NEWID(); Gleiche Funktion mit andere Datenbanken: http://www.petefreitag.com/item/466.cfm Ohne die Einschränkung TOP im SELECT, lassen sich die Daten […]

ASP.NET: Daten (z.B. Datensatz-ID) einem Button per CommandArgument mitgeben

Hier im Beispiel: Übergabe der ID beim Klicken eines Buttons in einem Repeater: <asp:Repeater ID=“Repeater1″ runat=“server“> <ItemTemplate> <%# Eval(„Title“)%> <asp:Button ID=“Button1″ runat=“server“ Text=“löschen“ CommandArgument=′<%# Bind(„ID“)%>′ OnCommand=“Button1_Command“ /><br /> </ItemTemplate> </asp:Repeater> … protected void Button1_Command( object sender, CommandEventArgs e ) { int delId = Convert.ToInt32(e.CommandArgument); … }

ASP.NET: Mehrere Buttons / Formulare auf einer Seite

Hat man mehrere Buttons auf einer Seite, muss man explizit angeben, welcher Button beim bestätigen über die Tastatur (Enter), ausgelöst werden soll. Das liegt daran, daß nur ein form-Tag verwendet werden darf. Ein bestimmter Button kann z.B. im Form-Tag angegeben werden: <form id=“form1″ runat=“server“ defaultbutton=“Button2″> Bei mehreren Formularen dann einfach mit einem Panel umschließen: <asp:Panel […]

FTP-Batch mit Auswahlmöglichkeit

Immer wieder die selben Daten per FTP auf den Server laden? Dann hilft vielleicht dieses kleine DOS-FTP-Batch weiter. Infos zum FTP-Upload gibt es hier. FTP-Uploader.bat echo off :start cls color 17 echo. echo FTP UPLOADER echo. echo ======================================= echo. echo [1] Upload (and overwrite) database echo [2] Upload (and overwrite) all pictures echo [c] Cancel echo. […]