动态添加按钮及关联方法(带参数)
先写了如下方法
1
protected
void
Page_Load(
object
sender, EventArgs e)
2
{
3
Button LB = new Button();
4
LB.Text = "测试";
5
//DIV1是页面上一个DIV
6
DIV1.Controls.Add(LB);
7
LB.Click += new EventHandler(Test);
8
}
9
protected
void
Test(
object
sender, EventArgs e)
10
{
11
Response.Write("<script>alert('This is a test');</script>");
12
}
13
但上面的方法没有传传递参数,只能调用一个方法,当然用极端方法可以把要传的参数赋给按钮的ID或什么属性的带过去,但不是最好的方法,于是又找到如下方法:

2



3

4

5

6

7

8

9

10



11

12

13

1
protected
void
Page_Load(
object
sender, EventArgs e)
2
{
3
Button LB = new Button();
4
LB.Text = "测试";
5
LB.CommandName = "1";
6
LB.CommandArgument = "5";
7
DIV1.Controls.Add(LB);
8
LB.Command += new CommandEventHandler(this.Test);
9
}
10
protected
void
Test(
object
sender, CommandEventArgs e)
11
{
12
Response.Write("<script>alert('"+e.CommandArgument+"|"+e.CommandName+"');</script>");
13
}
14

2



3

4

5

6

7

8

9

10

11



12

13

14

这样就可以通过按钮的CommandName 和CommandArgument 进行参数传递了。
问题:正在做一个ASP到ASP.NET的商城改版,原来的注册用户需要保留,原来的用户密码是ASP的MD5,32位加密,记得ASP的MD5与ASP.NET的MD5加密结果并不相等,于是试了下:
原来用的一个MD5加密方法:
























后来无意中发现有更简单的实现方法














用第二种方法输出"admin"的MD5加密结果为:
21232F297A57A5A743894A0E4A801FC3
与ASP MD5加密的16和32位加密结果比较:
16位加密(7a57a5a743894a0e)
32位加密(21232f297a57a5a743894a0e4a801fc3)
发现与32位加密结果相同,只是字母大小写不同,16位加密结果只是从32位加密结果中取了中间16个,于是:


























上面一个方法实现了在.NET里的ASP MD5加密结果。