【質問】ASP.NETスレ ..
307:nobodyさん
09/05/18 18:33:02
.NETっでviewState OFF設定にしても、実行したら勝手にviewStateが入ってるんだけどなんでなんだろう?
308: [―{}@{}@{}-] nobodyさん
09/05/18 18:35:32
>>307
イベント識別するのにもViewState使ってたと思うからその分じゃね
309:nobodyさん
09/05/19 01:35:59
でも.NETでできてるサイトで、ソース(htmlの)みてもviewStateが一切無いページとかあるんだよね。
つまり.NETのコントロール一切使わなければ出ないって事かな?
それだと.NET使う意味ねーな・・・
310:nobodyさん
09/05/19 01:54:25
例えばどこ?
311:nobodyさん
09/05/19 01:55:28
ああそうだMVCならでないかもね
312:nobodyさん
09/05/19 21:35:47
なんか、viewstate="false"ってやってても
<asp:CheckBox id="CheckBox1" runat="server" />
がたくさんあると、viewstateがえらいことになる・・・・
なんとかしてOFFにしたいもんだ
313:nobodyさん
09/05/19 22:02:16
実際に20個設置してみたけど、これがえらいこと??
PostBack前の状態を維持する仕組みをhiddenフィールドで
ベタに構築することを考えたら遙かにサイズは小さいと思うし、
セキュリティ的にも安心できるし、
十分に利便性はあると思うけど
それを考慮してもViewStateが嫌ならASP.NETを使わないか
旧ASPとして利用するしかないね
314:nobodyさん
09/05/19 23:02:51
enableviewstate=falseの意味ねーじゃん
ばか?
315:nobodyさん
09/05/19 23:11:27
20個設置してたら2kぐらいの文字列にならん?
316:nobodyさん
09/05/20 00:04:28
<form runat="server">を使わなければviewstate撲滅できるよ
使えるコントロールが限られるけど
317:nobodyさん
09/05/20 00:25:56
>>314
falseに設定したものはviewstate反映されてないだろ?
318:nobodyさん
09/05/20 01:07:46
>>317
試してから言えよ
319:nobodyさん
09/05/20 13:35:47
>>318
falseにしたコントロールやページに関してはViewStateに反映されないよ
ただASP.NETとして必要なぶんが反映されてるだけ
320:nobodyさん
09/05/20 14:49:36
んだな
>ASP.NET によって使用されるページには、ポストバックを検出することを目的として、
>EnableViewState が false の場合でも読み込まれる非表示のビューステート フィールドが存在する場合があります。
ちゃんとMSDNにも書いてある。つまりASP.NETの仕様。
phpでも、ページからのpostであることを示すために、
hidden fieldで<input type="hidden" name="mode" value="postback">とかして、
$mode = $_POST["mode"];で受け取ってpostbackが入っていたらpostされたと認識して
初期処理したりするけど、それをViewStateを利用して実現してる。
これすら嫌ならもはやwebアプリは向いてないから止めたほうがいいと思う。
それかすべてsessionでやる。
モバイルASP.NETはこのViewStateの仕組みを一部のコントロールを除いて
ViewStateでなくてsessionでやってるよ。
321:nobodyさん
09/05/20 15:52:47
ViewStateだとドロップダウンリストの選択位置とか覚えておいてくれるから便利。
PHPとかで実装しようとすると大変だろうな
322:nobodyさん
09/05/20 16:52:27
基地外ばっかり
323:nobodyさん
09/05/20 17:51:12
>>321
大変ではないけどめんどくさいだけ
便利なのには違いない
つうか、必要でないViewStateだけ残して切ればいいじゃん
それすら嫌とか言うなら論外だろ
何かデータを保持るためのInputとかを別の形で実装してるようなもんじゃないか
324:nobodyさん
09/05/20 18:01:54
ViewState切り詰め話はTechNet辺りでもよく出てるが、
大した問題にならないから無視しろか、
サーバーコントロールは極力使わなずResponse.writeしろの、
大体この二つに分かれてる感じだな。
一時期俺も削減に躍起になってたけど、そもそもASP.NETって時点で…
と気づいてからは余りこだわらなくなったな。
325:nobodyさん
09/05/20 21:21:01
10KBのViewStateには超文句言うのに平気で数十KBの画像おきまくったりするページワロス
326:nobodyさん
09/05/21 00:42:51
画像は受信拒否できるしなぁ
ViewStateは問答無用だろ。。
327:nobodyさん
09/05/21 00:45:50
制作者からの視点で論じてたんじゃないのか?
328:nobodyさん
09/05/21 01:36:07 /8BtlCky
ViewStateこつこつ削ってどれだけ結果に違いが出るんだよ。ほぼ意味ねーだろ。こういう所に拘るPGはマジ使えねぇ。
329:nobodyさん
09/05/21 02:38:51
携帯みたいな従量課金の場合には影響があるので
気になるプログラマはいると思う
んで、ユーザ数が多いと、そういうコツコツが大事だったりするので、
なんでViewStateを完全に無くすことができないかを知りたいと思う好奇心は
プログラマに必要な資質だと思う
だけど、ViewStateの動作を詳しく把握してもいないのに
ViewStateの存在を制御できないから気持ち悪いとか、
こんなにViewStateがたくさん埋め込まれるのは理解できない
みたいなこと言ってるプログラマがいたら確かに使えない奴だと思う
330:nobodyさん
09/05/21 04:14:36
>携帯みたいな従量課金の場合には影響があるので
>気になるプログラマはいると思う
普通自動でセッションに保存されるでしょ
331:nobodyさん
09/05/21 07:40:13
例えばGoogleの検索結果なんかはそのままブックマークできるけど、
そういうのやろうとすると邪魔じゃね?viewstate。
332:nobodyさん
09/05/21 08:20:41
意味がわからん。
ViewStateに対して間違った期待をしてないか。
333:nobodyさん
09/05/21 13:12:01
ブックマークさせたいならGETだけでアクセス出来るようにしとくだけ。
ポストバックの結果をブックマークしたいなんてことしなければ。
334:nobodyさん
09/05/21 14:32:49
当たり前のことだがASP.NET使ってるんだからそれに見合う環境は用意するべきだろ
335:nobodyさん
09/05/21 14:46:42
みなさんSeasar.NETやEntlibなどのフレームワークは利用されていますか?
参考までにそのメリット・デメリットなどご意見いただけないでしょうか。
336:nobodyさん
09/05/21 14:59:13
ENTLIB大袈裟
S2.NET合わない
337:335
09/05/21 15:29:27
>>336
そうですか。
紹介している記事もちらほら見かけるし、一見便利そうだったんで
使うのが一般的なのかとおもったのですが、そうでもないんですかね。
338:nobodyさん
09/05/21 15:47:46
今何もないなら試してみるのもいいとは思うよ。
俺は使う気はないがもちろん使えることもあるだろう。
339:nobodyさん
09/05/21 15:49:01
覚えれば便利そうだねぇ
.NETに取り入れてられればいいんだけど
標準でないものを使うのは気が引ける
といいつつJQuery使ってるけどw
340:335
09/05/21 17:29:21
今の仕事はClassicASPがほとんどなんです。
その片手間で.NET学習しながら次の案件を・・・とは考えているのですが、
なかなか時代の進歩に学習が追い付かなくて悩んでたんです。
ご意見ありがとうございました。参考にいたします。
341:nobodyさん
09/05/21 18:47:50
念のために書いておくと、
ASPの片手間でASP.NETは無謀。
342:nobodyさん
09/05/21 20:31:49
>>333
Googleの検索、トップページじゃなくて検索後のページで考えれば、
動作的にはポストバックでしょ(getだけど)。
その結果をブックマークしたい、って話よ。
343:nobodyさん
09/05/21 20:56:33
>>342
何を言ってるんだ、お前は
344:nobodyさん
09/05/21 21:10:26
>>343
例えばTextBoxのサーバコントロールを設置して、
「送信」ボタンをクリックすると、自動的にPOSTでポストバックされるということを
言いたいんじゃないかと想像
345:nobodyさん
09/05/21 21:38:57
よくわからんが<form>をmethod="get"にするだけで、
ViewStateからなにやらクエリパラメータになるんだね
長いViewStateだと死にそうだけど
普通にクエリパラメータを作成して、Response.Redirectして
受け取り側では、Page.Request.QueryStringでGET内容を取得して
処理すれば手間(といってもphpとかなら当たり前の作業)だけど実現できそうだ
つーか、phpでは当たり前の実装が手間に感じるほど
PostBackは便利すぎってことだよね・・
この辺をうまく実装してくれるような仕組みってASP.NETにあったっけ?
346:nobodyさん
09/05/21 21:59:07
だからそういう香具師はASP.NET MVCを使えと (ry
347:nobodyさん
09/05/21 22:55:04
MVCの利点がイマイチよくわかんないのよね
348:nobodyさん
09/05/21 23:14:05
ポストバックとかViewStateとかASP.NET特有の概念が嫌いで
古き良きWeb開発をしたい人にはとても良い。
しかしまあ、Webアプリ開発初心者には普通のASP.NETのが簡単だろうな。
Java人なんかにはMVCはグッとくるかもな。
349:nobodyさん
09/05/21 23:17:16
>>342
クエリに検索キーがついたURLの文字列をブックマーク(記録)するだけで
ポストバックとかは関係無いと思うが。。
350:nobodyさん
09/05/23 08:52:49
だから、ブックマークする為に
ブラウザのアドレス欄に「検索キーがついたURLの文字列」が現れて欲しい訳だけど、
form runat="server" method="post"
内のサーバコントロールに(ユーザーが)検索キーを入力した場合、
クエリ文字列は現れてくれない(URLは変化しない)し、
method="get"
にすれば現れるけど、もれなくviewstateもついてくるから邪魔。
っていう話。
>>344でだいたい合ってる。
351:nobodyさん
09/05/23 09:36:30
まあそこは自前でやるなりするしかないでしょ。
ってのが最初から言われてることでしょ。
352:nobodyさん
09/05/23 09:43:31
単純な設定変更とか、そういうレベルではできないね。
何にしても便利なやり方にはトレードオフはあるわな。
ASP.NET MVCみたいの使うとか(詳しく知らんからどんな感じにできるのか分からんけど)、
こういう用途の時だけは、ポストバックされた情報をもとに
クエリやパスに直してリダイレクトして結果表示ってのが簡単かな。
>>345みたいな方法だね。
353:nobodyさん
09/05/23 13:26:19
そもそも論でポストバック結果をブックマークしたいってのはどういう状況?
354:nobodyさん
09/05/23 13:27:16
>>352
よく考えたらNameValueCollentionをメンバに持つクラスを作って、
それにAddされて内容に従って、name=value&name1=value1みたいな出力をさせて、
URL作るだけだから、そんなに面倒じゃないね
受け取り側もHttpUtility.ParseQueryStringでやれば、
URLを自動的にNameValueCollectionに入れてくれる
ひょっとしたら、もっと便利なutilityクラスがあるかもしれないけど。
355:nobodyさん
09/05/23 13:29:36
>>353
検索結果を表示させる一覧ページとかじゃない?
例えば業務なら担当が自分のページだけをブックマークしておいて、すぐに表示したいとか
356:nobodyさん
09/05/23 13:46:59 0dm/bxqY
そこそこの規模の運用でサイト分けってどうされていますか?
現在、IIS上、1つのWebアプリの中に10個程フォルダ分けして運用していますが、
これら全てをチェックアウトしてくると、1ビルドに軽く10分程かかります。
したがって、毎回開発に必要な分を取捨選択して落としてきています。
以前、別の会社が作成したサイトを見せてもらった時は、
そもそもサイトはIIS上全て別Webアプリとして管理されていました。
しかし、そのためにApp_Code配下の共有ライブラリは
それぞれのサイトごとに保持するという形を取られていました。
通常、あるべき管理体系を考えると前者はあり得ないんでしょうが、
後者の冗長管理もどうなんだと、いう感じです。
357:nobodyさん
09/05/23 16:56:23
>>355
そういう用途ならサーバ側に用意するのが普通では?
業務に関係無く、要は個人用にカスタマイズしたページだよな。。
検索結果だって毎回同じキーワードで検索する意味不明。
>>356
開発元(マイクロソフト)が発行している開発技術大全だかに
詳しく解説されてるよ。ASP.NETの応用編だったかな。
発行年月は古いが基本的なことが書かれていてためになる。
ViewStateなんかも巷の初心者向けには書かれてないことがあったりするからおすすめ。
358:nobodyさん
09/05/23 17:02:05
>>357
いや、だからgetで指定されてると便利な場合だよ
googlemapのような緯度経度で指定してリンクを張りたいとか、
特定の商品のカテゴリ一覧だけを表示させたいとか。
一つのページ内で完結しているんでなく、
外部からのリンクを許可するような場合。
359:nobodyさん
09/05/23 17:41:00
>>357
そのサーバ側の用意として、getで指定するページを作るわけだが
まあ、厳密にはポストバックされているページではないがな
360:nobodyさん
09/05/23 17:44:57
>>356
運用って何を指しているんだ?
チェックアウトやビルドは通常開発段階での話だが、
開発方法をして運用っていってるのか?
あるべき管理体制ってのは、何の管理をする体制のこと?
ソースの管理か?
361:nobodyさん
09/05/23 18:55:09
>>360
エスパーすると、共有のライブラリをプロジェクト(Webサイト)ごとに
管理しないといけないから面倒ってことでしょ
それでも1サイトを1プロジェクトにして参照設定して、
発行すればライブラリも発行されるからそれの何が不便なのかよくわからないけど。
同じサーバに同じDLLが複数存在することを気持ち悪いと思うのなら
感覚としては理解できるけど、逆に、そのサイトがアクセス数が増大してしまって、
個別のサーバに移植したいという需要が発生した時には、
何も考えることなくそのWebサイトだけを他に移動させればいいんで、
その点では利便性は増してると思うけど。
362:nobodyさん
09/05/24 08:23:28
>>350
HttpRequest.QueryString()を使えばいいだけのような気がするのだが。
別にPostBackだけが唯一のパラメータ取得の方法じゃないし。
363:nobodyさん
09/05/24 16:17:44
お前ホントに頭悪いな
364:nobodyさん
09/05/25 16:11:35
というかさ、ViewStateが「強制」なのが気持ち悪いのであって
アクセス数が多かったり、携帯だったりだと少しでも無駄は省きたいわけだ。
無駄にステートを保存してもらわなくていいし。
なんでページで「OFF」と指定しているのに組み込まれるのか。
というと、ASP.NETつかうなだとかいうやつがでてくるだろうけど、
これはMSも設計ミスと認めてるわけで、次.NETでは完全にOFFになるようだ。
結論からいうと3.5までではあきらめろ。
365:nobodyさん
09/05/25 16:12:47
※ただしイケメンに限る
366:nobodyさん
09/05/25 17:05:50
ViewState無しで、POSTされた後であるかどうかをどうやって判断するんだろうな
改ざん無しで
367:nobodyさん
09/05/25 17:07:56
携帯はモバイルASP.NET使わないほうが悪い
368:sage
09/05/25 17:44:02
キーが「日付」「SEQ」のテーブルがあって、それを表示させるウェップページを考えています。
表示させる際に、日付でグループ化したいんですが
--------
yyyy/mm/01
・01 xxxxxxx
・02 xxxxxxx
yyyy/mm/02
・01 yyyyyyy
・02 ccccccc
--------
みたいな感じで。
.NET2.0だと、Repeaterの入れ子で実現するしかないでしょうか?.NET3.5だとListViewで
お手軽に実現出来そうなんですが。
369:nobodyさん
09/05/25 18:06:49
テーブル構造がよく分からないが、
SQLテーブルに日付テーブルの日付をinner joinして
日付テーブルID、SEQテーブルID、日付、項目というテーブルを取得して、
日付でソートし、日付が異なるたびに実行時バインドで<tr><td>yyyy/MM/dd</td></tr>
という行を表示してやればrepeaterを入れ子にしなくてもいいんでね?
370:nobodyさん
09/05/25 18:10:14
>>368
最終的にどんなHTMLにしたいか考えたら結構簡単だと思うんだけど・・・
どんな方法だって実現できると思うけど?
あれだけど、極端な話テーブル使う方法もあるだろうし
371:nobodyさん
09/05/25 20:34:29
日付、SEQでソートして、日付が変わったときだけ日付を表示すればいいんだろ
入れ子にする必要なんてないだろ
日付の部分だけ実行時バインドで、表示するかどうか判定するロジック組めばいいんじゃね
372:nobodyさん
09/05/25 22:49:35
>次.NETでは完全にOFFになるようだ。
詳しく
373:nobodyさん
09/05/26 00:59:11 /YYr/a48
>>372
ASP.NET 4.0でMVC Framework標準装備って話でしょ。
ただ、MVC採用が現行の切り捨てに直結はしないと思うが。
374:nobodyさん
09/05/26 12:50:31
そういう意味なの?
どう考えても置き換わるもんじゃないのに。
375:nobodyさん
09/05/26 14:00:24
コードビハインドがなくなったら、
いままでのサーバコントロールとか一式駄目になるな
376:nobodyさん
09/05/26 14:12:00
うーむMVCも触ってみようかな
377:nobodyさん
09/05/26 20:37:00
MVCやってみた
実行時バインドを多様してhtmlとコードを分離してるってだけみたいな感じだね
M→Linq To SQLやLink To Entityなどデータベースからデータを取得する
V→htmlと実行時バインド
C→実行時バインドの結果だけを作るクラス
こんな感じ?
むかし普通のASPの頃、デザインとコードを分離したくて、
1)デザイナの作成したhtmlの任意の場所に##Result##みたいなマーカーを設置する
2)ASPで出力するhtmlを作成する
3)ASPでFSOで1)を読み込んで、##Result##の文字を2)で作成したhtmlで置換する
なんてことをやってたけど、これをシステム化した感じだ
コードとデザインを別の意味で分離できるからこれはこれで便利なんだろう
ただ動的に生成されるタグは少なからず存在するので
JavaScriptの問題はやっぱり解決はできなさそうだ。
378:nobodyさん
09/05/27 10:49:08
VWD 2005 Express Editionを使っています。
データベースのテーブル作成で、
列名'ID' を IDENTITYの指定で(Is Identity)>「はい」を選択し
・IDENTITYインクリメント=1
・IDENTITYシード=1
とした場合、
「テーブルデータの表示」を開くと、自動的に初期値ID=1が表示され、
1レコードを入力完了すると、自動的にID=1が表示される。
となるのではと思うのですが、
'ID' の欄が「セルは読み取り専用です。」と(タスクバーに)表示され手入力不可。
これはよいのですが、データがNULLのままです。
どうすれば自動的にIDが入力されるようになるのでしょうか?
379:anon
09/05/27 11:44:02
>>368
まともな回答が付いてないようなので。
repeaterをネストさせるのが一番簡単だと思うよ。
DataSetとしては、日付をDistinctしたものと、テーブルをそのまま取得し
たものの2つを用意して、2つの間でリレーションを設定。本文を格納した
DataSetに対してはDataViewを設定。
これで階層構造で表示させられる。
380:nobodyさん
09/05/27 12:18:04
>>379
>まともな回答が付いてないようなので。
>>369,371は無視か?
それともまともじゃないというのか?
Repeaterのネストは本人も方法として言ってる
簡単かどうかは考え方によるだろうが
データセットにリレーション張ってRepeaterネストさせるぐらいなら、
日付ブレークの判定いれる方が簡単だと思うがな
381:nobodyさん
09/05/27 12:58:36
VWD 2005 Express Editionを使ってます。
GridViewに編集ボタンを付けて実行し
編集ボタンをクリックすると、下記のエラーメッセージが出ます。
「使用されている SQL Server のバージョンでは、データ型 'date' がサポートされていません。」
スタック トレースを見ても意味が分かりません。
何処を直せば、あるいはパッチの追加インストールとか必要なのでしょうか?
382:nobodyさん
09/05/27 13:04:36
どういうデータをどうバインドしてんだよ、こんちくしょうが。
383:nobodyさん
09/05/27 13:07:41
>>378
設定してすぐにテーブルを開くと表示されてるのは、
全部のフィールドがNULLになってると思うけど、
これは新規に行を追加するところだから
何かしらを入力(ID以外のデータ)してenterキーを押して決定すると
新しい行がデータベースに追加され、IDが表示される
384:nobodyさん
09/05/27 13:09:52
>>381
わかんないけど、日付を表示させようとすると、
そういうエラーが発生するんだよ
ソースを表示するとGridView内にタグにdbtype="date"みたいな
表示がかかれてるところがあるから、そのdateをdatetimeにすると
正常に表示される。
編集や削除を許可してるなら、その数のぶんだけあるから
複数修正すること
385:nobodyさん
09/05/27 13:33:53
>>384
できました!なじゃこりゃw
ありがとうございます!バグなんですかねこれって?
386:nobodyさん
09/05/27 13:40:46
DB側の仕様が変わったのについてこれないんだろうぁ
387:nobodyさん
09/05/27 14:08:08
>>385
IME ga kowareta ze ww
tabunn kono fix program jya ne?
install shitara kekka houkoku plz
URLリンク(connect.microsoft.com)
388:nobodyさん
09/05/27 21:23:09
あなるせっくすしたい
389:nobodyさん
09/05/28 17:38:31
すみません。あちこちググってもわかりませんでした。天才様、お願いします。
asp.net(1.1)webサイトAがあります。
これは現在順調に動いています。
アプリケーションルートはwwwrootにあります。
ところが、このサイトを携帯サイトにも対応させようということになり
wwwroot直下にmovileというアプリケーションを登録し、元のサイトのコードをすべてコピーしました。
現在はまだここまでで、携帯にhtmlをコーディングし直しているわけではなく、PCで閲覧してテスト中です。
データベースからのデータを得る部分はwwwroot直下の別アプリケーションwevserviceを参照しています。
これはコピー元、コピー先ともに同じです。
ところが、単なるポストバックプログラムは動くようになったのですが、wevseervicceを参照している部分だけ
>>System.Net.WebException: 操作がタイムアウトしました。
エラーが出ます。web.configはすべてコピー元と同じ設定にしてあるのですが、movileアプリケーションだけが
エラーを出します。
どこかに同一サーバー内の別アプリを区別するセキュリティやタイムアウトの設定があるのでしょうか?
ヒント、誘導でもいいのでお願いします。
390:nobodyさん
09/05/28 17:53:13 wAV+Bwsc
すみませんageさせていただきます。レスお願いします。
391:nobodyさん
09/05/28 18:43:17
わかんないけど、単にディレクトリ掘っただけならweb.configまでコピーする必要ないんじゃないのかな
IISサービスマネージャ(スナップイン?)で、新たなアプリケーションを追加(仮想ディレクトリの追加?)を
追加して新しいサイトとしてやってみるのは試してみた?
どこで処理が止まってるかデバッグで確かめて、
その接続がなんでいかないかを考えたほうが早いようなきもするけど。
あとmovileじゃなくてmobileね
392:nobodyさん
09/05/28 19:08:30 wAV+Bwsc
>>391
ありがとうございます。
web.configをコピーしたのには、将来的にcookieless=trueとして携帯サイトとしてクッキー対策するためと
ログイン画面への遷移を指定するためで、どちらもアプリケーションルートのweb.configのみという制約があるのです。
処理が止まっているのはwebサービスの応答待ちです。
webサービス側はまったくリクエストが届いていない感じです。
サーバー内には目立ったエラーログはありません。
393:nobodyさん
09/05/28 19:13:32
なので、一つ一つ試してみたら?
web.configがなかったらどうかとか、
webサービスがなんで動作しないのか、
可能性を一つ一つ試して排除してみるしかないと思う。
asp.net 1.1 とwebサービスの特有の何かしらの症状なら、
あまり利用したことがないから想像がつかないけど。
394:nobodyさん
09/05/28 19:21:36 wAV+Bwsc
>>393
ありがとうございます。
なるほど!テストしてみます!
395:nobodyさん
09/05/28 19:27:17
>wwwroot直下にmovileというアプリケーションを登録し、元のサイトのコードをすべてコピーしました。
>データベースからのデータを得る部分はwwwroot直下の別アプリケーションwevserviceを参照しています。
ああ、別アプリに登録してるのか。
それだと、webserviceが共通で利用できない可能性ってないのかな?
俺が勘違いしてるね。スマン
396:nobodyさん
09/05/29 02:19:51 DlIDf9OB
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Debug.WriteLine(Session.SessionID)
End Sub
↑のように書いてページにボタンを置いてポストバックしてみると、毎回違う値が出力される。
SessionIDってそういうものなの?
セッションIDなんて名前なんだから同一セッションの場合は同一の値が返ってくるものと思ってた。
397:nobodyさん
09/05/29 03:05:08
>>396
同じだよ
クッキーが無効になってる
とか
URLリンク(support.microsoft.com)
とか
398:nobodyさん
09/05/29 08:10:07
Calenderを使って日付けを入力することは簡単にできるのですが、例えば
TextBoxに「2001/6/1」と入力して、それをカレンダーに反映させるにはどうすればよいのでしょうか?
今月じゃない日付を選ぶ場合、月をクリックして前月、前月と繰り返し再表示させなくてはならず、
年月日をダイレクトで指定し、そのカレンダー上に日付に関連する情報を表示(日付を赤バックにする)し
内容を確認できるようにしたい。
最終的に日付の入力はDropDownListで入力する予定です。
399:nobodyさん
09/05/29 11:09:25 I+rUeGmY
>>395
いえいえ、とんでもありません。
>webserviceが共通で利用できない可能性
やはりことあたりが疑わしいので、webサービスに接続しているアカウントなどを
追ってみたいと思います。
400:nobodyさん
09/05/29 14:01:33
>>398
DateTime dateTime;
if (DateTime.TryParse(this.TextBox1.Text, out dateTime))
this.Calendar1.VisibleDate = dateTime;
401:nobodyさん
09/05/29 23:31:08
>>163
もう解決済みかもしれんが、亀レスしておく。ASP.NET のワーカー
プロセスは以下のタイミングで再起動する。
・Web.config や Machine.config の更新
・bin 以下のコンテンツの変更(アセンブリ)
・*.aspx 等のコンテンツの変更多数
・なんか具合が悪い時(ぴゅう!)
よって、InProc モードを使っているとタイムアウトしていないのに
データが失われるという不可解な現象に悩まされることになる。
これがデフォルトの動作モードというのはもはや犯罪。いくら速くても
データがロストするんじゃね。
ということで、Session に重要なデータ保存するなら、InProc を使っては
いけない。つまり、ASP.NET 2.0 以降を使うべき。ただ StateServer などを
使う場合には Session に格納するオブジェクトに Serializable 属性が必要
になるので要注意。
402:nobodyさん
09/05/30 00:27:53
>>401レスどうもです。
原因は、>>241でして、
どうしようもない状態です。
iis 8007006dでググルと事例は
やたら出るが、対処方がみつからないです。
InProcを利用すべきでない等も
理解しているのですが
変えられない状況です。
403:nobodyさん
09/05/30 00:32:22
InProcでないといけない理由って?
404:nobodyさん
09/05/30 00:37:39
複数部署のアプリが混在している
1つのプロジェクト構造の為、
自部署のアプリのみをソースレベルで
慎重に分離して、StateServer対応の為、
シリアライズの部分を慎重に見直して、
全再テストする工数が莫大だからです。
405:nobodyさん
09/05/30 00:47:53
セッションを他の部署でも使ってるっから自分のとこだけでは変更できないてこと?
あれから18日も経ってるけど解決できてないんだね。ご苦労様です。
サーバの再インストールとかやってみた?
どっちにしても、そのままだとシステムとして成り立たないから、
何が原因か、サーバなのか、プログラムなのか、
結果的に全部署で再テストする必要が出てきそうだね。カワイソス
URLリンク(www.google.co.jp)
World+Wide+Web+%E7%99%BA%E8%A1%8C%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%A7%E8%87%B4%E5%91%BD%E7%9A%84%E3%81%AA%E9%80%9A%E4%BF%A1%E3%82%A8%E3%83%A9%E3%83%BC%E3%82%92%E6%A4%9C%E5%87%BA%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82+&btnG=
Google+%E6%A4%9C%E7%B4%A2&lr=&aq=f&oq=
406:nobodyさん
09/05/30 01:25:38
>>402
iis 8007006d でぐぐると、日本語では1件しか表示されない
MSのサポート情報の機械翻訳で日本語があれだが、エラーの原因が書いてある
そこに書いてある対処方法は当然ためしたか、該当しないか確認したんだよな?
407:398
09/05/30 04:44:22
Protected Sub Calendar1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles Calendar1.SelectionChanged
'カレンダーの日付を選択すると、「選択した日付」を表示(確認)
lblSelectedDay.Text = Calendar1.SelectedDate.ToShortDateString
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'ページロード初回のとき、「今日の日付」を表示
If Not IsPostBack Then
lblToday.Text = DateTime.Now.Date.ToShortDateString
End If
End Sub
Protected Sub btnChandeDay_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles btnChandeDay.Click
'「日付変更」ボタンをクリックしたとき、「今日の日付」を表示
Calendar1.VisibleDate = Convert.ToDateTime(txtInputDay.Text)
lblChangedDay.Text = txtInputDay.Text '入力した日付をラベル表示(確認)
lblChangedDay2.Text = Calendar1.SelectedDate.ToShortDateString '選択した日付をラベル表示
End Sub
という感じで作ってみました。
extBoxに「2001/6/1」と入力して、それをカレンダーに反映させる、については
>Calendar1.VisibleDate = Convert.ToDateTime(txtInputDay.Text)
によって該当月のカレンダーが表示されますが、日付の選択状態が実行されません。
指定した日付を選択状態にするにはどうすればよいのでしょうか?
408:nobodyさん
09/05/30 05:15:58
>>407
>指定した日付を選択状態にするにはどうすればよいのでしょうか?
普通にCalendar1.SelectedDateにセットすればいいだけの気がするんだが、
これって読み取り専用か?
409:nobodyさん
09/05/30 06:09:32
そんだけ動いてるってことはサーバの負荷が大きくなってプロセス再起動してる感じかなぁ…
ロードバランサ使って負荷分散するとかしないと厳しそうな気もするけど・・・
監視ソフトでも入れて負荷みないとなんともいえん
410:nobodyさん
09/05/30 06:17:21
Calendar1.VisibleDate = Convert.ToDateTime(txtInputDay.Text)
Calendar1.SelectedDate = Convert.ToDateTime(txtInputDay.Text) ←追加
lblChangedDay.Text = txtInputDay.Text
lblChangedDay2.Text = Calendar1.SelectedDate.ToShortDateString
>Calendar1.SelectedDate = Convert.ToDateTime(txtInputDay.Text)
を追加したら上手くいきました。ありがとう!
411:nobodyさん
09/05/30 07:12:47
>これがデフォルトの動作モードというのはもはや犯罪。いくら速くても
>データがロストするんじゃね。
むしろデータがロストしても致命的にならないくらい
セッションをできるだけ使わないのがおすすめだけどな。
おれはセッションにはせいぜいリダイレクトの瞬間のやりとりデータしか入れないぜ。
412:nobodyさん
09/05/30 11:10:13
データの受け渡しをするにしても、必ずSerializableなクラスを渡すようにするのがいいね
設計段階で、Selializableな基底クラスを用意して、それを継承したクラスのメンバ変数で
値を持つようにして、それをsessionで受け渡しすればいい。
InProcで問題が発生してStateServerの利用になっても問題無く移行できる。
413:nobodyさん
09/05/30 11:48:58
Serializable属性は継承されません
414:nobodyさん
09/05/30 11:53:13
ん、そうなの?
継承クラスでそのままSerializableできたけどなんでだろう?
415:nobodyさん
09/05/30 12:56:14
>>413
Silializerだと駄目だね
SessionとかだとSerializable属性なしでも通るのか。
知らなかった。サンクス!
416:410
09/05/30 14:29:16
MasterPage上の表の左コラムに、>>407,410で作ったカレンダーを貼り、
日付を選択したら、表の右コラムのContentPlaceHolder1に関連情報(Result.aspx)を表示する。
というのを作成しました。
Server.Transfer("Result.aspx?targetDay=" + Calendar1.SelectedDate.Date)
これで対象となる日付を引き渡し、該当する関連情報を表示するところまでできたのですが
なぜかカレンダー表示がその都度初期値(今日の日付を含む月)に書き換えられてしまいます。
選択した日付を含む年月のカレンダーを表示し、且つ選択した日を選択表示にするには
どうすればよいですか?
417:nobodyさん
09/05/30 14:45:21 yVbH19hK
もう、やりたいこと全部コメントに書いてプロジェクトごとアップロードしたら?
俺は落とさないけど。
418:nobodyさん
09/05/30 15:27:24
よくわからんけどVBって日付の妥当性チェック無しでConvertしても許されたり
stringにDateTime突っ込んだりしても推測して型変換してくれるの?
419:nobodyさん
09/05/30 15:37:08
普通にブラウザの戻るボタンで戻ると、ちゃんと日付が反映されてるよ
戻るボタンでもAJAX使ってると今日の日付にもどっちゃうけど
ただ単に同じページに戻っただけなら、初めてページを表示させるのと同じだから
表示の日付も今日の日付になってるというのは当たり前の話。
日付を選択して違うページに移動し、再び日付選択ページに戻った時、
その日付を維持したいのなら、セッションかクッキーを使用するか、
GETかPOSTで日付データを渡して値を設定するしかない。
420:410
09/05/30 16:12:33
MasterPage
表左コラム | 右コラム
|
カレンダー | 該当年月日に属する情報
Calendar.ascx | Result.aspx
こんな感じで、カレンダーで選んだ日付に属する情報を表の右コラムに表示する。
Server.Transferを使うことで、選択した年月日の情報を表示することはできました。
ところがResult.aspxが表示された瞬間、Calendar.ascxのカレンダーが初期年月に戻ってしまう。
カレンダー上に、右コラムで表示された情報の日付が選択された該当月が表示されたままにしておいて
同月の前後その他の情報を続けて表示確認したい。
マスターページに共通の見た目のデザインを設定し、この上で
Webユーザーコントロールから必要な項目を選択し、Webフォームに見たい情報をデータベース検索し表示する。
みたいなことができるような仕組みを作ろうかと思っています。
421:nobodyさん
09/05/30 16:47:09
マスターページとかめんどくさそうだなw
422:nobodyさん
09/05/30 17:07:38 yVbH19hK
>>420
ちょっと危険なコーディングだがMasterPage側での処理ということで。
URLリンク(teke348.dyndns.tv)
カレンダーなんて、そのうち「ある場合ではこうで、そうでない場合はこう」
とか色々制限がつきやすいものだから、それ自体をユーザーコントロールにした方が吉。
423:nobodyさん
09/05/30 20:25:01
>>422
優しいね
ソース眺めて(・∀・)ニヤニヤしようかな(・∀・)ニヤニヤ
424:nobodyさん
09/05/30 20:35:56
(・∀・)ニヤニヤしようと思ったらVBだからよくわからんかったわw
425:nobodyさん
09/05/31 03:44:11
フォーム認証のメリットって何?ベーシック認証じゃ駄目なん?
認証受けずにページを表示しようとしたら指定のページに強制的に飛ばされる、つーのは
便利だと思うけど。
426:nobodyさん
09/05/31 04:17:10
認証方法はユーザIDとパスワードの組み合わせだけだと思うか?
427:nobodyさん
09/05/31 14:48:59
ベーシック認証に他のやり方があるかどうかわからないけど、
Windowsのアカウントユーザを追加してIDとパスを設定しなくちゃいけないから面倒だからじゃない?
apacheとかでも動的に.htaccessとかにユーザを追加管理しなきゃいけなから
面倒だったと記憶してるんだけど。
フォーム認証ならデータベース等を利用して動的にユーザの追加や削除ができるでしょ。
428:nobodyさん
09/05/31 17:35:56
まあ、ASP.NET側で自分で独自に処理してやれば、BASIC認証でも自由にやれる。
けどわざわざやる価値はあんまりないわな。
429:410
09/06/01 17:45:43
>>422
どうもありがとうございます。
MasterPageに複数のWebコントロールを載せて、結果をDefoult.aspxに表示するというコンテンツを作ると、
Sessionを使うと煩雑になるのと、時系列的にPageを切り替えていくのならOKですが、それぞれの
Webコントロール(上のデータ表示)に、同時に反映させるのが難しいかと思いました。
結局、MasterPage画面に配したWebコントロールページに同時にServer.Transferを送ることで
画面上のデータをすべて同期させることができることが解りました。
VIEWSTATEが少し冗長となりましたが。
またアドバイスお願いします。
430:nobodyさん
09/06/02 22:10:04
>>418
int型へのキャストで以下が成立する言語
CInt("+2,7,42,4,6,") = 274246
#全角は入力間違いをしている訳ではない
431:nobodyさん
09/06/02 23:17:26
w
まぢかw
432:nobodyさん
09/06/04 17:26:18
参考書で練習問題やってたらAdventureWorksってのが出てきたんだけど
自分で設定汁って書いてあるんだけど、なにこれ?
433:nobodyさん
09/06/04 18:33:57
マイクロソフトが配布してるデータベースのサンプル
434:nobodyさん
09/06/10 14:01:06
質問です。1つのイベントを複数のイベントハンドラに対応付ける事は出来るでしょうか?
ネットで探していると
「1つのイベントハンドラを複数のイベントに対応付ける」
というのは沢山出てくるのですが、逆は見つけれません。
そもそも無茶な事しようとしているのでしょうか?
具体的にはボタンがクリックされた時にイベントを2つ呼び出したいといった感じです。
435:nobodyさん
09/06/10 17:51:41
イベントハンドラ内から新しいイベント投げてやればいいんじゃね
436:nobodyさん
09/06/10 18:17:32
>>434
こういうこと?
protected void Page_Load(object sender, EventArgs e)
{
this.Button1.Click += this.Button2_Click;
this.Button1.Click += this.Button3_Click;
}
protected void Button2_Click(object sender, EventArgs e)
{
}
protected void Button3_Click(object sender, EventArgs e)
{
}
437:nobodyさん
09/06/10 18:42:20
ヒント:オブザーバー
438:nobodyさん
09/06/10 18:52:20
デザインパターン使って自分で定義せんでも、.Clickに+=すればいいやんw
439:nobodyさん
09/06/10 20:41:28
>>435, >>436,
やっぱそうなりますよね。
javascriptだと、onclick="hoge();piyo();" みたいな書き方が出来た気がするので、
そういう単純な方法無いかな〜と思ったんです^^;
>>437, >>438,
そいうデザパタがあるんですね〜勉強してみたいと思います。
440:1/2
09/06/10 21:06:01
質問です
コードビハインドで組んでいるのですが、コンテナの使い方がいまいちわかりません
csファイル1
public class Jouhou{
private int suuji;
private string moji;
public Jouhou(int suuji,string moji){
this.〜〜
}
public setget〜〜〜
}
CSファイル2
public class Dousa{
protected System〜〜.Repeater rpt;
private void Page_Load(〜〜){
List<Jouhou> joho=new List<Jouhou>();
joho.add(〜〜); x3とか
this.rpt.DataSource=joho;
this.rpt.DataBind();
}
protected string hoge(string moji){
return moji;
}
}
ascxファイル
<asp:Repeater〜ID="rpt"〜〜〜>
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "moji") %>←正常にLiteralが作成されて、表示される
<asp:Literal ID〜〜〜〜 Text="hoge(DataBinder.Eval(Container.DataItem, "moji"))">←エラーが出る(エラーは不明)
441:2/2
09/06/10 21:09:12
つまりRepeaterにはきちんとデータはバインドされていて、mojiとかが正常に以降しているのに、
メソッドに値を送り込もうとすると失敗します。
例えば、
<asp:Literal ID〜〜〜〜 Text="hoge("aaaa")">
とすればきちんとaaaaが返ってきます
やりたいことは、repeaterの中のデータを一旦検証メソッドに送って、その結果を返したいです。
どなたかアドバイス頂けないでしょうか?
442:nobodyさん
09/06/10 23:18:50
>>441
なんかこんなんつくってたわ
昔作ったから意味は忘れた
<asp:TextBox ID="TextBox" Text='<%# this.GetColumnData(Container, "Data") %>' runat="server"></asp:TextBox>
protected string GetColumnData(RepeaterItem repeaterItem, string columnName)
{
object columnData = DataBinder.Eval(repeaterItem.DataItem, columnName);
string returnData = "";
if (columnData is string)
returnData = (string)columnData;
else if (columnData is int)
returnData = ((int)columnData).ToString();
else if (columnData is decimal)
returnData = ((decimal)columnData).ToString();
else if (columnData is DateTime)
returnData = ((DateTime)columnData).ToString("yyyy/MM/dd");
return returnData;
}
443:nobodyさん
09/06/10 23:23:30
>>442
ありがとうございます!
さっそくそれを参考にいろいろ調べてみます
444:nobodyさん
09/06/12 09:14:01
すみません。初心者なのですが
皆さんのお知恵をお貸し下さい。
現在、ASP.NETでWEBアプリの勉強をしているのですが
SQLサーバーに、バイナリー形式で保存してある
画像を加工してから出力したくて
BITMAPクラスを使用すればいいことまでは分かったのですが
データベースから取り出した、バイナリーデータを
どうやってBITMAPクラスに入れればいいのか、分からず四苦八苦しています・・・
分かる方からすれば、くだらないかも知れませんが、教えてください。><
Dim image As Bitmap
Dim writeStream As Byte() = New Byte(record.Item(0).toByteArray.Length - 1) {}
System.Buffer.BlockCopy(record.Item(0).toByteArray(), 0, writeStream, 0, record.Item(0).toByteArray.Length)
image = New Bitmap(writeStream)
これだとエラーになっちゃうんです><
445:nobodyさん
09/06/12 17:26:51
>>444
//MSSQLからバイナリデータの取得 varbinary(MAX)
TestDataSetTableAdapters.TestTableTableAdapter tableAdapter =
new TestWindowsForms2008.TestDataSetTableAdapters.TestTableTableAdapter();
TestDataSet.TestTableDataTable dataTable = new TestDataSet.TestTableDataTable();
tableAdapter.Fill(dataTable);
//MemoryStresmにMSSQLから取得したbyte[]データを格納 行が無かった場合のチェックする必要あり
MemoryStream ms = new MemoryStream(dataTable[0].BitmapData);
//Bitmapのインスタンスを生成
Bitmap bitmap = new Bitmap(ms);
//BitmapのインスタンスをImageプロパティに設定
this.pictureBox1.Image = bitmap;
446:nobodyさん
09/06/12 17:29:16
格納する側
//Bitmapインスタンスの生成とbitmapデータの取得
Bitmap bitmap = new Bitmap("test.bmp");
//BitmapデータをMemoryStreamに読み込む
MemoryStream ms = new MemoryStream();
bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
//Bitmapデータを格納するTableのインスタンスの生成
TestDataSetTableAdapters.TestTableTableAdapter tableAdapter =
new TestWindowsForms2008.TestDataSetTableAdapters.TestTableTableAdapter();
TestDataSet.TestTableDataTable dataTable = new TestDataSet.TestTableDataTable();
tableAdapter.Fill(dataTable);
//新しい行の作成と、バイナリデータの設定
TestDataSet.TestTableRow row = dataTable.NewTestTableRow();
row.BitmapData = ms.ToArray();
dataTable.Rows.Add(row);
//Tableの更新
tableAdapter.Update(dataTable);
447:nobodyさん
09/06/12 18:11:28
>> 445
ありがとうございます。
無事解決できました。
本当にありがとうございました
448:nobodyさん
09/06/14 03:05:11
ASPのころ、本当にVBSでできることぐらいしかできなくて苦労したけど
ASP.NETになってから、画像も加工できるし、メールも送れるし、FTPも簡単だし、
FileSystemObjectも簡単になってるし、日付計算も簡単になってるしで、
本当に便利になったよね
BASP21すげーーーーーーとかいって使ってたのを思い出したよ
449:nobodyさん
09/06/15 15:22:19
レイアウトの自由度のためだけに、一意なレコードしか選択されなくても
Repeater使ってるんだけどおかしい?
FormViewはHTMLに展開されるときにデフォルトでtableタグが生成されるのが
いただけない。ちなみに.net framework2.0限定。
あとデザイナ画面でRepeaterコントロールがデフォで5行表示されるのもなんとか変更したい。
<HeaderTemplate>だけだとItemTemplateが無い場合、表示されないし・・
450:nobodyさん
09/06/15 15:36:10
>>449
そこまで文句言うならデザイナにでもパネル突っ込んでガリガリループでHTMLとかコントロール突っ込んでいけば?
451:nobodyさん
09/06/15 19:19:29
>>449
Item5個だけのクラスを新たに作って、リピーターに突っ込めばいいだけなんじゃないの?
452:nobodyさん
09/06/15 21:15:04
そんなの自由自在
ASP.NET サーバコントロールプロジェクトで自作でhtmlを生成して表示してもいいし、
ユーザコントロールにLiteralコントロールを設置して自分でhtml出力すればいい
>あとデザイナ画面でRepeaterコントロールがデフォで5行表示されるのもなんとか変更したい。
何行表示されても構わないように設計(デザイン)する必要があるわけだから、
極端に言えば何行の表示でも別にいいでしょ
<ItemTemplate>がなければ複数行の動的な生成が難しいんだから一般的には必要ないかと
453:nobodyさん
09/06/15 21:32:48 Ovw0FDNW
Visual Web Developer 2005 Express Edition質問です。
PlaceHolderの中にコントロールをドラッグ&ドロップしたいんですけど、
プレースホルダーを配置して、この上にドラッグドロップしてみたんだけど無理でした。
どうやるの?
454:nobodyさん
09/06/16 02:03:02
たぶんやりたいこととか目的とズレてるような気がするけど、
単にPlaveHolder内にタグを配置したいならデザインビューに切り替えて
<asp:PlaceHolder ID="PlaceHolder2" runat="server">
※
</asp:PlaceHolder>
の※の部分にコントロールをポトペタすればコントロールが配置できる
でも本来、PlaceHolderは実行時にコントロールを生成するコンテナとしての役割が大きいので、
単に配置するだけとか、配置して一斉に非表示にしたいとか目的なら
Panelとか使ったほうがいいと思う。
455:nobodyさん
09/06/16 20:27:08
>>454
ありがとうございます!!!!!多謝です!
デザインビュー上ではやっぱりできないのですね
自分のはFreeのツールだから禁止させられているのかと思いました。
やりたいことは、タブみたいに、ボタンをおしたら、違う画面になる(でも同じWebフォームで処理したい)
みたいな事です。
なので、パネルでやります。
m(_ _)m
456:nobodyさん
09/06/16 21:10:44
>>455
ある特定の一部分だけ非表示にしたり、表示したりするならPanelでもいいけど、
ごっそり変えるなら、MultiViewとViewを使ったほうがわかりやすい
一つのaspxで、入力フォーム→入力確認ページ→実際に登録みたいなこともできるよ
PostBackが仕様のASP.NETだと、そういうのに2枚のaspxが必要だと思ってる人もいるみたいだけど
457:nobodyさん
09/06/16 21:45:59
>>456
たびたびありがとうございます!!!!!
さっそくMultiViewにします!
458:nobodyさん
09/06/21 11:03:39
本番機と開発機でweb.configが違うんだけど、上手い管理の仕方無いかな。
いつか間違えてしまいそうで怖いんだが。
459:nobodyさん
09/06/21 15:17:48
>同じ名前 (Web.config) の複数の構成ファイルを、ASP.NET の
>Web アプリケーション サーバーの複数のディレクトリに置くことができます。
>各 Web.config ファイル内の構成設定 (IIS 認証の設定など) は、
>それぞれのディレクトリ内のソース ファイルに適用されます。
>Web プロジェクトでは、既定の Web.config ファイルの設定に優先する、
>カスタムの構成ファイル (mysettings.config など) を作成できます。
>チーム開発環境では、カスタムのファイルを作成することが必要になる場合があります。
>カスタム構成ファイルの作成が必要となる状況、
>特に共有プロジェクト開発時の必要性の詳細については、
>「Web 参照、Web プロジェクト、およびソース管理の統合」を参照してください。
>Web プロジェクトの場合、ソース管理に追加する必要がある *.config ファイルは、Web.config だけです。
URLリンク(msdn.microsoft.com)
とか?
460:nobodyさん
09/06/21 15:19:15
あとは、やったことないけど、
FTPとかでの更新ならweb.configだけ異なる権限にしておいて、
勝手に書き換えられないようにしておくとか、そんなんはできないのかな
461:nobodyさん
09/06/21 15:35:33
>>458
ウチの場合は、web.config.dev とか、web.config.release 等の名前で
複数の web.config を用意している。自動デプロイスクリプトを組んでる
ので、その中でデプロイ先の環境を判別して web.config にコピってる。
まあ、普通だな。手作業はとにかく排除するのが基本じゃね。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4133日前に更新/262 KB
担当:undef