I looked through the AJAX Control Toolkit's SliderExtender.cs extender control and the SliderBehavior.js script. The problem with rendering the proper src attribute value for the slider handle image stems from the following line in SliderBehavior.js:
var defaultHandleImageUrl = (this._isHorizontal) ? '< %= WebResource("AjaxControlToolkit.Slider.Images.slider_h_handle.gif") % >'
: '< %= WebResource("AjaxControlToolkit.Slider.Images.slider_v_handle.gif") % >';
Because the images are embedded as resources in the AJAXControlToolkit.dll assembly and must be extracted via the WebResource.axd handler built into ASP.NET 2.0, the script WebResource is marked with the attribute PerformSubstitution="True" in SliderExtender.cs:
[assembly: System.Web.UI.WebResource("AjaxControlToolkit.Slider.SliderBehavior.js", "text/javascript", PerformSubstitution=true)]
Setting PerformSubstitution="True" causes tokens such as <%= WebResource ( . . .) %>in the script (which is also embedded as a resource in the AJAXControlToolkit.dll assembly) to be replaced with their resolved values when the extender behavior is initialized. Apparently this is done with a call to Page.ClientScript.GetResourceUrl somewhere in the AJAX framework. Unfortunately, with the URL re-writing that is taking place in DNN, the token is getting incorrectly resolved to a URL that looks something like:
http:/ /localhost/DNN4Dev/Test/tabid/45/ctl/mysettigs/mid/93/WebResource.axd? . . . rather than: http:/ /localhost/DNN4Dev/WebResource.axd? . . .
Because a similar substitution in the slider's style sheet slider.css or a direct call to Page.ClientScript.GetResourceUrl (SliderExtender1.GetType(), "AJAXControlToolkit.Slider.Images.slider_h_handle.gif") in a module control which includes a SliderExtenderControl is properly resolving, I suspect that when the token replacement in the embedded script is performed, the friendly url re-writing of DNN has already occured while similar replacement in slider.css or in the direct call to GetResourceUrl in the Page_Load of the module has not yet happened.
Rather than making a change to SliderBehavior.js and having to recompile the AJAXControlToolkit, I would suggest the following which seems to work for the horizontal slider:
1. Copy the handle images "slider_h_handle.gif" and "slider_v_handle.gif" from the AJAX Control Toolkit's source folder (AJAXControlToolkit\Slider\Images) to the images folder in your DNN website root.
2. Make use of the HandleImageUrl property of the slider extender to specify either of these image files (depending if the Orientation property is horizontal (default) or vertical). If this is done in the module control's .ascx the following will work:
< cc1:sliderextender id="SliderExtender1" runat="server" tooltiptext="{0}" handleimageurl="~/images/slider_h_handle.gif"
EnableHandleAnimation="True" Orientation="Horizontal" minimum="0" maximum="100"
behaviorid="Slider1" targetcontrolid="tbPageSize" >< /cc1:sliderextender >
Unfortunately, while this will correct the missing image for the vertical orientation as well as the horizontal, it does not correct the problem with the handle of a vertical slider not being draggable. Any attempt to mouse down on the handle immediately snaps it to the top of the slider. Mouse up then moves the handle to the the current mouse coordinates. Even in this case, the vertical slider correctly sets its initial position and returns its value to the textbox. I did not see any quick fix for this and would have to step through the behavior script to see what is happening.