Hi pankajom,
The AjaxControlToolkit Rating, CalendarExtender control is working after Url Routing.
You need to change the background-image url for Star, WaitingStar and FilledStar.
Using the below article i have created the example.
How to hide ( remove ) .ASPX extension in URL in ASP.Net
Check this example. Now please take its reference and correct your code.
Global.asax
<%@ Application Language="C#" %>
<%@ Import Namespace="System.Web.Routing" %>
<script RunAt="server">
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
static void RegisterRoutes(RouteCollection routes)
{
routes.Ignore("{resource}.axd/{*pathInfo}");
routes.MapPageRoute("Customers", "Customers", "~/Customers.aspx");
routes.MapPageRoute("CustomerDetails", "Customers/{CustomerId}", "~/CustomerDetails.aspx");
}
</script>
HTML
Default.aspx
<h1>
Home</h1>
<hr />
<a href='<%=ResolveUrl("~/Customers") %>'>View Customers</a>
Customers.aspx
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</cc1:ToolkitScriptManager>
<asp:TextBox ID="txtDate" runat="server" ReadOnly="true"></asp:TextBox>
<asp:ImageButton ID="imgPopup" ImageUrl="~/images/calender.png" ImageAlign="Bottom"
runat="server" />
<cc1:CalendarExtender ID="CalendarExtender1" runat="server" PopupButtonID="imgPopup"
TargetControlID="txtDate" Format="dd/MM/yyyy">
</cc1:CalendarExtender>
<br />
<h1>
Customers</h1>
<hr />
<asp:DataList ID="GridView1" runat="server" RepeatDirection="Vertical" CssClass="dLmostanad">
<ItemTemplate>
<table class="table">
<tr>
<th colspan="2">
<b>
<%# Eval("Name") %></b>
</th>
</tr>
<tr>
<td colspan="2">
<%# Eval("Id") %><br />
<%# Eval("Country")%>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<asp:ImageButton ID="ImgContinue" runat="server" CssClass="imgconM" ImageUrl="~/images/Next.jpg"
CommandArgument='<%# Eval("ID")%>' OnClick="ContinueMostanad" ForeColor="Transparent"
AlternateText="View"></asp:ImageButton>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
</form>
</body>
</html>
CustomerDetails.aspx
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
<style type="text/css">
body
{
font-family: Arial;
font-size: 10pt;
}
.Star
{
background-image: url(../images/Star.gif);
height: 17px;
width: 17px;
}
.WaitingStar
{
background-image: url(../images/WaitingStar.gif);
height: 17px;
width: 17px;
}
.FilledStar
{
background-image: url(../images/FilledStar.gif);
height: 17px;
width: 17px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</cc1:ToolkitScriptManager>
<cc1:Rating ID="Rating1" AutoPostBack="true" OnChanged="OnRatingChanged" runat="server"
StarCssClass="Star" WaitingStarCssClass="WaitingStar" EmptyStarCssClass="Star"
FilledStarCssClass="FilledStar">
</cc1:Rating>
<br />
<br />
<asp:Label ID="lblRatingStatus" runat="server" Text=""></asp:Label>
<br />
<h1>
Customer Details</h1>
<hr />
<b>Customer Id:</b>
<asp:Label ID="lblCustomerId" runat="server" />
</form>
</body>
</html>
Code
Customers.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id", typeof(int)),
new DataColumn("Name", typeof(string)),
new DataColumn("Country",typeof(string)) });
dt.Rows.Add(1, "John Hammond", "United States");
dt.Rows.Add(2, "Mudassar Khan", "India");
dt.Rows.Add(3, "Suzanne Mathews", "France");
dt.Rows.Add(4, "Robert Schidner", "Russia");
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
protected void ContinueMostanad(object sender, ImageClickEventArgs e)
{
ImageButton ImgEdit = (ImageButton)sender;
Response.Redirect("Customers/" + ImgEdit.CommandArgument);
}
CustomerDetails.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
lblCustomerId.Text = this.Page.RouteData.Values["CustomerId"].ToString();
DataTable dt = this.GetData("SELECT ISNULL(AVG(Rating), 0) AverageRating, COUNT(Rating) RatingCount FROM UserRatings");
Rating1.CurrentRating = Convert.ToInt32(dt.Rows[0]["AverageRating"]);
lblRatingStatus.Text = string.Format("{0} Users have rated. Average Rating {1}", dt.Rows[0]["RatingCount"], dt.Rows[0]["AverageRating"]);
}
}
private DataTable GetData(string query)
{
DataTable dt = new DataTable();
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand(query))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
sda.SelectCommand = cmd;
sda.Fill(dt);
}
}
return dt;
}
}
protected void OnRatingChanged(object sender, RatingEventArgs e)
{
Response.Redirect(Request.Url.AbsoluteUri);
}
Screenshot
