• 締切済み

ASP.NET 電卓計算

ASP.NET C#を使って電卓を作っています。 最終的にそれをDotNetNukeのモジュールとして作成する予定ですが、 現在、Web User Controlファイル(.ascx)を使ってWindowsにアクセサリとして入っているような電卓を作っています。 その場合、TextBoxは一つしかなく、足し算をする場合に、+ボタンを押したときにデータを保存して、=ボタンを押したときに、その直前に入力されたデータと+ボタンの時に保存したデータを足す作業を行いたいのですが、 どうやってデータを保存すればいいのか分かりません。 セッションを使えばいいのかなと考えていますが、 セッション自体の使い方もよく分かりません。 手順等を教えていただけるとありがたいと思います。 よろしくお願いします。

みんなの回答

回答No.1

お世話になります。 > セッションを使えばいいのかなと考えていますが、 > セッション自体の使い方もよく分かりません。 こちらの、 https://www.microsoft.com/japan/msdn/thisweek/wednesday/ ASP.NET の「ViewState の利用」で ViewState、 「ページ間におけるデータ受け渡し」で Session の扱い方の例があります。 あとはこういうのとか。 http://www.atmarkit.co.jp/fdotnet/aspnet/aspnet15/aspnet15_02.html MSDN も読みましょう。 http://msdn2.microsoft.com/ja-jp/library/system.web.httpcontext.session(vs.80).aspx

pooh_bear
質問者

お礼

すみません、自己解決してました。 ありがとうございました。

