Sunday, July 11, 2010

fix to login control's behavior on rewrited urls

protected void Application_EndRequest(object sender, EventArgs e)
{
if (Response.StatusCode == 302 && !string.IsNullOrEmpty(Response.RedirectLocation)) //if valid url and with redirect location
{
const string LOGINPAGE = "login.aspx";
string targetLocation = Response.RedirectLocation.ToLower();

//check if user is trying to login from a rewrited page
if ((Request.HttpMethod == Classes.Constants.HTTP_POST) && Request.RawUrl != Request.Url.PathAndQuery)
{
if (targetLocation.Contains(LOGINPAGE)
&& targetLocation.Contains(Classes.Constants.QS_RETURNURL.ToLower()))

//modify redirectlocation's return url with the rewrited url
Response.RedirectLocation = string.Format("{0}?{1}={2}",
VirtualPathUtility.ToAbsolute(Classes.Constants.PAGE_LOGIN),
Classes.Constants.QS_RETURNURL,
Server.UrlEncode(Request.RawUrl) //the rewrited url
);
}
}
}


Share/Save/Bookmark

Monday, January 25, 2010

How to remove the default inline styles of an ASP.Net Calendar control

namespace CustomCalendar
{
///
/// Created by Wilmer F. Pascual
///
public class RafnexCalendar:System.Web.UI.WebControls.Calendar
{
protected override void OnDayRender(System.Web.UI.WebControls.TableCell cell, System.Web.UI.WebControls.CalendarDay day)
{
cell.HorizontalAlign = System.Web.UI.WebControls.HorizontalAlign.NotSet; //wfp - remove rendering of default inline attribute align='center' (for clean rendering of html)
base.OnDayRender(cell, day);
}

protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
//base.Render(writer);
base.Render(new RafnexCalendarTextWriter(writer));
}
}

///
/// Created by Wilmer F. Pascual
///
public class RafnexCalendarTextWriter : System.Web.UI.HtmlTextWriter
{
public RafnexCalendarTextWriter(System.Web.UI.HtmlTextWriter writer)
: base(writer)
{
this.InnerWriter = writer.InnerWriter;
}

public RafnexCalendarTextWriter(System.IO.TextWriter writer)
: base(writer)
{
this.InnerWriter = writer;
}

protected override void AddStyleAttribute(string name, string value, System.Web.UI.HtmlTextWriterStyle key)
{
//remove rendering of inline styles - wfp
//base.AddStyleAttribute(name, value, key);
}


}
}


Share/Save/Bookmark

Thursday, January 21, 2010

Handle empty Repeater data

<asp:Repeater ID="repDeactivatedList" runat="server"
onitemcommand="repDeactivatedList_ItemCommand">
<HeaderTemplate>
<table class="commonTable">
<tr>
<th>...</th>
</tr>
</HeaderTemplate>

<ItemTemplate>
<tr>
<td>...</td>
</tr>
</ItemTemplate>

<FooterTemplate>
<tr runat="server" visible='<%# repDeactivatedList.Items.Count == 0 %>'>
<td colspan="5"><asp:Literal ID="Literal1" runat="server" Text="No results"></asp:Literal></td>
</tr>

</table>
</FooterTemplate>
</asp:Repeater>


Share/Save/Bookmark