トップページ⇒php
1001コメント438KB

【質問】ASP.NETスレ Part5【議論】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/01/23(金) 09:46:51ID:???
●過去ログ
Part1 - 【質問】 ASP.NETスレ 【議論】
http://pc5.2ch.net/php/kako/1040/10406/1040698263.html
【質問】ASP.NETスレ Part2【議論】
http://pc8.2ch.net/test/read.cgi/php/1111480331/
【質問】ASP.NETスレ Part3【議論】
http://pc11.2ch.net/test/read.cgi/php/1160355849/
【質問】ASP.NETスレ Part4【議論】
http://pc11.2ch.net/test/read.cgi/php/1184683786/ (dat落ち?)

あんまり需要ないのかもしれませんが。。。
0697nobodyさん2009/07/28(火) 00:30:07ID:???
>>695
そこらへんまで行くと、完全に実装にかかるコストやなんやらとのトレードオフ
ISDNとか56kモデム全盛の時代は帯域が狭いから、
トラフィックも考慮されてたけど、今じゃよほど特殊な環境やページでなければ
トラフィックを気にして設計することなんかほとんどない

その証拠に、画面を描画するcssも、よくあるライブラリを記述するjsも、
必要な部分だけincludeしてるわけじゃなく、サーバに対して1つだけを設定してるだけでしょ
さらに言えば、今時、JavaScriptで入力チェックしてるサイトも少数派になってる
どうせ両方に実装するのならJavaScriptのほうは不必要という考えもできるからね
0698nobodyさん2009/07/28(火) 02:26:18ID:FCPdlHYK
ASP.NETのValidatorが自動生成するスクリプトでのチェックならいいが、
自力でScriptをゴリゴリ実装するのは後で他人が多大なる被害を被るのでやめてくれ。
んなもんサーバ側でやればいいだろーが。
0699nobodyさん2009/07/28(火) 08:13:31ID:???
前任者のソースに__doPostBackを
自前の関数から呼んでるのとかあったな
0700nobodyさん2009/07/28(火) 09:19:48ID:???
つーか、client側にゴリゴリ処理を書くとか、むしろアリエネーとか思うんだが。
そんなの、いくらでもエンドユーザが改変可能じゃん。

原則は、全部のデータをサーバに丸投げして、あとはサーバ側でチェック。
仮にclient側のjavascriptでチェックしてても、全く同じチェックをサーバ
側でも再実施。だったら実装の手間隙考えて、微々たるトラヒックの事なん
か気にしない。(=clientではチェックしない)
0701nobodyさん2009/07/28(火) 11:02:01ID:???
なんでajaxが出てきたと思ってる
ってまあ言いたいことは分かってるんだけどな
0702Appri童貞2009/07/28(火) 17:08:04ID:sYPKb5BW
エラー発生アプリケーション xxxxxxxxxxxx.exe、バージョン 1.0.0.0、
エラー発生モジュール kernel32.dll、バージョン 5.2.3790.4480、
エラー発生アドレス 0x0000bef7

こんなログ出た人いますか?
0703nobodyさん2009/07/28(火) 17:20:27ID:???
>>702
聞く前にぐぐれ

kernel32.dll 0x0000bef7 5.2.3790.4480
でぐぐったら、1つ目のリンクにSystem.OutOfMemoryExceptionがどうとか書いてあるぞ。
0704Appri童貞2009/07/28(火) 17:33:53ID:sYPKb5BW
ありがとう^^
0705nobodyさん2009/07/28(火) 19:06:55ID:???
死ね
0706nobodyさん2009/07/28(火) 19:48:08ID:???
むしろ生きろ
0707nobodyさん2009/07/29(水) 03:14:53ID:S6cUwBjX
>>699
ゴメン、今のプロジェクトで __doPostBack 書いてる。
0708nobodyさん2009/07/29(水) 03:30:54ID:???
クライアントスクリプトからポストバックする方法って普通になかったっけ?
別に問題ないと思うけど
0709nobodyさん2009/07/29(水) 07:38:21ID:???
ASP.NET2.0以降ならICallBackEventHandlerで出来るな。
しかしだからって、__doPostbackを自前で呼ぶことが許容できるかというと微妙。
十中八九、代替する方法があるだろうしな。
0710nobodyさん2009/07/29(水) 19:40:32ID:???
リンクをcssで無効にして、Scriptでクリックすることにするという方法が簡単らしいね
ClientScriptで動作させることが前提の非ビジュアルコンポを作ったら楽かもしれない
つか、ICallBackEventHandler試したことないから、やってみようかな
0711nobodyさん2009/07/29(水) 20:30:18ID:???
MaskedEditExtenderについて、教えて下さい。

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<ajaxToolkit:MaskedEditExtender
ID="MaskedEditExtender1"
runat="server"
InputDirection="RightToLeft"
Mask="99,999"
MaskType="Number"
TargetControlID="TextBox1">
</ajaxToolkit:MaskedEditExtender>

