在ASP.NET站点中运行随机图片

时间:2011-08-03 17:40:27

标签: asp.net image random

我正在构建一个Web应用程序,我有一个问题。

我想向在网页中运行随机图片的用户显示。

如果可能,我该怎么做呢。

感谢。

4 个答案:

答案 0 :(得分:1)

如果您想使用内置控件,则应查看AdRotator。它将允许您设置一个XML文件,列出控件在页面上呈现时随机显示的所有图像。

控制用法:

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

示例XML文件(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>

如果您正在寻找可以更改图像客户端(通过JavaScript)的内容,那么可以使用大量解决方案。以下是使用jQuery.Cycle插件的示例。

<%@ 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>

以下是您可以在代码中动态添加图片的方法。

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 });
        }
    }
}

答案 1 :(得分:0)

伪代码:

//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

答案 2 :(得分:0)

如果您只想从网站上的文件夹中提取随机图片,可以执行以下操作:

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

但是,您确实提供了有关您要完成的内容的稀疏信息,例如图像的来源。这将是一个非常通用的解决方案。

答案 3 :(得分:0)

msdn的以下博客解释了有关Random()的所有基础知识 MSDN Microsoft Developer Network: Random()
关于它的基本原理是Random类从数组中选择一个随机数。这取决于滴答时间。 MSDN DateTime Ticks
刻度线基本上用于生成随机数。随机可以用作:假设我从数据库中提取数据。它将是
var db = Database.Open("databasename")
var image = db.Query("SELECT * FROM Images").ToList();
var randomImage = image[new Random().Next(image.Count)]

并显示它的数据。