Jag her en web controll som jag tänkt använda flera ggr på samma sida. Den ska fram ett random tal, vilket den också gör, men random talet blir det samma för varje gång jag använder controllern på samma sida. Hur fixar jag till det? byt ut följande rad: Tyvärr så hjälpte det inte, var några syntaxfel här och där men de var snabbt fixade. Det tog stopp vid att den inte gillade att köra && mellan en long och int32, det kunde jag inte lösa. Löste det hela genom att skicka med en random variabel till controllern. Det har sina nakdelar med att man bara kan ha 4 st olika controller men fler än så behöver inte jag. Om någon har en bättre kod/förslag så blir jag ändå glad. Byt utRandom i web controllern?
<code>
<script language="C#" runat="server">
void Page_Load(Object Src, EventArgs e)
{
Random myRandom = new Random();
lblText.Text = myRandom.Next(10000).ToString();
}
</script>
<asp:label ID="lblText" runat="server"/>
</code>Sv: Random i web controllern?
Random myRandom = new Random();
mot följande kod:
Int32 iT
try
{
iT = (Int32)Session.Item("iT");
iT = iT_XOR_(Int32)(System.DateTime.Now.Ticks&&System.Int32.MaxValue);
}
catch()
{
iT = (Int32)(System.DateTime.Now.Ticks&&System.Int32.MaxValue);
}
Random myRandom = new Random(iT);
Session.Item("iT")=myRandom.Next();
Vad den här koden gör är att först försöka få tag på det gamla slumptalet. Sedan köra xor på det med aktuell tid. Om nå't går fel (talet fanns inte sen tidigare) så blir talet den aktuella tiden helt enkelt. Sedan initsieras slumtalsgeneratorn med det talet. Till sist sparas "basen" för nästa kontrolls slumpande i sessionen... Dvs. initsieringsvärdet skall alltid vara olika...
Det borde fungera hoppas jag... :)Sv: Random i web controllern?
Tykte om din idé om att spara det gammla talet i en session, försöker nu att spåra vidare på det så länge.Sv: Random i web controllern?
<code>
public int random = 0;
void Page_Load(Object Src, EventArgs e)
{
Random myRandom = new Random();
if (random == 0)
lblText.Text = myRandom.Next(10000).ToString();
else
myRandom.Next(10000);
if (random == 1)
lblText.Text = myRandom.Next(10000).ToString();
else
myRandom.Next(10000);
if (random == 2)
lblText.Text = myRandom.Next(10000).ToString();
else
myRandom.Next(10000);
if (random == 3)
lblText.Text = myRandom.Next(10000).ToString();
else
myRandom.Next(10000);
}
</code>Sv: Random i web controllern?
(Int32)(System.DateTime.Now.Ticks&&System.Int32.MaxValue);
mot
(Int32)(((Int32)(System.DateTime.Now.Ticks))&&System.Int32.MaxValue);
och testa