开发者

Running random pictures in ASP.NET site

I'm building a web application and I have a question.

I want to display to the user running Random pictures in the Web Page.

how can I do this if it is possib开发者_开发知识库le.

thanks.


If you want to use a built-in control, you should look at the AdRotator. It will allow you to setup a XML file that lists all of your images that will be random displayed when the control renders on the page.

Control Usage:

   <asp:AdRotator id="AdRotator1" runat="server" Target="_self"
        AdvertisementFile="~/App_Data/Ads.xml"/>

Example XML File ( Ads.xml ):

  <Ad>
    <ImageUrl>~/Images/image1.jpg</ImageUrl>
    <height>60</height>
    <width>190</width>
    <NavigateUrl>http://www.microsoft.com</NavigateUrl>
    <AlternateText>Microsoft Main Site</AlternateText>
    <Impressions>80</Impressions>
    <Keyword>Topic1</Keyword>
  </Ad>
  <Ad>
    <ImageUrl>~/Images/image2.jpg</ImageUrl>
    <height>90</height>
    <width>90</width>
    <NavigateUrl>http://www.wingtiptoys.com</NavigateUrl>
    <AlternateText>Wingtip Toys</AlternateText>
    <Impressions>80</Impressions>
    <Keyword>Topic2</Keyword>
  </Ad>
</Advertisements>

If your looking for something that can change the images client side (via JavaScript), there are a ton of solutions available. Here is an example of using the jQuery.Cycle plugin.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="jQueryRotateImages.aspx.cs" Inherits="DevOne.jQueryRotateImages" %>
<!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 runat="server">
    <title>jQuery Rotate Images - Cycle Plugin</title>
    <style type="text/css">
        .slideshow { height: 232px; width: 232px; margin: auto; }
        .slideshow img { padding: 15px; border: 1px solid #ccc; background-color: #eee; }
    </style>
    <!-- include jQuery library -->
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
    <!-- include Cycle plugin -->
    <script type="text/javascript" src="http://cloud.github.com/downloads/malsup/cycle/jquery.cycle.all.latest.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $('.slideshow').cycle({
                fx: 'fade' // choose your transition type, ex: fade, scrollUp, shuffle, etc...
            });
        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div id="slideshow" class="slideshow" runat="server">
    </div>
    </form>
</body>
</html>

And here is how you can add your images dynamically in your code behind.

using System;
using System.Web.UI.HtmlControls;

namespace DevOne
{
    public partial class jQueryRotateImages : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            slideshow.Controls.Add(new HtmlImage() { Src = "http://cloud.github.com/downloads/malsup/cycle/beach1.jpg", Width = 200, Height  = 200});
            slideshow.Controls.Add(new HtmlImage() { Src = "http://cloud.github.com/downloads/malsup/cycle/beach2.jpg", Width = 200, Height = 200 });
            slideshow.Controls.Add(new HtmlImage() { Src = "http://cloud.github.com/downloads/malsup/cycle/beach3.jpg", Width = 200, Height = 200 });
        }
    }
}


pseudocode:

//On Page Load do this:
  //create list of images from whatever your image source is
  //generate a random number between 0 and `ImageList.Length - 1`
  //assign the url from the image at the random index to the ImageUrl property of your Image control


If you simply want to pull a random image from a folder on the website, you could do something like the following:

string[] files = Directory.GetFiles(Server.MapPath(@"/images/"));
Random r = new Random();
string imageName = files[r.Next(files.Length);
// ... Code to display image.

However, you've really given sparse information of what you're trying to accomplish, such as where the images are coming from. This would be a very generic solution.


The following blog of msdn explains all the basics about the Random() MSDN Microsoft Developer Network: Random()
The basic about it is that the Random class selects a random number from an array. It depends on the ticks time. MSDN DateTime Ticks
The ticks are used basically to generate a random. Random can be used as: Suppose I am extracting data from database. It will be
var db = Database.Open("databasename")
var image = db.Query("SELECT * FROM Images").ToList();
var randomImage = image[new Random().Next(image.Count)]

And display the data of it.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