Datasheet
<asp:HyperLink ID=”hypMay” runat=”server”
NavigateUrl=”~/YEAR/05”>May</asp:HyperLink><br />
<asp:HyperLink ID=”hypJune” runat=”server”
NavigateUrl=”~/YEAR/06”>June</asp:HyperLink><br />
<asp:HyperLink ID=”hypJuly” runat=”server”
NavigateUrl=”~/YEAR/07”>July</asp:HyperLink><br />
<asp:HyperLink ID=”hypAugust” runat=”server”
NavigateUrl=”~/YEAR/08”>August</asp:HyperLink><br />
<asp:HyperLink ID=”hypSeptember” runat=”server”
NavigateUrl=”~/YEAR/09”>September</asp:HyperLink><br />
<asp:HyperLink ID=”hypOctober” runat=”server”
NavigateUrl=”~/YEAR/10”>October</asp:HyperLink><br />
<asp:HyperLink ID=”hypNovember” runat=”server”
NavigateUrl=”~/YEAR/11”>November</asp:HyperLink><br />
<asp:HyperLink ID=”hypDecember” runat=”server”
NavigateUrl=”~/YEAR/12”>December</asp:HyperLink>
</asp:Panel>
</p>
</form>
</body>
</html>
Listing 1-7 shows HyperLink elements with NavigateUrl attributes set to readable URLs. They include
a level for each month of the year, where the number corresponds to the order of the month. To process
these URLs properly, edit the code file for the YearView Web form as shown in Listing 1-8.
Listing 1-8: Reading the query string parameter of a page called with a parameterized
URL: YearView.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class YearView : System.Web.UI.Page
{
string year; // passed in query string
protected void Page_Load(object sender, EventArgs e)
{
// we’ll use this in multiple methods
year = Request.QueryString[“year”];
// set page title
SetTitle();
// configure months to refer to proper page
(continued)
17
Hacks Revisited
04_597663 ch01.qxp 4/25/06 9:54 PM Page 17