関連するQ&A

  • ASP.NET 動的に行を増やすTable

    ASP.NET(VB)アプリケーションでボタンが押される度に、 行を追加するTableを作りたいです。 初期表示時にPage_Initで5行のtableを作成するようにしています。 ボタンクリックイベントで行数を増やしていくのですが、 他のコントロール(asp.textbox)のテキストチェンジイベントでPostBackが発生すると、 元の5行に戻ってしまいます。 Page_Initで5行と指定しているためなので、 ここの指定数をPostBack前に保持した行数にすれば良いと思ったのですが、 もっと他にスマートな方法はありませんでしょうか? もし、保持する方法をとる場合は、セッションなどで保持するべきでしょうか?

  • asp.netでtextboxの値を取得

    ASP.net Webフォームで質問です(VS2012) ASP.netのTextBoxコントロールではなく、HTMLのtextboxの値を取得することは可能でしょうか。 また、textboxが複数あった場合でも、全てを取得したいのですが、 textboxがいくつあるか、その全てを取得するにはどのようにすれば良いでしょうか。

  • 電卓のディスプレイ部分に適したコントロールについて

    フォームアプリケーションで簡易電卓を作っています。 計算するための処理は理解できたのですが、 電卓のディスプレイ部分(??コントロール)に上手く表示させることが出来ません。 本物の電卓のように、フォーム上にある数字のボタンを押した瞬間に、その数字がディスプレイ部分のコントロールに右詰めで表示にしたいのですがどうしたらよいのでしょうか? 例えば、123 ( ひゃくにじゅうさん )を入力するとき、(1)ボタン、(2)ボタン、(3)ボタンを連続でクリックしますが、この時、ディスプレイ部分の右側に、 123 と表示させたいのですが、 実際、自分でチャレンジしたものは、 3 ※ ↑ 1と2が上書きされて、3だけが表示されたり、( label、textBox、richtetextBox使用時 ) 1 2 3 ※ ↑数字が改行され表示されてしまったりします。(listBox使用時) ディスプレイ部分をlistBox、textBox、richtextBox、labelにしてみましたが、どれも失敗しています。 それぞれのプロパティをいじってみたのですが駄目でした。 入力した数字がディスプレイ部分の右側に表示されるだけで、label、textBox、richtextBox、は上書きされ、listBoxは改行されたような表示になってしまいます。 もしかしてこれらはプロパティでの設定では不可能で、それ用のコードを記述する必要があるのかなとも思ったりしていますが、そのコードも検索できずにいるので質問させていただきました。 入力した数字が、上書きされたり改行されたりしないような、コントロールはあるのでしょうか? 知っている方是非アドバイスを頂きたいです。 どうぞよろしくお願いします。 ●使用環境は、以下の通りです。 visualC++ 2010 express .netframework フォームアプリケーション

  • ユーザーコントロール内の検証

    いつもお世話になっております。 環境:ASP.NET、C#、Web Label+TextBoxのような.ascxを作った場合、こっちのUserControlでは文字数制限、あっちのUserControlでは半角制限をするやり方を教えてください。

  • ASP.NETでWebユーザーコントロールを作成していますが、あるユー

    ASP.NETでWebユーザーコントロールを作成していますが、あるユーザーコントロールを拡張して別のユーザーコントロールを作成したいと思っています。 Webカスタムコントロールであれば、クラスの継承の概念を使って派生クラスを作成し、追加したいコントロールやフィールドを派生クラスで追加するのですが、ユーザーコントロールでこれと同じ事はできないものでしょうか? Visual Studio 2005環境ですが、Webカスタムコントロールはデザイナを使った開発ができず、わざわざDLLにコンパイルした後aspxページに埋め込んでやらないと見た目を確認できません。その点、ユーザーコントロールは通常のWindowsフォームアプリケーションのように、デザイナ上でコントロールをD&Dし、プロパティエディタでプロパティの設定もできます。 下記に試してみたコードを示します。 [WebUserControl1.ascx] <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="WebApplication1.WebUserControl1" %> <%@ Register Assembly="WebBaseFormLib" Namespace="WebBaseFormLib" TagPrefix="cc1" %> <asp:Button ID="Button1" runat="server" Text="Button1" /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> [WebUserControl1.ascx.cs] namespace WebApplication1 { public partial class WebUserControl1 : System.Web.UI.UserControl { protected void Page_Load(object sender, EventArgs e) { } } } [WebUserControl2.ascx] <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl2.ascx.cs" Inherits="WebApplication1.WebUserControl2" %> <%@ Reference Control="~/WebUserControl1.ascx" %> <asp:Button ID="Button2" runat="server" Text="Button2" /> [WebUserControl2.ascx.cs] namespace WebApplication1 { public partial class WebUserControl2 : WebUserControl1 //WebUserControl1を継承 { protected void Page_Load(object sender, EventArgs e) { } } } こうした場合に、WebUserControl2をaspxページで使用してもButton2しか表示されません。 期待する動きとしては、WebUserControl1に配置したButton1とtextbox1が透過的に表示して欲しかったのですが。

  • Microsoft Access2003から、IIS6.0(ASP)へ

    Microsoft Access2003から、IIS6.0(ASP)へ通信を行いデータをAccess2003の方へ取り込もうと 思っています。 簡単な手順や、サンプル等が乗っているサイトをご存じであれば教えてください。 セッション数も多い(Access側から)為、気をつけておこないといけないポイントもできたら 教えてください。

  • ASP.NET C#で

    ASP.NET C#で重複登録されないようにStreamReaderで読み込んで確認後重複がなければ StreamWriterで書き込むというプログラムを書いていたのですが、重複確認もcsvファイルへの書き込むもエラーが表示されて出来ませんでした。 sr.Close();の位置を変えても変わりませんでした。 エラー内容 ・System.ObjectDisposedException はユーザー コードによってハンドルされませんでした。 Message=閉じている TextReader から読み取ることはできません。 他にも、他のプロセスに使われているため・・・と言ったエラーも表示されます。 ソースコード protected void Button1_Click(object sender, EventArgs e) { string Searchid = TextBox1.Text;//商品コード //ファイルの存在を確認 if (!File.Exists(MapPath(".") + "\\Data\\product.csv")) { Label2.Text = "データ登録先が存在しません。管理者に連絡してください。"; return; } this.Label1.Text = string.Empty; //確認ここまで StreamReader sr = new StreamReader(MapPath(".") + "\\Data\\product.csv", true); while (sr.Peek() != -1) { string date = sr.ReadLine(); char[] delimiter = new char[] { ',' }; string[] item = date.Split(delimiter); string id = item[0]; sr.Close(); if (Searchid.Equals(id)) { Label1.Text = "既に存在する商品コードです。別の商品コードを指定してください。"; } else { Session["scode"] = TextBox1.Text;//商品コード Session["sname"] = TextBox2.Text;//商品名 Session["price"] = TextBox3.Text;//価格 StreamWriter sw = new StreamWriter(MapPath(".") + "\\Data\\product.csv", true, Encoding.GetEncoding("Shift_jis")); sw.WriteLine(TextBox1.Text + "," + TextBox2.Text + "," + TextBox3.Text);//商品コード+商品名+単価 sw.Close(); Label1.Text = "正常に登録出来ました。"; } } } どのようにしたら実行出来るのでしょうか? 教えて下されば幸いです。

  • ASP.Net FormView Editモードで

    お世話になります。 ASP.Net 初心者でございます。 もしかしたら初歩的な質問ではあるかもしれませんが、何卒お許し下さいませ。 現在編集中のFormView を編集モードにして表示させると TextBox にバインドされているデータが実データの後ろに空白で埋められている状態なのですが、なぜこのようになったのかがわかりません。 別のページのFormView での編集モードでは、実データだけが表示されていて、何も問題ないのですが、現在編集しているページのFormView のTextBox だけがこのような状態なのです。 データベースの 長さが 例えば String 10ケタで定義されている場合、 実データが ABC だとすると その後に空白が7ケタで埋められている状態なのです。 検索で ASP.Net FormView TextBox 空白で埋められる などで検索したのですが、該当する情報がないので、こちらで質問させていただきました。 どこかのプロパティを操作したなどは していないと思うのでうが、もし何かお気づきの点がございましたら、ご教授いただければと存じます。 何卒よろしくお願い申し上げます。

  • asp.net プログラムを入替え時セッションが切れる。

    asp.netを複数プログラムを1箇所のBINフォルダーに入れて運用しています。 その環境下のプログラムを1つでもbinの変更入替えした場合、ユーザーが使用していたセッション情報が無くなる現象がでています。だから、プログラムの入替えは誰も使っていない夜中にxcopyで入替えしていますが、使用中でもセッションが切れない方法を教えてください。 OS:wondows2000 activeデレクトリーは使わず運用しています。 素人ですみませんが教えてください。

  • ASPでSQL文を使う場合に。

    クラシックなASPを利用しております。 データベース(mdb)に、ユーザIDによってフィールドが分けられた部分があります。 そこをカウントさせたいです。その際のSQL文の書きかたがよくわかりません。 イメージとしては、以下のようなかんじです。      ユーザID:A ユーザID:B データID    1      1 データID    1      1 こんなかんじでデータベースに登録されていて、ユーザIDごとにデータが入力されている(1と入力されている)フィールドをカウントしたいのです。 ユーザIDは、ログインする際に取得されるもので、個人個人で変わります。Sessionを使用しています。 SQL文の中に引数という形でユーザIDが代入されれば解決するのですが、どうもうまくいきません。なんとか教えていただけないものでしょうか。

専門家に質問してみよう