0

次のコードは、完全に機能する ASP.NET 電卓です。ユーザーがブラウザを閉じても、入力したすべての計算の履歴を保持するにはどうすればよいですか? たとえば、ユーザーが 5+10 を入力した場合、プログラムを閉じて再度開いた後に 15 を表示する必要があります。

また、過去 10 分間のすべての計算の履歴を表示する方法はありますか?

<script runat="server">

sub getvalue0(s as Object, e as EventArgs)

txtinput.Text=txtinput.Text & btn0.Text

end sub



sub getvalue1(s as Object, e as EventArgs)

txtinput.Text=txtinput.Text & btn1.Text

end sub



sub getvalue2(s as Object, e as EventArgs)

txtinput.Text=txtinput.Text & btn2.Text

end sub



sub getvalue3(s as Object, e as EventArgs)

txtinput.Text=txtinput.Text & btn3.Text

end sub



sub getvalue4(s as Object, e as EventArgs)

txtinput.Text=txtinput.Text & btn4.Text

end sub



sub getvalue5(s as Object, e as EventArgs)

txtinput.Text=txtinput.Text & btn5.Text

end sub



sub getvalue6(s as Object, e as EventArgs)

txtinput.Text=txtinput.Text & btn6.Text

end sub



sub getvalue7(s as Object, e as EventArgs)

txtinput.Text=txtinput.Text & btn7.Text

end sub



sub getvalue8(s as Object, e as EventArgs)

txtinput.Text=txtinput.Text & btn8.Text

end sub



sub getvalue9(s as Object, e as EventArgs)

txtinput.Text=txtinput.Text & btn9.Text

end sub



sub check(s as Object, e as EventArgs)

val1.Text=txtinput.Text

txtinput.Text=""

end sub



sub sum(s as Object, E as EventArgs)

val2.Text=txtinput.Text

dim result=cInt(val1.Text)+cInt(val2.Text)

txtinput.Text=result

end sub



sub clear(s as Object, e as EventArgs)

txtinput.Text=""

val1.Text=""

val2.Text=""

end sub



</script>



<html>

<title> Basic Calculator</title>

<body>



<form id="Form1" runat="server">

<h1>Basic Calculator</h1>

<asp:TextBox id="txtinput" runat="server" />

<table style="background:#00ffff">

<tr>

<td><asp:Button id="btn0" Text="0" runat="server" OnClick="getvalue0" /></rd>

<td><asp:Button id="btn1" Text="1" runat="server" OnClick="getvalue1" /></rd>

<td><asp:Button id="btn2" Text="2" runat="server" OnClick="getvalue2"/></rd>



<td><asp:Button id="btnsum" Text="+" runat="server" OnClick="check"/></rd>

</tr>

<td><asp:Button id="btn3" Text="3" runat="server" OnClick="getvalue3" /></rd>

<td><asp:Button id="btn4" Text="4" runat="server" OnClick="getvalue4"/></rd>

<td><asp:Button id="btn5" Text="5" runat="server" OnClick="getvalue5"/></rd>



<td><asp:Button id="btnequal" Text="=" runat="server" OnClick="sum" /></rd>

</tr>

<td><asp:Button id="btn6" Text="6" runat="server" OnClick="getvalue6"/></rd>

<td><asp:Button id="btn7" Text="7" runat="server" OnClick="getvalue7"/></rd>

<td><asp:Button id="btn8" Text="8" runat="server" OnClick="getvalue8"/></rd>



<td><asp:Button id="btnclear" Text="Clear" runat="server" OnClick="clear"/></rd>

</tr>

<tr><td><asp:Button id="btn9" Text="9" runat="server" OnClick="getvalue9"/></td></tr>

</table>

<asp:Textbox id="val1" Visible="false" runat="server"/>

<asp:Textbox id="val2" visible="false" runat="server"/>



</form>

</body>

</html>
4

2 に答える 2

0

ブラウザを閉じた後もこれを保持したい場合は、データベースやファイルなどの場所にデータを保持する必要があります。

セッションに保存することもできますが、サイトの設定方法によっては、保存期間が保証されません (詳細については、さまざまな種類のセッション モードを参照してください)。

于 2013-02-14T03:23:39.597 に答える
0

SetText のような新しい関数を作成します。設定する値を使用して、他のすべてのイベント ハンドラーからこのメソッドを呼び出します。

sub setText(s as String)

  Dim myCookie As New HttpCookie("calculatorValue")
  myCookie.Value = s
  myCookie.Expires = DateTime.Now.AddMinutes(30)
  Response.Cookies.Add(myCookie)

  txtinput.Text= s

end sub

次に、ページの pageload イベントで。必要に応じてテキストボックスを設定できます

sub PageLoad()

    Dim cookie As HttpCookie = Request.Cookies.Get("calculatorValue")
    if (txtimput.Text == "" && cookie != null && cookie.Value != "")
    {
         txtinput.Text = cookie.Value;

         //Clear out cookie
    }

それは私がテストしなかったため100%ではないかもしれませんが、かなり近いはずです.

于 2013-02-14T03:38:08.883 に答える