と設定されたテキストボックスに、1を入力してポストバックなりすると
100,000と変換?されてしまします。
Mask="9,999" でもダメでした(1,000になってしまう)
しかし
Mask="999999" やMask="9,999,999"では問題ありませんでした。

これは何かの制限でしょうか?
0712nobodyさん2009/07/30(木) 01:45:47ID:6Jkou0XR
__doPostback実装してもいいじゃん。ダメな理由って何がある?
0713nobodyさん2009/07/30(木) 02:45:19ID:???
ServerControlの配置と、自分で記述するClientScriptの相関関係がまったくなくなるのが問題と言えば問題
0714nobodyさん2009/07/30(木) 03:29:35ID:???
まったくなくなるかどうかはクライアントスクリプトの実装次第だと思うが
コールバックとポストバックは似て非なるものだから
どうしてもポストバック使いたいときもあるだろう
つか1.1まではそれしかなかったしな

ダメな理由はない
まあ、見通しが悪くなることが問題といえば問題
だがそれはコールバックでも同様
0715nobodyさん2009/07/30(木) 06:36:24ID:???
コントロール名を変更しても、JavaScriptのほうまでは変更してくれないでしょ
だから相関関係が無くなる
0716nobodyさん2009/07/30(木) 07:36:36ID:???
それは最初からJavascriptが間違ってるだろ。
0717nobodyさん2009/07/30(木) 08:11:07ID:???
>>712
もちろん最終的には開発者の自由なんで、あくまで俺の見解として。

まず、前にも書いたがそんなことをしなくても
十中八九、正攻法で解決できると予想される。
また、他に方法がなかったとしても、
果たして裏道を使ってまで解決する要件か疑問が残る。

次に、そのような組み方は「らしくない」と感じる。
極端な例えだが、Responce.WriteでHTML出力してたり、
GridViewに仕込まれた無数のhiddenを見ている気になる。

最後に、フレームワークを使っていて、
ハッキング(裏道の利用)に手を染めたら負けかなと思ってる。
0718nobodyさん2009/07/30(木) 14:41:52ID:???
>>716
違う
最初は正しかったが、IDEでaspxの何かを変更をすることで、
結果的に間違ったものになったということ

基本的にIDEの機能や本来のやり方と無縁だからこうなる
0719nobodyさん2009/07/30(木) 18:15:21ID:???
>>715
それはスクリプトでIDなんかをハードコーティングするから悪い

スクリプトをサーバコントロールで動的に生成して出力するようにすれば
サーバコントロールとの関係は崩れない。これがAPS.NET流じゃないかな
まあ、__doPostback直接書くのはお勧めじゃない。GetPostBackEventReference使えと

.aspx側(html側)にスクリプト書いたとしても、動的に変更する必要があるところは
実行時バインド式で書いとくのが通常
0720nobodyさん2009/07/30(木) 21:07:58ID:???
>スクリプトをサーバコントロールで動的に生成して出力するようにすれば
これが読みにくくて判読しにくいんだよな
そもそもサーバサイドスクリプトがcsに書かれてるのも違和感だし
うまく解決できないものか
0721nobodyさん2009/07/30(木) 21:46:45ID:???
aspx側に書けばいいじゃん。
0722nobodyさん2009/07/30(木) 22:11:19ID:???
ASP.net 2.0 なんですが、GirdViewの「編集」(正確には「更新」)のイベントハンドラを独自に記述する方法はあるでしょうか?

GridViewによるマスタメンテを実装しているのですが、GridViewはEnableViewStateをfalseにしないと更新が出来ないそうですね。
現在、ロジック側でConnectionStringを設定するつくりになっているので、EnableViewStateがtrueでないと動かないのです。
ということで%一行目%しかないかと思ったのですが、どこか参考になるURLなどご存知の方がいらっしゃれば、ご教授いただければ幸いです。
よろしくお願いします。
0723nobodyさん2009/07/30(木) 22:18:30ID:???
>GridViewはEnableViewStateをfalseにしないと更新が出来ないそうですね。
そうなの?初めて聞いた。

