void gvList_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex == gvList.EditIndex)
{
e.Row.FindControl("tbxStundenHeute").Focus();
}
}
Mittwoch, 21. April 2010
Focus im GridView auf eine TextBox setzen
Donnerstag, 7. Januar 2010
Spalten einer Tabelle ordnen
'-- Order columns
Dim nLast = DT.Columns.Count - 1
MyDataTable.Columns("ID").SetOrdinal(nLast)
MyDataTable.Columns("Date").SetOrdinal(nLast)
MyDataTable.Columns("Name").SetOrdinal(nLast)
So werden die Spalten umsortiert, indem eine nach der anderen nach hinten gestellt wird.
Dienstag, 3. November 2009
Methode in VB als Obsolete markieren
[Obsolete("Bitte MyNewMethod verwenden!")]
Public MyMethod()
{
...
}
wird in VB:
<Obsolete("Bitte MyNewMethod verwenden!")> _
Public Sub MyMethod()
...
End Sub
Auf den Unterstrich wäre ich ohne nachzuschauen nie gekommen.
Montag, 2. November 2009
String-String-Liste sortieren
Dictionary(Of String, String), da dieses IEnumerable implementiert und somit Linq-Abfragen ermöglicht.
Somit sortieren wir das Dictionary wie folgt (hier in Visual Basic Syntax):
Dim OrderedOut = New Dictionary(Of String, String)
For Each Entry In From Ent In MyDictionary Order By Ent.Value
OrderedOut.Add(Entry.Key, Entry.Value)
Next
Anmerkung: in VB ist dies etwas kürzer als in C#, da hier die Typen automatisch umgewandelt werden. Außerdem für alle C#er:
Dictionary(Of String, String)
wäre in C#
Dictionary<string, string>
Donnerstag, 29. Oktober 2009
Tabellenspalte in Entity-Framework hinzufügen: Nullable oder Standardwert?
Häufig muss einer Tabelle, die bereits Werte enthält, eine Spalte hinzugefügt werden. Wenn diese weder Null-Werte zulässt, noch einen Standardwert enthält, bekommen wir einen Fehler und die Spalte wird nicht erstellt.
Nun stellt sich die Frage, ob Null-zulassen oder ein Standardwert (z.B. '' bei Char oder -1 bei Zahlen) sinnvoller sind.
Entscheidet man sich für Nullable, dann wird der Typ der Property vom Entity-Framework auf Nullable gesetzt, also in C#:
int?
Das ist sehr nachteilig, denn nun müssen überall die Variablen, die Werte eintragen oder übernehmen sollen, alle ebenfalls als Nullable angelegt oder entsprechend gecastet werden.
int i;
i=MyProperty;
führt beispielsweise zu einer Ausnahme.
Daher: immer Defaultwerte vorziehen!
Mittwoch, 15. Juli 2009
DataRow serialisieren
Kürzlich hatte ich das Problem, eine DataRow im ViewState zu behalten. Es warf eine Ausnahme, da die DataRow nicht serialisierbar ist.
Ich fand eine einfache Lösung: da die DataTable serialisierbar ist, speichere ich diese. Das ganze aber in einer Methode gekapselt, so dass ich direkt auf die DataRow zugreifen kann:
private DataRow CurrentRow
{
get { return ((DataTable)ViewState["CurrentRow"]).Rows[0]; }
set { ViewState["CurrentRow"] = value.Table; }
}
Freitag, 5. Juni 2009
Transparente Favicons
Favicons sind die Symbole, die oben bei den Registerkarten und vor der Adresszeile in modernen Browsern angezeigt werden. Mitlerweile sind hier die Hintergründe nicht mehr Weiss, sondern verschiedene Blau- und Grautöne, teilweise mit Verläufen. Deswegen sehen nicht quadratische Favicons nur noch gut aus, wenn sie transparent angelegt werden.
Die einfachste Vorgehensweise sieht so aus:
- 16x16 großes Bild in Photoshop erzeugen (mit Transparenz)
- Darin eine markante Farbe als Transparenz festlegen
- Speichern als PNG
- Öffnen mit IrfanView
- Speichern als ... ICO (dort "Show Options Dialog" und bei ICO "Save Transparent Color")
- Im HTML als
<link rel="shortcut icon" href="/favicon.ico">einbinden
Es gibt auch Online-Tools, die PNG oder GIF Dateien in Favicons konvertieren, aber ich habe keines gefunden, bei dem die Transparenz dann auch in Firefox und Internet Explorer funktioniert hätte.
Ich denke, der Aufwand lohnt sich, denn ein nicht-transparentes Favicon kann den ersten Eindruck einer Website deutlich verschlechtern.
