Jag tycker du ska försöka skilja mer på design och data.
Låt hyperlänken vara tom i designen och bind den code behind istället så blir det lite renare och tydligare! :)
<asp:HyperLink CssClass="navigation" ID="HyperLink1" runat="server" />
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
BindLink();
}
private void BindLink()
{
DataTable dt = GetArchive();
HyperLink1.Text = dt.Rows[0]["myDate"].ToString();
HyperLink1.NavigateUrl = "~/Default.aspx?y="+dt.Rows[0]["Year"].ToString() + "&m=" + dt.Rows[0]["month"].ToString();
}
internal static DataTable GetArchive()
{
using (MySqlConnection conn = new MySqlConnection(ConnString))
{
try
{
conn.Open();
MySqlDataAdapter da = new MySqlDataAdapter("SELECT DISTINCT(MONTHNAME(Date)) AS myDate, YEAR(Date) AS year, MONTH(Date) AS month FROM Post WHERE YEAR(Date) = YEAR(NOW()) ORDER BY Date", conn);
da.SelectCommand.CommandType = CommandType.Text;
DataSet ds = new DataSet();
da.Fill(ds);
return ds.Tables[0];
}
catch (Exception ex)
{
throw new ApplicationException(ex.Message);
}
}
}
/RED
Sen skulle du kunna använda en linkbutton istället för hyperlink om du vill slippa en massa querysträngar! Men det hänger lite på hur resten av koden ser ut! :)