>ロジック側でConnectionStringを設定するつくりになっているので、EnableViewStateがtrueでないと動かないのです。
そうなの?これも初めて聞いた。
0724nobodyさん2009/07/30(木) 22:21:01ID:???
ゴメン、意味が分からない。
同じ環境でGridViewから更新処理してるが、EnableViewstateはTrueのままだぞ。
あと編集処理は通常CommandNameがEditであって、
更新はUpdateだから同じものでも無いはずなんだが。
まぁイベントハンドラならOnCommand辺りでフックすればいいんじゃないか。

と、ここまで書いて思い付いたが、
もしかしてObjectDataSource等をかまさずに
直接DataSourceにオブジェクトを割り当ててるとか?
0725nobodyさん2009/07/30(木) 22:26:48ID:???
今テストしたけど、GridViewのEnableViewState=trueで更新できるな
VS2008+MSSQL2005
0726nobodyさん2009/07/30(木) 22:41:33ID:???
エスパーすると
IsPostBackがtrueの時にDataBindするとイベントが発生しないということと、
ポストバックしてEnableViewStateがtrueの時だと、
取得時のデータと異なる可能性があるというデータの整合性や楽観的ロックの
関係とごっちゃになってるような気がする。

07277222009/07/30(木) 23:43:56ID:???
>>723-726
というと、これはガゼ?
ttp://bbs.wankuma.com/index.cgi?mode=al2&namber=6830&KLOG=17
ttp://yaplog.jp/iamcat/archive/23

(1)削除は出来る
(2)更新も、少なくともSQLは流れてる
 ※UpdateCommandのSQL文弄るとエラーになるので
から、画面から入力した内容がUPDATE文に流れていないのだと判断したのですが・・・。

>>723
>>ロジック側でConnectionStringを設定するつくりになっているので、EnableViewStateがtrueでないと動かないのです。
>そうなの?これも初めて聞いた
初回は動くんですが、ポストバックするとConnectionStringが元に戻ってしまうらしいんですよ。
Page_loadで毎回代入してるはずなんですけどね・・・。
0728nobodyさん2009/07/30(木) 23:58:28ID:???
>>727
>というと、これはガゼ?
それは、GridViewにデータをバインドした後に、誰かがデータを変更した場合の話

初回アクセス時にデータを取得し、それ以降はサーバとブラウザの間でポストバックして、
データを持ち回りしているので、その間にデータベースのデータが変更されても、
変更されたデータとして反映されないということ。

>初回は動くんですが、ポストバックするとConnectionStringが元に戻ってしまうらしいんですよ。
そう考えるとConnectionStringが元に戻るんじゃなくて、表示されるデータが戻ってるだけでは?
ConnectionStringをLabelなどに表示してみて、本当に変わっているかどうかチェックしてみたほうがいい
07297282009/07/31(金) 00:08:52ID:???
ああ、ごめん上のレスは却下
System.ArgumentException: 無効なポストバックまたはコールバック引数です。
の理由にはならないね

ただ、ポストバックで特殊なことをしてなければそんなエラーはでないから普通は関係ないはず
0730nobodyさん2009/07/31(金) 00:14:03ID:dsR5PDEA
ASPでデバッグモードの時のみコードを実行させることってできます?
C#でウインドウアプリ作るときはプロジェクトの設定して
Conditional属性つければ、デバッグ時のみコードを実行させることが
できますが、同じようなことをASPでできないものでしょうか?

#if DEBUGでの切り分けはあんまり使いたくないなぁということで・・・
属性じゃなくても、似たようなことができる方法教えてもらえると助かります。

07317302009/07/31(金) 00:16:46ID:dsR5PDEA
あ、失礼しました
ASP.NETです
言語はC#です

0732nobodyさん2009/07/31(金) 02:18:59ID:???
>>720
>そもそもサーバサイドスクリプトがcsに書かれてるのも違和感だし
クライアントサイドの間違いじゃないのか?
サーバサイドのスクリプト(プログラム)が.csに書いてあるのは普通だろう
そのために.aspxと.aspx.csに分離してあるんだから

