ASP.NETプレミアムプログラミング基礎第2編-練習説明

23793 ワード

前言:これは私の第2編の高級プログラミングブログで、ここで私はいくつかの小さな例を実現して、その上中でいくつかの小さい技術を使って、つまり第1編の話す内容にいくつかの例をして、数値の自動的な増加.
  • 数値自己増加
  • (1)inputの自己成長を実現し,ボタンをクリックするとinputテキストボックスの値が自動的に増加する.実装:新しいIncValue 1.ashxファイルとIncValue 1.htmファイル、この2つのファイルにコードを書きます.
    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の実現原理.