by Piotrosz
9. December 2009
Krótka rzecz, o której nie wiedziałem, a która jest całkiem fajna.
Gdy strona zajmuje tyle miejsca, że na ekranie pojawiają się scrollbary do przewijania treści, to niestety po postbacku stan tych scrollbarów jest resetowany (tzn. paski do przewijania wracają na swoje początkowe miejsce).
Może to doprowadzać do szału użytkowników aplikacji.
Okazuje się, że aby zachować stan scrollbarów między przeładowaniami strony nie trzeba się uciekać do pisania brzydkiego JavaScriptu. Wystarczy w dyrektywie @Page dodać:
<%@Page MaintainScrollPositionOnPostback="true" %>
Więcej dokładnych informacji o tym ustawieniu jest tutaj:
http://www.4guysfromrolla.com/articles/111407-1.aspx
by Piotrosz
8. December 2009
Przykłady wykorzystania tagów serwera na stronie aspx.
Nie wiem do końca czy tak to się nazywa, w każdym razie mam na myśli dziwne znaczki rozpoczynające się od <% i kończące się na %>.
1. Komentarz po stronie serwera to <%-- --%>. Przydatne, gdy chcemy zakomentować element, który zawiera runat="server"
<%--
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
--%>
2. Element <%$ %> pozwala na przypisanie wartości z AppSettings, Resources (zasobów globalnych) lub ConnectionStrings:
<asp:Literal runat="server" Text="<%$ Resources: Resource, Powitanie" />
Więcej o tym tutaj:
http://msdn.microsoft.com/en-us/library/d5bd1tad.aspx.
3. Element <%= %> to to samo co <% Response.Write(); %>:
<%= DateTime.Now.ToShortDateString() %>
<br/>
<% Response.Write(DateTime.Now.ToLongDateString()); %>
4. Element < %> to "data-binding expression" i służy do powiązania źródła danych z kontrolką, która potrafi te dane wyświetlić (chodzi o "databound controls"). W środku występuje zazwyczaj Eval (tylko wyświetlanie/odczyt wartości) lub Bind (wyświetlanie i zmiana wartości).
<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="false">
<Fields>
<asp:TemplateField>
<ItemTemplate>
<%# Eval("Nazwa1") %>
</ItemTemplate>
</asp:TemplateField>
</Fields>
</asp:DetailsView>