まあ、サーバサイドとクライアントサイドのコードが混在すると
読みにくくて判読しにくいのは同意するが、これはWEBアプリの宿命的な部分もあるしな
ASP.NETな開発で考えると、そこはコントロールの作成者が苦労すれば、
その利用者は何も考えなくてよい、ってことなんだが...最大の成功例はAjaxToolkitか
実際はカスタムコントロールなんて作らんとページロジックに書く場合がほとんどだろうし
作ってもコントロール利用者=コントロール作成者な場合が多いからなw
0733nobodyさん2009/07/31(金) 19:40:32ID:???
VS2008SP1のセキュリティがあたらねぇ
WindowsUpdateはクソだな
0734nobodyさん2009/08/01(土) 09:06:35ID:7MJE4N/J
ASP.NET MVC 2 Preview 1
http://www.microsoft.com/downloads/details.aspx?FamilyID=d34f9eaa-fcbe-4e20-b2fd-a9a03de7d6dd&DisplayLang=en
0735nobodyさん2009/08/01(土) 11:34:44ID:???
mvcは要らない子
0736nobodyさん2009/08/01(土) 11:58:07ID:???
海外ではMVCに移行してきてると思うけど
携帯向けのことも考えるとMVC以外あり得ん
0737nobodyさん2009/08/01(土) 13:47:25ID:???
ASP.NET for Mobilesはやれば出来る子
0738nobodyさん2009/08/01(土) 15:10:04ID:???
ASP.NET MVCちょっと使ってみて、やべー、使いやすい!
って俺は思ったんだが。
他のフレームワークでのMVC開発全くやったことなかったし。
0739nobodyさん2009/08/01(土) 15:45:55ID:???
コードビハインドで事足りる
MVCならResponse.Writeで全部はき出すのとそんなに変わらん
0740nobodyさん2009/08/01(土) 15:56:50ID:???
今更Web Forms vs MVCみたいなこと言ってんのかよ
0741nobodyさん2009/08/01(土) 16:01:59ID:???
ASP.NET MVCはLAMP対策。
それ以上でもそれ以下でもない。
0742nobodyさん2009/08/01(土) 16:07:10ID:???
使いやすい云々よりjQueryフレンドリーなのが大きい
0743nobodyさん2009/08/01(土) 16:12:12ID:???
苦肉の策って奴だなLAMP方式
0744nobodyさん2009/08/01(土) 22:28:24ID:Xxdx6Cb4
ASP.NET MVCは単テがしやすいとか聞いたがそうなの?
今までのASP.NETでは、まともに単体テストやろうとしたらかなり面倒だよね。
0745nobodyさん2009/08/01(土) 23:07:40ID:???
つVisual Studio Team Edition for Software Testers
0746nobodyさん2009/08/02(日) 16:46:34ID:Ql7mD23J
ttp://www.netdive.jp/asp.html
0747nobodyさん2009/08/02(日) 21:54:48ID:???
↑
これは便利だね
0748nobodyさん2009/08/02(日) 22:00:36ID:???
昔のASP?
0749nobodyさん2009/08/03(月) 00:39:33ID:???
っつーかマルウェア検出されるんだけど
0750nobodyさん2009/08/04(火) 10:35:52ID:???
画面が重いとかクレーム付けられてンだけど、画面上にLabelとTextboxが5マンコも載ってりゃ
当然だろ常考。こっちは設計書に忠実に実装してるだけですが何か。

ページ切り替えとかの実装を要求されるンかなぁ。
更新系の画面でページ切り替えとか、考えることが増えてマジウザイんだけど。
0751nobodyさん2009/08/04(火) 10:41:59ID:???
>>750
初心者乙
0752nobodyさん2009/08/04(火) 14:09:01ID:???
5万項目も入力&入力チェックする人間も大変だな
0753nobodyさん2009/08/04(火) 19:43:51ID:???
Label+Textbox合わせて最大5マンコ位なんで、Textboxだけなら2マンコ位です。
横方向にTextBoxが40×Repeaterで500ループ、なので入力チェックの実装はそれほど大変では
ないのですが、、、

