by Piotrosz
21. November 2008
Każdy przedszkolak wie, że w pliku web.config można skonfigurować autoryzację do folderu lub podfolderu aplikacji WWW. Nie wiedziałem, że można te wartości oddzielać przecinkami!
albo można to zrobić w jednej linijce:
Oczywiście to dotyczy sytuacji, gdy jest windows authentication:
Znak "*" oznacza totalnie wszystkich użytkowników. Zarówno "zautentyfikowanych" jak i nie.
Znak "?" oznacza wszystkich "niezautentyfikowanych" użytkowników (all unauthenticated users).
W tym przykładzie jest dozwolony dostęp do aplikacji tylko dla grup G_1 i G_2 oraz wymienionych użytkowników. Reszta ludzi ma zabroniony dostęp.
by Piotrosz
18. November 2008
Moje ulubione skróty klawiszowe w Visual Studio:
| [F12] |
idź do definicji, |
| [Ctrl] + [m], [l] |
zwiń wszystko (regiony, bloki kodu), |
| [Ctrl] + [k] + [f] |
popraw wcięcia i sformatuj zaznaczony fragment kodu, |
| [Ctrl] + [k] + [d] |
popraw wcięcia i sformatuj kod w całym dokumencie, |
|
[Shift] + [F7] |
przełączaj między code view i design view pliku .aspx, |
| [F7] |
przełączaj między plikiem .aspx a odpowiednim plikiem .cs (code-behind file), |
| [F11] |
step into (debug), |
| [Shift] + [F11] |
step out (debug), |
| [F10] |
step over (debug), |
| [F9] |
włącz/wyłącz pułapkę (breakpoint), |
| [Shift] + [F5] |
zatrzymaj debuggowanie, |
| [Ctrl] + [Shift] + [F9] |
usuń wszystkie pułapki, |
| [Ctrl] + [Alt] + [l] |
pokaż Solution Explorer, |
| [Ctrl] + [k], [c] |
zakomentuj zaznaczenie, |
| [Ctrl] + [k], [u] |
odkomentuj zaznaczenie, |
| [Alt] + [Enter] |
pokaż właściwości. |
| [Ctrl] + [k], [s] |
otocz dyrektywą ("surround with"). |
| [Ctrl] + [Shift] + [Space] |
Wyświetl podpowiedź dla parametru (parameter info) |
| [Ctrl] + [k], [Ctrl] + [i] |
Wyświetl "quick info" |
| [Ctrl] + [Space] |
Wyświetl podpowiedzi IntelliSense (word completion) |
by Piotrosz
7. November 2008
Wybór tematu strony w metodzie strony
Page_PreInit():
protected void Page_PreInit(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(Request.QueryString["Theme"]))
{
switch (Request.QueryString["Theme"])
{
case "1":
Page.Theme = "Theme1";
break;
case "2":
Page.Theme = "Theme2";
break;
}
}
}
Zobacz wynik
by Piotrosz
6. November 2008
Obiekt Page.Header (klasy HtmlHead) pozwala na dynamiczną zmianę tytułu i stylu strony poprzez właściwości
Title oraz
StyleSheet.
Przykład:
protected void Page_Load(object sender, EventArgs e)
{
// Zmiana tytułu strony
Page.Header.Title = DateTime.Now.ToLongTimeString();
// Zmiana stylu strony
Style style = new Style();
style.BackColor = System.Drawing.Color.AliceBlue;
style.ForeColor = System.Drawing.Color.Red;
Page.Header.StyleSheet.CreateStyleRule(style, null, "body");
}
Należy pamiętać, by element <head> na stronie miał atrybut
runat="server"
by Piotrosz
3. November 2008
Na stronach aspx dane zazwyczaj są wysyłane do tej samej strony. Gdy potrzeba przesłać dane z formularza do innej strony należy zastosować cross-page posting.
Przykład:
Na stronie CrossPagePosting.aspx dodajemy guzik, który wykona cross-page posting z ustawioną właściwością
PostBackUrl oraz pole tekstowe, którego zawartość zostanie przesłana do innej strony (CrossPagePosting2.aspx):
Imię:
W pliku code-behind strony dodajemy właściwość:
public partial class CrossPagePostingTest : System.Web.UI.Page
{
public string Imie
{
get { return txtImie.Text; }
}
}
Na stronie, do której przesyłane są dane (CrossPagePosting2.aspx) dodajemy dyrektywę:
<%@ PreviousPageType VirtualPath="~/CrossPagePosting.aspx" %>
i wyświetlamy imię w etykiecie poprzez właściwość
PreviousPage.Imie:
protected void Page_Load(object sender, EventArgs e)
{
if (Page.PreviousPage != null)
{
lbl.Text = Server.HtmlEncode(PreviousPage.Text);
}
else
{
lbl.Text = "Previous page is null.";
}
}
Zobacz wynik