- PR -

処理を一度しか走らせないようにしたい

投稿者投稿内容
でっち6号
大ベテラン
会議室デビュー日: 2005/01/31
投稿数: 176
お住まい・勤務地: Kawasaki
投稿日時: 2005-11-10 19:38
こんにちは、でっちです。

最初の疑問はもう解決済み?
一応クライアントサイド処理で止める(2度目のクリックでポストバックしないようにする)方法を書いておきます。

コード:
1.こんなスクリプトブロックを用意しておいて、
<script language=javascript>
<!--
var flg = false;
function check(){
    if (flg) return false;
    flg = true;
}
//-->
</script>

2.Page_Loadで
Button1.Attributes.Add("onclick","return check();");
としてあげます。


クライアントサイドで握りつぶす方法なので、お望みのものではないかもしれませんが...
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2005-11-10 20:01
一応、参考までに…。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=24126&forum=7
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2005-11-10 23:28
引用:

じゃんぬねっとさんの書き込み (2005-11-10 19:03) より:

「static 変数」と CShaper な人に言うと誤解を招きます。
C# の static (静的) 変数は、VB でいうところの Shared (共有メンバ) 変数になります。

VB でいうところの Static なローカル変数は、C# にはありません。


ご指摘ありがとうございました。
あや☆
常連さん
会議室デビュー日: 2005/07/28
投稿数: 36
投稿日時: 2005-11-11 09:50
返信ありがとうございました。

でっち6号さんのソースを使わせていただいて、実現できました!
ありがとうございます!!
最初の質問は解決です。

後に、質問したstaticについての返信お待ちしています。
よろしくお願いいたします。

[ メッセージ編集済み 編集者: あや☆ 編集日時 2005-11-11 09:52 ]
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2005-11-11 10:06
引用:

Jittaさんにの返信によると、staticで宣言された変数というのは、
Webアプリを実行してきた人、みんなが共有してしまうということですか?


そうですね。みんなが共有してしまいます。
それぞれのリクエストが別のアプリケーション(別のプロセス、別のアプリケーションドメイン)というわけではないので、static なデータは共有してしまうという事です。
気を付けないと嵌ってしまいます。意図して使う時ももちろんありますが。
あや☆
常連さん
会議室デビュー日: 2005/07/28
投稿数: 36
投稿日時: 2005-11-11 13:25
囚人さん、返信ありがとうございました。

やはりstaticはWEBアプリだとそのような動作をするのですね。
間違った認識をしていました。危ないところでした。。。
大変ありがとうございました!!!

スキルアップ/キャリアアップ(JOB@IT)