実際に運用した際の入力の手間については考えていません。
0754nobodyさん2009/08/04(火) 20:38:23ID:???
そういうのはグリッドで設計すべき
0755nobodyさん2009/08/04(火) 20:45:22ID:???
text二万個分のViewStateやらポストやらとか考えたくもない
でも設計に口出ししなかったんだから仕方ないな
0756nobodyさん2009/08/04(火) 21:24:45ID:???
ちなみに何を入力させてんの?
それがわからないと最適解はわからんよね
NDAとかで具体的に話せないなら、似たような事例で
0757nobodyさん2009/08/04(火) 22:30:19ID:???
>>754
グリードってGridView?あんまりGridViewを用いるメリットが思いつかない・・・
ちなみに、サンプルに良くある「行毎にある編集ボタンを押して編集モード、編集が終ったら行ごとの更新ボタ
ン押下で再び参照モード」 って挙動は駄目なんで。
ユーザはあくまでExcelへの入力のごときフィーリングを求めてるみたい。

>>755
詳細設計から参加だから、もうどうしようもなかった。
ポストは、xmlに定義した内容を見て、Request.Paramsを分解してDataSetに突っ込むっていう部品を作っ
たんであまり気にしてません。VIEWSTATEは・・・Sessionに突っ込んでるけど、恐ろしいサイズになってそう。

>>756
顧客情報。
1営業担当あたり500人程度を想定してるんで。
0758nobodyさん2009/08/04(火) 22:36:00ID:???
わかりにくかったらすみません
repeater全体にlinkbuttonつけたんですが、
そのどこかの行をクリックするとその行だけ詳細パネルが開いて、他の行もそのまま表示ってしようとしたところ、
パネルは開いたのですが元々あった一覧行が消えてしまいます
何が原因だと思いますか?
0759nobodyさん2009/08/04(火) 23:01:36ID:???
Excelのごとき入力をしたい画面をWebでつくるという腐った提案ナイスだな。
Excelでいいじゃんって言ったらしばかれそうだなw
0760nobodyさん2009/08/04(火) 23:02:09ID:???
>>757
どういう契約関係かわからんが仕様書段階で忠告があってしかるべき仕様だよな
仕様通りつくって運用上の問題が発生したのなら、当然、別料金で作り直しでしょ
仕様の設計者が社内の人間なら、泣く泣く作り直すしかないね。
設計者に飯でもおごってもらえw

それはともかく、初めからマトリクス状に500行あるってこと?
それともユーザを追加していくうちに最大で500行まで増えそうってこと?
前者なら設計が最悪、後者なら20行ごとにページングするしかないね。
各行ごとに編集や削除ボタンを設置しておけば、表全体に対して入力チェック
する必要ないし、PostBackの容量も少なくて済むし。
0761nobodyさん2009/08/04(火) 23:07:32ID:???
>>758
>repeater全体にlinkbuttonつけたんですが、
各行に1個のボタンを付けて、それをクリックすると行の詳細が、
パネル(パネルってなに?)に表示されるってことかな?
んで、クリックするとなぜかそのクリックした行のデータだけ
repeaterから削除されてるってこと?

いまいちどういう動作をしてるからわからんので、
記述したプログラムをどこかにupもしくは
操作している最中の動きをスクショでとってどこかにup
0762nobodyさん2009/08/05(水) 00:32:56ID:???
能力の無い馬鹿ほど最初に予防線を張りたがるよねw
大抵が、パフォーマンスが出ないのは作りがしょぼいだけ。それを仕方ないと言い訳する屑。

googlemapみたいにアジャックスつかって、見えてる部分だけデータを拾ってくるようにして、スク
ロールインした部分は随時データを拾ってくるようにすればいい。
これなら、画面上に見えてるコントロールの数はずっと少なく出来るし、レスポンスも工場する。
0763nobodyさん2009/08/05(水) 01:14:20ID:???
何いってんだか意味ワカンネ
0764nobodyさん2009/08/05(水) 01:27:35ID:???
>アジャックス
0765nobodyさん2009/08/05(水) 01:41:38ID:???
TextBox20000個より阿呆がいる
0766nobodyさん2009/08/05(水) 01:44:50ID:???
>>762
やってみろよ。
見せてくれ。
作りがしょぼいだけってんだから簡単にできるんだろ。
0767nobodyさん2009/08/05(水) 01:49:29ID:???
まもっとも、できるできないより問題はどんだけコストをかけるのかなんだけどな。
0768nobodyさん2009/08/05(水) 02:01:41ID:???
一方ロシアはページング機能を搭載したRepeaterコントロールを
ASP.NET AJAXを使って実装した
0769nobodyさん2009/08/05(水) 02:39:30ID:???
>>762
要件勝手に変えて何いってんだか

