ASP.NETプレミアムプログラミング基礎第2編-練習説明
23793 ワード
前言:これは私の第2編の高級プログラミングブログで、ここで私はいくつかの小さな例を実現して、その上中でいくつかの小さい技術を使って、つまり第1編の話す内容にいくつかの例をして、数値の自動的な増加.数値自己増加 (1)inputの自己成長を実現し,ボタンをクリックするとinputテキストボックスの値が自動的に増加する.実装:新しいIncValue 1.ashxファイルとIncValue 1.htmファイル、この2つのファイルにコードを書きます.
1)IncValue1.htm
2)IncValue1.ashx
(2)評価加算計算機の実現、実現:AddCalc 1を新設する.ashxファイルとAddCalc 1.htmファイル、この2つのファイルにコードを書きます
1) AddCalc1.htm
2) AddCalc1.ashx
(3)Divバージョンの自己成長、実現:新規IncValue 2.htmとIncValue 2.ashxファイル
1) IncValue2.htm
2) IncValue2.ashx
注記:非フォーム要素はクライアントの要素をサーバ側に渡すことができず、フォーム要素でもvalue値しか渡すことができず、背景色、サイズなどの他の属性値に対しても渡すことができないため、これらの値については非表示フィールドに存在しなければならない.これがaspである.NetにおけるviewStateの実現原理.
1)IncValue1.htm
1 <form action="IncValue1.ashx">
2
3 <input type="hidden" name="ispostback" value="true" />
4
5 <input type="text" name="number" value="@value" />
6
7 <input type="submit" value=" " />
8
9 </form>
2)IncValue1.ashx
1 context.Response.ContentType = "text/html";
2
3 string ispostback = context.Request["ispostback"];
4
5 string number = context.Request["number"]; // string
6
7 if (ispostback == "true") // ,
8
9 {
10
11 int i = Convert.ToInt32(number);
12
13 i++;
14
15 number = i.ToString();
16
17 }
18
19 else // 0
20
21 {
22
23 number = "0";
24
25 }
26
27 string fullpath = context.Server.MapPath("IncValue1.htm");
28
29 string content = System.IO.File.ReadAllText(fullpath);
30
31 content = content.Replace("@value", number);
32
33 context.Response.Write(content);
34
35 context.Response.ContentType = "text/html";
36
37 string ispostback = context.Request["ispostback"];
38
39 string number = context.Request["number"]; // string
40
41 if (ispostback == "true") // ,
42
43 {
44
45 int i = Convert.ToInt32(number);
46
47 i++;
48
49 number = i.ToString();
50
51 }
52
53 else // 0
54
55 {
56
57 number = "0";
58
59 }
60
61 string fullpath = context.Server.MapPath("IncValue1.htm");
62
63 string content = System.IO.File.ReadAllText(fullpath);
64
65 content = content.Replace("@value", number);
66
67 context.Response.Write(content);
(2)評価加算計算機の実現、実現:AddCalc 1を新設する.ashxファイルとAddCalc 1.htmファイル、この2つのファイルにコードを書きます
1) AddCalc1.htm
1 <form action="AddCalc1.ashx">
2
3 <input type="hidden" name="hidden" value="yes" />
4
5 <input type="text" name="num1" value="@num1" />+<input type="text" name="num2" value="@num2" />
6
7 <input type="submit" value="=" />
8
9 <input type="text" value="@result" readonly="readonly" />
10
11 </form>
2) AddCalc1.ashx
1 context.Response.ContentType = "text/html";
2
3 string hidden = context.Request["hidden"];
4
5 string result = "";
6
7 string num1 = "";
8
9 string num2 = "";
10
11 if (hidden == "yes")
12
13 {
14
15 num1 = context.Request["num1"];
16
17 num2 = context.Request["num2"];
18
19 result = (Convert.ToInt32(num1) + Convert.ToInt32(num2)).ToString();
20
21 }
22
23 string fullpath = context.Server.MapPath("AddCalc1.htm");
24
25 string content = System.IO.File.ReadAllText(fullpath);
26
27 content = content.Replace("@num1", num1);
28
29 content = content.Replace("@num2", num2);
30
31 content = content.Replace("@result", result);
32
33 context.Response.Write(content);
(3)Divバージョンの自己成長、実現:新規IncValue 2.htmとIncValue 2.ashxファイル
1) IncValue2.htm
1 <form action="IncValue2.ashx">
2
3 <input type="hidden" name="ispostback" value="true" />
4
5 <input type="hidden" name="num1" value="@value" />
6
7 <div>@value</div>
8
9 <input type="submit" value=" " />
10
11 </form>
2) IncValue2.ashx
1 context.Response.ContentType = "text/html";
2
3 string ispostback = context.Request["ispostback"];
4
5 // div , , ,
6
7 // , div innerText , ,
8
9 // div innerText , name input,textare,select value
10
11 string value = "0";
12
13 if (ispostback == "true")
14
15 {
16
17 value = context.Request["num1"];
18
19 int i = Convert.ToInt32(value);
20
21 i++;
22
23 value = i.ToString();
24
25 }
26
27 string fullpath = context.Server.MapPath("IncValue2.htm");
28
29 string content = System.IO.File.ReadAllText(fullpath);
30
31 content = content.Replace("@value", value);
32
33 context.Response.Write(content);
注記:非フォーム要素はクライアントの要素をサーバ側に渡すことができず、フォーム要素でもvalue値しか渡すことができず、背景色、サイズなどの他の属性値に対しても渡すことができないため、これらの値については非表示フィールドに存在しなければならない.これがaspである.NetにおけるviewStateの実現原理.