Simple Image Slide Show C# edition
By Hehong Yang(杨贺宏)
In Scott Mitchell’s article, he create a simple image slide show using ASP.net with vb.net. Now I rewrite it in C#. I create a sub directory Photos to store the image files. And instead of using DataList control, I used DropDownList control to list all image files. I use it in my personal web site, so you can view a live demo there( http://www17.brinkster.com/flycrane/Album/default.ASPx ).
Soure code: Default.ASPx
<%@ Page Language="C#" %>
<%@ import Namespace="System.IO" %>
// Insert page code here
private void Page_Load(object sender, System.EventArgs e)
{
//Get list of images
DirectoryInfo dirInfo= new DirectoryInfo( Server.MapPath("Photos"));
FileInfo[] images= ImagesFilter( dirInfo.GetFiles() );
//Determine the current image to show
int imageIndex= 0;
if( Request.QueryString["N"]!=null )
imageIndex= Convert.ToInt32( Request.QueryString["N"] );
lblTitle.Text+= Path.GetFileNameWithoutExtension( images[imageIndex].Name )
+" ("+ (imageIndex+1) +" of "+images.Length+")";
currentImage.ImageUrl= "/flycrane/Album/Photos/"+images[imageIndex].Name ;
if( imageIndex>0 )
lnkPrev.NavigateUrl= "Default.ASPx?N=" + (imageIndex - 1);
if( imageIndex lnkNext.NavigateUrl= "Default.ASPx?N=" + (imageIndex +1); if(! IsPostBack) { ddlImages.DataSource= images; ddlImages.DataBind(); } } public FileInfo[] ImagesFilter( FileInfo[] files ) { ArrayList newImages= new ArrayList( files.Length ); for( int i=0;i { if( Path.GetExtension( files[i].Name.ToLower() )==".jpg" || Path.GetExtension( files[i].Name.ToLower() )==".jpeg" || Path.GetExtension( files[i].Name.ToLower() )==".png" || Path.GetExtension( files[i].Name.ToLower() )==".gif" ) newImages.Add(files[i]); } return ( FileInfo[] ) newImages.ToArray( files[0].GetType() ); } void ddlImages_SelectedIndexChanged(object sender, EventArgs e) { Response.Redirect( "default.ASPx?N="+ (ddlImages.SelectedIndex) ); }

