質問

ASP.NET/C#Webサイトで作業しています。

データベースからデータを読み取り、辞書に保存しています ジェネラコディセタグプレ

次にそれをASP.NETチャートにバインドします ジェネラコディセタグプレ

ボタンをクリックしたときにポイントのラベルを変更したい。 ジェネラコディセタグプレ

しかし、ボタンをクリックするとポストバックが発生し、「結果」辞書に保存されているデータとグラフが失われるという問題があります。

データベースから再度読み取ることなく、ポストバックが発生したときにデータを失わないようにする方法はありますか?

助けてくれてありがとう。

役に立ちましたか?

解決

はい ViewState を使用してポストバック間でデータを保持します。 ジェネラコディセタグプレ

注: ビューステートのNull値を確認してください。そうでない場合は、例外またはエラーがスローされます

他のヒント

データをViewStateまたはSessionに入れて、「反対側」でデータを引き出すことができます。

ViewStateを使用してこのデータをクライアントとの間でやり取りするよりも優れた解決策は、それぞれがやり取りされるクライアントIDを作成し、このIDでキー設定されたこのデータのキャッシュをサーバー側に保持することです。 。そうすれば、このデータを毎回クライアントからサーバーに送信する必要はなく、その逆のみです。

これは私にはまだ間違っているように聞こえますが、データのやり取りのために非常に多くのオーバーヘッドが発生する他のいくつかの回答よりも優れたソリューションです。

実際、あなたは表示情報を変更しているだけであり、あなたの質問から、あなたが実際にこのデータを処理しているとは思わないので、これは本当にある種のjavascriptの仕事のようですASP.NETページと一緒に。私はこれを行ったことがありませんが、いくつかの基本的なグーグルがいくつかの< ahref="http://dotnetslackers.com/articles/aspnet/JavaScript_with_ASP_NET_2_0_Pages_Part1.aspx" rel="nofollow">これに関する記事。

ViewStateを使用する代わりに、辞書に値を割り当てるためのコードを関数に移動してから、ポストバックごとにpage_loadからその関数を呼び出してはどうでしょうか。このようにして、チャートからデータを失うことはありません。

私はよくasp:HiddenFieldを使用して、クライアント側に少量の安全でないデータを保存します。

Page_Load()関数では、非表示フィールドの値を設定し、後で呼び出される関数でそれを読み戻すことができます。

クライアントユーザーは必要に応じてソースの表示を実行してページ内のデータを表示できるため、これを安全なデータに使用しないでください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top