.net学习札记---随机数,颜色控制,UpdatePanel
练习:
我要利用asp.net2.0 ajax实现这么一个东西:
1.无刷新的情况下,页面每间隔一秒钟显示当前时间;
2.每间隔半秒钟,将一个panel的背景颜色随机变换一次;
Okay,一个简单的sample,思路如下:
既然每间隔固定的时间需要进行一次操作,我联想到使用updatepanel,然后利用timer控件来控制时间
由于两个需求的不同时间间隔,我需要两个timer,如果放到一个updatepanel,肯定会出现异常,所以我建立了两个updatepanel
在两个中分别添加一个timer和lebel,在其中一个中添加了一个panel,并在timer中添加如下代码
protected void Timer1_Tick(object sender, EventArgs e)
{
Label1.Text = DateTime.Now .ToString ();
}
protected void Timer2_Tick(object sender, EventArgs e)
{
//j,k,m为随机颜色基数的接口
int j = 100;
int k = 209;
int m = 201;
//label用来显示j,k,m的数值
Label2.Text ="j:"+ j.ToString ()+" k:" + k.ToString () + " m:" + m.ToString ();
}
Okay,遇到第一个问题,我将两个timer的inerval设置为1000,500,分别放在不同的updatepanel里面,但我发现他们的更新频率总是0.5秒,并只是显示一个。
当我准备上msdn查查的时候,突然想起updatepanel在同一个页面触发机制的问题
所以我马上将两个updatepanel的updatemode设置为Conditional。Okay,F5一下,通过。
现在我需要两个东西,就是颜色的选取和随机。
颜色的选取,我参考了一下csdn的方案,添加了using System.Drawing;然后就利用内置的颜色函数来制作颜色,代码如下:
Panel1.BackColor = Color.Orange;
可以更改panel的背景颜色了,但是我需要动态的按照三色原理来实现随机颜色;
查了查资料,完成的解决方案是:
Panel1.BackColor = Color.FromArgb(((System.Byte)(100)),((System.Byte)(110)),((System.Byte)(120)));
这样,panel的背景颜色就可以利用三个数字来操纵。
现在,需要的就是随机数了,继续baidu一下,得到如下解决方案:
Random ran=new Random();
int j=ran.Next(100,255);
int k=ran.Next(100,255);
int m=ran.Next(100,255);
这样,就可以产生三个随机的int整数j , k ,m
Okay,这就是我所需要的,把这些东西与颜色函数整合
Panel1.BackColor = Color.FromArgb(((System.Byte)(j)),((System.Byte)(k)),((System.Byte)(m)));
把以前定义的临时接口删除,不要让j,k,m出现重定义。
Okay,F5,通过。
通过这个小例子,我学会了updatepanel简单的并行机制解决方法,timer的基本用法
以及随机数的产生和颜色的调用和产生。
------------------------------------------------
随后我又扩展了一下,我需要用一个button来操作其中一个timer,实行进行“暂停”和“继续”的两个反操作
代码如下:
protected void Button1_Click(object sender, EventArgs e)
{
if (Timer2.Enabled == false)
Timer2.Enabled = true;
else
Timer2.Enabled =false;
}
值得注意的是,button一定要放在panel里面,不然页面会出现刷新的情况,能实现这个效果,但会出现刷新了。
我要利用asp.net2.0 ajax实现这么一个东西:
1.无刷新的情况下,页面每间隔一秒钟显示当前时间;
2.每间隔半秒钟,将一个panel的背景颜色随机变换一次;
Okay,一个简单的sample,思路如下:
既然每间隔固定的时间需要进行一次操作,我联想到使用updatepanel,然后利用timer控件来控制时间
由于两个需求的不同时间间隔,我需要两个timer,如果放到一个updatepanel,肯定会出现异常,所以我建立了两个updatepanel
在两个中分别添加一个timer和lebel,在其中一个中添加了一个panel,并在timer中添加如下代码
protected void Timer1_Tick(object sender, EventArgs e)
{
Label1.Text = DateTime.Now .ToString ();
}
protected void Timer2_Tick(object sender, EventArgs e)
{
//j,k,m为随机颜色基数的接口
int j = 100;
int k = 209;
int m = 201;
//label用来显示j,k,m的数值
Label2.Text ="j:"+ j.ToString ()+" k:" + k.ToString () + " m:" + m.ToString ();
}
Okay,遇到第一个问题,我将两个timer的inerval设置为1000,500,分别放在不同的updatepanel里面,但我发现他们的更新频率总是0.5秒,并只是显示一个。
当我准备上msdn查查的时候,突然想起updatepanel在同一个页面触发机制的问题
所以我马上将两个updatepanel的updatemode设置为Conditional。Okay,F5一下,通过。
现在我需要两个东西,就是颜色的选取和随机。
颜色的选取,我参考了一下csdn的方案,添加了using System.Drawing;然后就利用内置的颜色函数来制作颜色,代码如下:
Panel1.BackColor = Color.Orange;
可以更改panel的背景颜色了,但是我需要动态的按照三色原理来实现随机颜色;
查了查资料,完成的解决方案是:
Panel1.BackColor = Color.FromArgb(((System.Byte)(100)),((System.Byte)(110)),((System.Byte)(120)));
这样,panel的背景颜色就可以利用三个数字来操纵。
现在,需要的就是随机数了,继续baidu一下,得到如下解决方案:
Random ran=new Random();
int j=ran.Next(100,255);
int k=ran.Next(100,255);
int m=ran.Next(100,255);
这样,就可以产生三个随机的int整数j , k ,m
Okay,这就是我所需要的,把这些东西与颜色函数整合
Panel1.BackColor = Color.FromArgb(((System.Byte)(j)),((System.Byte)(k)),((System.Byte)(m)));
把以前定义的临时接口删除,不要让j,k,m出现重定义。
Okay,F5,通过。
通过这个小例子,我学会了updatepanel简单的并行机制解决方法,timer的基本用法
以及随机数的产生和颜色的调用和产生。
------------------------------------------------
随后我又扩展了一下,我需要用一个button来操作其中一个timer,实行进行“暂停”和“继续”的两个反操作
代码如下:
protected void Button1_Click(object sender, EventArgs e)
{
if (Timer2.Enabled == false)
Timer2.Enabled = true;
else
Timer2.Enabled =false;
}
值得注意的是,button一定要放在panel里面,不然页面会出现刷新的情况,能实现这个效果,但会出现刷新了。
作者:灯火阑珊
出处:http://www.cnblogs.com/edidu/
关于作者:重庆IT老鸟一只
本文版权归作者所有,发布于博客园,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接
如有问题,可以通过