0770 [―{}@{}@{}-] nobodyさん2009/08/05(水) 09:24:53ID:???
>>758
ポストバックして一覧再描画してないって落ちじゃね?
0771nobodyさん2009/08/05(水) 11:29:00ID:???
SharePoint Server
Excel Services...
0772nobodyさん2009/08/05(水) 13:09:46ID:???
>757

普通、OWC考えないか?
0773nobodyさん2009/08/05(水) 21:03:42ID:???
>>757
つ jqGrid(JQuery Grid Plugin)
つ UltraWebGrid(NetAdvantage)
07747622009/08/06(木) 00:52:33ID:???
>>769
ハァ?
要件は全然変わってないだろ。馬鹿ですか?w
0775nobodyさん2009/08/06(木) 01:01:32ID:???
>見えてる部分だけデータを拾ってくるようにして、スクロールインした部分は随時データを拾ってくるように
って書いてなければ、勝手にそんな機能を実装してるわけで要件は変わってる
07767622009/08/06(木) 01:16:17ID:???
要件の定義と機能の設計の違いが分からない馬鹿しかいないの?
0777nobodyさん2009/08/06(木) 01:23:02ID:???
検索した時のスナップショットってのが必要かも知れんがな。
まあそれはおいといて早く作って見せてくれよ。
実装イメージでもいいぞ。
0778nobodyさん2009/08/06(木) 01:34:52ID:???
「要件」という言葉を、「(システム開発の)要件定義」のことだと、勝手に論理のすり替えして楽しい?

>>757は
「詳細設計から参加だから、もうどうしようもなかった。」って記述してるんだから、
すでに詳細設計書が存在してるわけで、この場合の「要件」とは、
その詳細設計書を実現するのに必要な条件のことでしょうよ。

>よう‐けん〔エウ‐〕【要件】
>1 大切な用事。「―のみ記す」
>2 必要な条件。「教育者としての―を満たす」
0779nobodyさん2009/08/06(木) 01:47:15ID:???
そもそも、ブラウザの画面をスクロールさせて、コントロールが表示エリアに入ったことをフックできるイベントなんてあったっけ?
仮に出来たとしても、cssで非表示させてるだけならhtmlのファイルサイズの削減にはならないから軽くならないし、
ポストするデータサイズも同じだし、むしろスクロールする度にJavaScriptのイベントが発生するから、
ベタに表示させるより重くなるんじゃね?

ASP.NET AJAXでスクロールするたびに動的にコントロールを生成するのなら、
初期に表示されるコントロールが少ないからhtmlのファイルサイズの削減にはなるけど、
スクロールさせるたびにサーバに問合わせてコントロールを表示させてデータを表示させるなんて、
物凄く遅くなるんでないかな。
さらにデータが変更されたテキストボックスが表示エリアから消えた場合、
それを復元する術がないから、非表示になったテキストボックスのデータも
いちいちサーバにポストバックして保存しないといけない。
そんなことするなら、ベタに5万個のテキストボックスを表示させたほうが軽くないか?
0780nobodyさん2009/08/06(木) 02:03:42ID:???
簡単に実装するなら <iframe> を縦に並べてスクロールインしたときにページ単位でロードするだけでいい。
お前にも作れるよ。
0781nobodyさん2009/08/06(木) 02:16:18ID:???
複数行にまたがって変更する場合どうすんの?
0782nobodyさん2009/08/06(木) 02:21:31ID:???
でそれはべたに作るより速いのかね?
0783nobodyさん2009/08/06(木) 02:30:15ID:???
50ページに分割したら最初にロードするのは1000個だけですむ。
遅くなる理由が見つからない。
0784nobodyさん2009/08/06(木) 02:31:02ID:???
onscrollでスクロールされたイベントは発生するが、
どのコントロールが表示状態になったかは取得できないな
従って、絵に描いた餅

Flashかsilverlightなら可能だと思うが
0785nobodyさん2009/08/06(木) 02:35:15ID:???
>>783
単にページ分けでいいじゃん
0786nobodyさん2009/08/06(木) 02:43:39ID:???
全件表示か、ページ分けしての表示なら問題ないが
1つのページに複数のページが表示されるのは機能的に問題

