我想从随机选取的背景图像(从4个图像中选择)出现为asp.net面板的背景图像。DIV上的随机背景图像
我遇到的问题是,在调试模式下单步执行代码时,代码的工作原理为。一旦您在网站上运行代码而不进行调试,所有图像都是相同的。它几乎就像随机数没有得到足够快的拾取。
usercontrol位于数据列表的内部。
的用户控件是这样的:
<asp:Panel ID="productPanel" CssClass="ProductItem" runat="server">
<div class="title" visible="false">
<asp:HyperLink ID="hlProduct" runat="server" />
</div>
<div class="picture">
<asp:HyperLink ID="hlImageLink" runat="server" />
</div>
<div class="description" visible="false">
<asp:Literal runat="server" ID="lShortDescription"></asp:Literal>
</div>
<div class="addInfo" visible="false">
<div class="prices">
<asp:Label ID="lblOldPrice" runat="server" CssClass="oldproductPrice" />
<br />
<asp:Label ID="lblPrice" runat="server" CssClass="productPrice" /></div>
<div class="buttons">
<asp:Button runat="server" ID="btnProductDetails" OnCommand="btnProductDetails_Click"
Text="Details" ValidationGroup="ProductDetails" CommandArgument='<%# Eval("ProductID") %>'
SkinID="ProductGridProductDetailButton" /><br />
<asp:Button runat="server" ID="btnAddToCart" OnCommand="btnAddToCart_Click" Text="Add to cart"
ValidationGroup="ProductDetails" CommandArgument='<%# Eval("ProductID") %>' SkinID="ProductGridAddToCartButton" />
</div>
</div>
和背后的代码是这样的:
protected void Page_Load(object sender, EventArgs e)
{
// Some code here to generate a random number between 0 & 3
System.Random RandNum = new System.Random();
int myInt = RandNum.Next(4);
if (productPanel.BackImageUrl != null)
{
switch (myInt)
{
case 0:
productPanel.BackImageUrl = "../App_Themes/emmaharris/images/frame1.gif";
break;
case 1:
productPanel.BackImageUrl = "../App_Themes/emmaharris/images/frame2.gif";
break;
case 2:
productPanel.BackImageUrl = "../App_Themes/emmaharris/images/frame3.gif";
break;
case 3:
productPanel.BackImageUrl = "../App_Themes/emmaharris/images/frame4.gif";
break;
}
}
// End of new code to switch background images
}
牛逼
我认为你的东西!页面引号“如果你使用相同的种子值两次,你会得到相同的随机数序列,随机使用当前时间作为种子。上面的代码创建了几个非常快速的连续实例,”当前时间“往往具有至少10ms的粒度,因此许多实例将共享相同的种子,从而创建相同的数字序列。“ 我相信代码正在执行,快速获得与其他面板相同的时间码“种子”,因此相同的图像。我需要一个更强大的随机方法。 – 2009-10-12 20:54:11
@Ian - 看看Jon的MiscUtility类有一个“Robust”随机生成器。 (链接在帖子中)。我也编辑过这个帖子来包含他的代码。 – 2009-10-12 21:28:42
@metro smurf,使用错误代码解决了问题。感谢大家的帮助。 – 2009-10-12 21:47:38