c# - Random Images Displayed In Slider -


i using image slider 7 images. have folder in asp.net web forms application called slider 50 images in it. every time refresh or visit page want slider populated 7 different images every time 50 images in folder.

aspx

<div class="slider">                 <div id="slider1">                     <% response.write("<img src='" + chooseimage() + "' />");%>                    <%-- <img border="0" src="slider/b50.jpg" width="850" height="637" />                     <img border="0" src="slider/b51.jpg" width="850" height="637" />                     <img border="0" src="slider/c47.jpg" width="850" height="637" />                     <img border="0" src="slider/c43.jpg" width="850" height="637" />                     <img border="0" src="slider/e2.jpg" width="850" height="637" />                     <img border="0" src="slider/w5.jpg" width="850" height="637" />                     <img border="0" src="slider/m21.jpg" width="850" height="637" />--%>                 </div>                 <ul id="thumb"></ul>                 <div id='next' class="slider_next">                     <img border="0" src="images/next.png" width="57" height="57" alt="next image" /></div>                 <div id='prev' class="slider_prev">                     <img border="0" src="images/prev.png" width="57" height="57" alt="previous image" /></div>             </div>         </div> 

before had direct path 7 images in folder want randomized.

<% response.write("<img src='" + chooseimage() + "' />");%> 

aspx.cs

protected void page_load(object sender, eventargs e)         {             chooseimage();         }         public string chooseimage()         {             if (session["img"] == null)             {                 string imgpath;                 int filecount = directory.getfiles(server.mappath("slider/"), "*.*", searchoption.topdirectoryonly).length;                 filecount = filecount + 1;                 imgpath = "slider/" + randomnumber(1, filecount) + ".jpg";                 session["img"] = imgpath;                 return imgpath;             }             else                 return session["img"].tostring();         }         private int randomnumber(int min, int max)         {             random random = new random();             return random.next(min, max);         } 

when run application no image being displayed in slider.

slider folder

enter image description here

when getting imgpath, need resolve url make valid client. can done through control.resolveurl method:

imgpath = resolveurl("slider/" + randomnumber(1, filecount) + ".jpg"); 

if image source invalid, no image displayed.

however, once resolve url, images same since caching results session["img"]. in order randomized images every time, remove if statement , else body.

you should change your

random random = new random(); 

local variable declaration instance variable or static variable, discussed in stackoverflow question.

edit: should rewrite chooseimage() method file within directory "slider". currently, return paths such "slider/1.jpg" , "slider/2.jpg".

public string chooseimage() {     string[] files = directory.getfiles(server.mappath("slider/"), "*.*", searchoption.topdirectoryonly);     int filecount = files.length;     string filename = path.getfilename(files[randomnumber(0, filecount)]);     return "slider/" + filename; // or return resolveurl("slider/" + filename); } 

Comments