データはいつ削除されるか追加されるかわからないんだから、
最悪の場合、50ページすべての行に同じデータが表示される可能性がある
そして後からデータが追加されて51ページ目が発生した場合にも対応できない。
0787nobodyさん2009/08/06(木) 05:47:17ID:???
ページ分割というか、まあ1画面に表示する項目を絞れば早くはなるだろうな
後はAJAXなりで適当にスクロールしてるように見せかければいい


>>786
そういったことを防ぐために排他制御って考え方があるんだが
機能的に問題かどうかは、ロックがどうなってるかによる
普通のWEBアプリに見られるような楽観的ロックなら問題かもしれないが
適切なロックがあれば問題ない

そう考えると元の設計は、もしかするとロックするから
全項目を1画面に表示したいのかも知れない...と思ってみたがたぶん違うなw
0788nobodyさん2009/08/06(木) 08:19:08ID:???
楽観的排他制御じゃないロックなんて普通は最後の手段に近いけどな。
まずはセッションとかでどうにかならないか考えるだろ。
あと数を絞れば速くなるに決まってるなんて言ってるのがいるが、
ホントに試してみたのかい?
0789nobodyさん2009/08/06(木) 08:21:18ID:???
例えば一気に端から端までスクロールしてもまともに動くのか、
実は最初から全部読んだ方がスムーズだったなんてことはないのか。
07907622009/08/06(木) 09:46:36ID:???
>>778
詳細設計から参加、つーたら、普通は詳細設計書を書くところから参加という意味だろ。
馬鹿なの?死ぬの?
0791nobodyさん2009/08/06(木) 13:11:14ID:???
いいこと思いついた。スクーロルバーは標準のスクーロルバーじゃなくて、ボタンか何かを
配置して、画面上には常に固定のコントロールを配置。
で、スクーロル下をボタンをクリックしたら
txtbox2の内容をtxtbox1に
txtbox3の内容をtxtbox2に
txtbox4の内容をtxtbox3に
txtbox5には新規にDBから取得した内容を新規にセット
ってやれば、画面上には常に一定数のコントロールしか表示されないし、PostBackerの処理
も簡単で一石二鳥じゃね?
0792nobodyさん2009/08/06(木) 14:01:14ID:???
>>790
突っ込まれると思ったw
詳細設計時に存在するには内部設計書だな。すまんかった。

つーかいちいちプログラムと関係ないところのツッコミしかできないのかよ?
吐いた唾を飲み込むの?死ぬの?
唾飲み込むぐらいじゃしなねーけどwww
0793nobodyさん2009/08/06(木) 14:14:19ID:???
>>787
Webアプリで1画面表示する間、ずっとデータベースをロックしろとでも?
この場合、いつ最下部のページを表示する画面にスクロールかわからないから、
ページをみてる間はずっとロックかけてる必要がでてくるわけだが。
他人が使う可能性や、ブラウザのページの切り替わりの
可能性なんて考えたら、そんなロックは実用上不可能だろ。

結局、重複させない、または表示途中で削除されたデータに対応するには
クライアント側(ポストバックかクッキー)かサーバ(セッション)でデータを持ち続け、
最終的に楽観的ロックで確認するしかない。

>>791
2万行あったら最下部までたどり付くのに2万回クリックすんの?ww
そうなると100行単位とかのページ単位で切り替わるほうがいいんじゃね?
それでも200回クリックじゃつらいから、10ページ前に戻る、10ページ後に進む的な
ページングのボタンを設置したほうがいいんじゃね?
そうなると>>768で答えは既にでてる。
0794 [―{}@{}@{}-] nobodyさん2009/08/06(木) 15:33:22ID:???
ま、作る前にワーニング出さなかった君の負けだよ。

Ajax、XBAP、Silverlight、Flashなんでもいいから
ユーザビリティーの良いのに作り直す事だね。
0795nobodyさん2009/08/06(木) 15:40:39ID:???
キミちゃんと最初から読んでる?
0796 [―{}@{}@{}-] nobodyさん2009/08/06(木) 15:51:43ID:???
>>795
ああ、読んでるよ。
設計書通りに作ったんだろ。

設計書見た段階でこりゃ動かんわってわかってたんなら
その段階で何かするべきなんだよ。

ちゃんとせんから余計な後戻りが発生するんだ。
■ このスレッドは過去ログ倉庫に格納されています