Click here to Skip to main content
15,919,028 members
Articles / Web Development / HTML
Article

An ASP.NET Slide Show

Rate me:
Please Sign up or sign in to vote.
3.43/5 (30 votes)
30 Mar 2006CPOL1 min read 353.6K   14K   78   73
A simple slide show using AJAX in ASP.NET.

Introduction

I had been looking for the source of a web-based slide show for my own use. The features I wanted in my slide show pages were that it should dynamically select a picture in the server to display, it should display some transition effects, and it should not cause page refreshing. But I couldn’t find one of this kind. So I decided to code it myself.

There is a lot of source code to make the transition effect using JavaScript. But to address the dynamic selection of the picture to display and to avoid the page from refreshing, I used AJAX. There are a lot of AJAX frameworks and tools out there to choose from. But for this simple task, I just used the ASP.NET2’s built-in AJAX supported class System.Web.UI.ICallbackEventHandler.

The included source code will demonstrate the use of this class, and also how to use JavaScript to make the request to get the next image file and apply the transition effects. One thing I need to mention is when applying transition effects, the next image has to be completely loaded before playing the effect, otherwise, the picture display will not be smooth and will be flickering. I also address this in my JavaScript code.

In fact, this is a part of my photo album web project. For the live demo of the slide show in my photo album, click here.

Using the code

To use the source, unzip the project files to a folder, load the Slideshow.sln in Visual Studio 2005, and run it.

Hope my post is useful to you. Enjoy!

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
Generalgetting an error when servers wants to upload next image [modified] Pin
lennied5-Dec-06 2:52
lennied5-Dec-06 2:52 
QuestionRe: getting an error when servers wants to upload next image [modified] Pin
Donald Shaw1-Jan-07 13:33
Donald Shaw1-Jan-07 13:33 
GeneralDoesn't work at all in Firefox Pin
cbgthree26-Nov-06 11:11
cbgthree26-Nov-06 11:11 
GeneralRe: Doesn't work at all in Firefox Pin
Lang Deng26-Nov-06 11:37
Lang Deng26-Nov-06 11:37 
AnswerRe: Doesn't work at all in Firefox Pin
Donald Shaw1-Jan-07 11:41
Donald Shaw1-Jan-07 11:41 
GeneralRe: Doesn't work at all in Firefox Pin
yannlh17-Jan-07 16:51
yannlh17-Jan-07 16:51 
GeneralRe: Doesn't work at all in Firefox Pin
alkm12023-Apr-07 3:00
alkm12023-Apr-07 3:00 
GeneralRe: Doesn't work at all in Firefox Pin
Azul SkyKnight6-Jun-07 6:33
Azul SkyKnight6-Jun-07 6:33 
I had this issue as well and after a few hours of pounding my head I found a solution.

The problem exists in the GetNetImageUrl function

Specifically the following line:
return files[n].Replace(AppDomain.CurrentDomain.BaseDirectory, string.Empty);

You see files contains a complete path to the files in your image directory. This listing is using windows pathing. Ex: C:\whatever\images\whatever.jpg

We are finding everything up to the images directory with this line and removing it from the string leaving images\whatever.jpg and passing it to the browser. Now anyone that is paying attention here will notice that \ isn't a valid directory signifier on the web. / is! IE is happily translating your mistake for you Firefox isn't that forgiving nor is any other browser I'm aware of...

Change it to:
return "images/" + files[n].Replace(AppDomain.CurrentDomain.BaseDirectory + "images\\", string.Empty);

that will return a proper image path and allow firefox to find the images so they can load. However, you still have to disable the transitions for firefox to cooperate.

So to make this work with Firefox you need to:
C# Changes:
1.) Look in GetNextImageUrl() and change
return files[n].Replace(AppDomain.CurrentDomain.BaseDirectory, string.Empty);
to
return "images/" + files[n].Replace(AppDomain.CurrentDomain.BaseDirectory + "images\\", string.Empty);
2.) Look in GetCallBackResult() and change
return GetNextImageUrl() +";" + GetNextTransition();
to
return GetNextImageUrl();
JavaScript Changes:
1.) Replace ReveiveServerData(rValue) with this new function
function ReceiveServerData(rValue)
{
var img = new Image();
img.onload = function(){ imageLoaded(this); }
img.onerror = function(){ imageError(this); }
img.onabort = function(){ imageError(this); }
img.src = rValue;
}
2.) Look in imageLoaded and comment out or remove the two lines that deal with filters.

After that it runs a simple slide show on both browsers for me! The transitions are nice but I needed something more universal.

I hope this helps someone not lose any more hair. Many thanks to Lang Deng for the original!

GeneralRe: Doesn't work at all in Firefox Pin
Doan Quynh13-Nov-07 5:05
Doan Quynh13-Nov-07 5:05 
GeneralRe: Doesn't work at all in Firefox Pin
Azul SkyKnight16-Nov-07 4:34
Azul SkyKnight16-Nov-07 4:34 
Generalusing slideshow Pin
kurt11178023-May-06 3:24
kurt11178023-May-06 3:24 
GeneralRe: using slideshow Pin
Lang Deng23-May-06 8:45
Lang Deng23-May-06 8:45 
GeneralRe: using slideshow Pin
AntonioN20-Jul-06 1:48
AntonioN20-Jul-06 1:48 
GeneralRe: using slideshow Pin
Dan Satria24-Jul-06 10:24
Dan Satria24-Jul-06 10:24 
GeneralRe: using slideshow Pin
ASPX_noob10-Oct-06 16:08
ASPX_noob10-Oct-06 16:08 
GeneralRe: using slideshow Pin
Lang Deng10-Oct-06 19:02
Lang Deng10-Oct-06 19:02 
GeneralRe: using slideshow Pin
ASPX_noob10-Oct-06 20:07
ASPX_noob10-Oct-06 20:07 
GeneralRe: using slideshow Pin
Lang Deng10-Oct-06 21:28
Lang Deng10-Oct-06 21:28 
GeneralRe: using slideshow Pin
ASPX_noob11-Oct-06 0:39
ASPX_noob11-Oct-06 0:39 
GeneralRe: using slideshow Pin
Lang Deng11-Oct-06 8:39
Lang Deng11-Oct-06 8:39 
QuestionRe: using slideshow [modified] Pin
ASPX_noob11-Oct-06 15:33
ASPX_noob11-Oct-06 15:33 
AnswerRe: using slideshow Pin
Lang Deng11-Oct-06 18:40
Lang Deng11-Oct-06 18:40 
GeneralRe: using slideshow Pin
ASPX_noob11-Oct-06 19:00
ASPX_noob11-Oct-06 19:00 
GeneralRe: using slideshow Pin
Lang Deng11-Oct-06 20:36
Lang Deng11-Oct-06 20:36 
GeneralRe: using slideshow Pin
ASPX_noob11-Oct-06 21:11
ASPX_noob11-Oct-06 21:11 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.