【質問】ASP.NETスレ ..
99:95
09/09/17 01:07:19
>>96
>レイアウトを自由にカスママイズできる
レイアウトのカスタマイズなんてFormView以外でもカスタマイズできる
これはFormViewのメリットでも何でもない
>ナビゲーションは逆に使ってないな。GridView との連動パターンしかない。
ナビゲーションの真意が伝わってない気がするな。FormViewでレコードを移動するって話じゃないぞ
レコードが移動されたときに新しいレコードにバインドし直すって話だ
いちど、FormViewつかわないで一覧からカレント行取得して詳細表示するコード書いてみ
このコードを自動でやってくれるのはかなり楽
データ更新は、SQL書くのなんてパターン決まってるから難しくはない
(それこそ自動生成で8割まかなえるほどに)
ただ、ビジネスロジックのチェックはそうはいかんし
単純な更新でないと使えないってのが感想だ
>>97
作り方でどうにでもなるのはその通りなんだが、問題はその作りこみが
FormViewで不要や楽に実現できるようになるかどうかだろ
レイアウトの件はまあ同意だが、FormViewにもポトペタすればある程度自由にできるぞ
登録処理は、単純な更新に限れば楽なる
UPDATEの元値は、DataSet使わないならかなり有効な機能だと思う
1.1には単一レコードを想定したバインドコントロールはないんで、
その点でFromViewにはメリットはあるから、使えるとこなら使えばいいかと
逆にデメリットは、自由度が下がるってことか
それでもある程度コードかけばカバーできる範囲だと思う
100:nobodyさん
09/09/17 05:26:24
>>99
上のほうにナイスなたとえがあるけど、まさにその通りだと思ったな
FormViewは麺つゆ
ウドンやソバを作るのには便利だし美味しい
だけどいくら加工してもベースが麺つゆだから味が似てしまう(応用度が低い)し
麺つゆだから酢醤油や砂糖醤油にはならない。
ポトペタの醤油は手間はかかるがより多くの料理に利用できる。
こんなとこだろ
101:nobodyさん
09/09/17 10:42:52
ウェップフォーム上の全チェックボックスのチェックをオフにしたいんですが、方法は
ありますでしょうか?repeaterの中にあってIDが固定じゃないのでべた書きすることが
出来ません。
102: [―{}@{}@{}-] nobodyさん
09/09/17 12:15:57
>>101
サーバ側でならRepeater.ItemDataBound イベントで処理する。
クライアント側でならJavaScriptで走査して処理する。
103:nobodyさん
09/09/17 15:36:36
チェックボックスOFF程度でバインドし直すのもな。
俺ならサーバー側もforeachで回す。
104:nobodyさん
09/09/17 16:26:00
なにをみてforeachで輪せばいいんですか?
105: [―{}@{}@{}-] nobodyさん
09/09/17 17:23:14
>>104
Repeaterの中をIDでFindControl
106:nobodyさん
09/09/17 23:30:47
FindControlでもいいけど、コントロール名を
ハードコーディングしたくない俺は大体再帰で回す。
protected void button_Click(object sender, EventArgs e) {
clear(this.Repeater1.Controls);
}
protected void clear(ControlCollection controlCollection) {
foreach (Control control in controlCollection) {
if (control.GetType().Equals(typeof(CheckBox))) {
((CheckBox)control).Checked = false;
}
if (control.HasControls()) {
clear(control.Controls);
}
}
}
107:nobodyさん
09/09/18 05:33:22
type='reset'なhtmlボタン配置したらどうだろうか
まあ俺なら、ページ出力時にクライアントサイドのスクリプトを動的に生成して出力しとく
チェックボックスオフにするためだけにポストバックさせたくない
今ならAjaxでやるのもありなのかもしれん。updatepanelだっけ?
その場合、Repeaterの中全部更新されるよね?
108:nobodyさん
09/09/18 09:52:05
>>107
CheckBox以外のControlsもあったらどうすんの?
109: [―{}@{}@{}-] nobodyさん
09/09/18 10:44:13
>>107
JQueryとか使うと楽ちんだわな
110:nobodyさん
09/09/18 15:09:35
>>108
その場合はその項目もリセットされるわな
それがまずいかどうかは>101の判断だろう
まあ、一番楽な方法としてリセットボタン考慮する価値はあるかと
111:nobodyさん
09/09/18 15:15:51
>type='reset'なhtmlボタン
そういえばそんなのもあったな。すっかり忘れてたわ。
112:nobodyさん
09/09/18 19:03:46
俺もClientスクリプトに一票
113:nobodyさん
09/09/19 03:13:45 ZjH1gzNN
今のプロジェクトはASP.NETで作ってるんだが、どうしても必要なのでJavaScriptも死ぬほど書いてる。
自分で実装してて思うんだが、こんなの俺以外に絶対に保守出来ない。
つーか俺自身でも3か月後には多分保守出来ないw
難しいシステムを無理やりWebで作るのはほんとアホとしか思えないぜ。
114:nobodyさん
09/09/19 04:39:22
うちは基本的にクライアントスクリプトの自前書きは禁止だなぁ@2.0環境
5行で書ける処理でもサーバー側でできるなら、そっちでやってもらってる。
>難しいシステムを無理やりWebで作るのはほんとアホとしか思えないぜ。
特に帳票とか帳票とか帳票とかな。まずデザインで死ねる。
更に、あたかも関数だらけのExcelのような動作を求められたりして死ねる。
入力項目50個超で1つ入力すると各項目を色々再計算/再描画とか言ってくるけど、
50個AutoPostback = trueな状態にするとブーブー言ってくるのは確定的に明らか。
こうなるとJavaScriptの出番になってしまい>>113みたいになって死ねる。
で、仕様変更があった時にJavaScript側で更に色々判定する必要がでてきてまた死ねる。
この経験からうちではクライアントスクリプト禁止令と、
「出来る出来ないで言えば出来ますが…は、ハッキリNoと言う」という
超基本的なことを徹底するようになった(´;ω;`)
115:nobodyさん
09/09/19 15:13:10
教えて下さい。
コードビハインドで作られてるんですけど、3つのaspxが指すコードが全て同じものを指してる
んですが、これっていいんですか?まあ動けばOKという格言もありますが。
Form1.aspxとForm2.aspxとForm3.aspxが全部FormCom.aspx.csを指してます。
ちなみにFormX.aspxは3つとも微妙に違っていて、載ってるコントロールなんかも違います。
その辺はFindcontrolしてnullかどうかをちゃんとチェックしてるようなんですが。
でもまあ、通常は基底クラスに全部詰め込んで、あとは各画面に対応するクラスを継承するのが
正しい方法だと思うんですが。
116:nobodyさん
09/09/19 17:07:25
>>115
>3つのaspxが指すコードが全て同じものを指してる
この発想はなかったわ。どう考えてもNGだろ。
117:nobodyさん
09/09/19 19:01:05
メリットが思いつかないな
118:nobodyさん
09/09/19 19:39:44
メリット
単純にコード記述量を減らせる。つまり試験工数も減るし、バグも減る。いい事尽くし。
3つのパターンで画面入力させるんだけど、画面上の項目が微妙に違う。(画面上の100項目の
うち10項目ほど)無論、3パターンを1画面でまかなって、区分によって項目のVisibleを制御
するのでもいいんだけど、いっそ3画面分のaspxを用意して、裏のcsは共通にしてしまおう、
と。デザイン指定が超絶シビアなので、Visibleで出したり隠したりとかしたくなかった。
基底クラスを継承、の場合でも、例えばボタンをクリックした場合のイベントはやっぱ3画面
それぞれ必要だよね。csが1つならとことんコード量を減らせる訳で。
まあ、「コード量が少ない」と「メンテしやすい」は等価じゃないけど。
119:nobodyさん
09/09/19 19:40:53
>>116
すいません、NGの理由ってなんでしょうか?
120:nobodyさん
09/09/19 20:00:26
自己フォロウ
開いてる画面によってはコントロールがあったり無かったりするので、不用意に
TextBox1.Text = "ほげ〜";
とか書けなくなる。全画面共通で必ず存在しているコントロールじゃない限り、一々FindControl
でコントロールを探さなきゃならない。
デメリットってこれぐらいだと思うンすけど。
121:nobodyさん
09/09/19 21:09:11
余りに阿呆らし過ぎて説明する気もおきん。
コボラ相手にしてる気分だ。
いいと思うならやればいいんじゃないンすか?
122:nobodyさん
09/09/19 21:16:18
>>121
ページが最終的にコンパイルされる仕組みを理解していれば、特に何の問題も無いわけだが?
理解出来ないなら黙ってた方が無知を晒さずに済むと思われ。
123:nobodyさん
09/09/19 21:22:24
ここのページに個別にJavaScriptを設定したくてもできなかったりとか
コントロール名を変更しても反映されなかったりとか
不必要なイベントハンドラメソッドが増えるとか
インテリセンスが意味をなさなくなってバグの温床になるとか
124:nobodyさん
09/09/19 21:32:36
それは、そういうデメリットもあるから、メリット・デメリットを天秤にかけて考えてね。
ってだけの話で、やってはいけない。という理由にはならない。
でもまあ、個人的には動けば正義だと思ってる
ちなみに「不必要なイベントハンドラメソッドが増えるとか」これだけ意味不明。
125:nobodyさん
09/09/19 21:45:24
>ちなみに「不必要なイベントハンドラメソッドが増えるとか」これだけ意味不明。
ボタンの数だけイベントハンドラメソッドが増えるでしょうが。
各ページに5個のボタンがあって、それぞれ別動作してたら15個のメソッドが存在することになる。
>でもまあ、個人的には動けば正義だと思ってる
保守性が下がるからやってはいけない
他人が見てもわけわからないことになるからやってはいけない
重複させるとインスタンス時に余計なサーバ資源を消費するからやってはいけない。
インテリセンスの動作が無駄になりバグの温床になるからやってはいけない。
エラー発生時にハイライトされた行が、どのページのエラーなのか一別しか分かりにくいからやってはいけない。
ページ初期化時に表示ページとは関係無い初期化にリソースが消費されるのでやってはいけない。
>それは、そういうデメリットもあるから、メリット・デメリットを天秤にかけて考えてね。
>ってだけの話で、やってはいけない。という理由にはならない。
デメリットのほうが圧倒的に大きいから「やってはいけない」ということでしょ。
単に自分がやってることを否定されたくないから、難癖つけて認めさせたいようにしか見えない。
126:nobodyさん
09/09/19 21:46:50
各ページに5個のボタンがあって、それぞれ別動作してたら15個のメソッドが存在することになる。
↓
3枚の各ページに5個のボタンがあって、それぞれ別動作してたら15個のメソッドが存在することになる。
127:nobodyさん
09/09/19 21:55:05
>126
普通、そういうケースではさすがにこんなヒネたコードは書かんだろ常考。
各画面にボタンが5個あって、ページに関係なく処理が同じ(前画面に戻るとか)
↓
15個のメソッドが必要なところを5個で済む
ていう事を言いたいんジャマイカ?
128:121
09/09/19 22:11:27
>>122
アホかw本来別にすべきものをまとめて、
何がコンパイル時には一緒になるからだ。
App_Code以下が単一dllになるからって、
1クラスに全部まとめて書くか?書かないだろ?
なぜだ?責務が異なるものは、分けるのが当たり前だからだろ?
ある画面専用の処理が追加になったらどうするんだ?
他の画面からしたら、全く関係のない処理があるクラスを実装してることになるぞ。
リファクタリングを一回でもやったことがあれば、
それがどんなにアホなことか分かるよな。
月日が経って、そのクラスを実装するaspxが増えたらどうなる?
その度にif文やFindControl判定が増えていくのか?
なんとも素晴らしい設計だな。
仕様変更時には影響範囲が特定できず、
ある画面だけの修正なのに、処理が重なっているために
全画面の動作検証を行わねばならなくなったりしないか?
つか、高凝集密結合が良くないなんて、学生でも分かるだろ?
で、業務上、そういうことにはならないように気を使ってますとでも言うのなら、
先に述べたように、お好きにどうぞってこった。
129:nobodyさん
09/09/19 22:26:02
多分元の質問者は「技術的に問題ありますか?」って事を聞きたいだけだと思われ。
そういう意味では「注意深く作るなら、別に問題はない」が回答。
ただし「将来的なメンテとか拡張とか修正とか考えると、3画面分まとめて1ソースに
すると身動き取れなくなったりしない?止めとけば?」ってのが周りのアドバイス。
130:nobodyさん
09/09/19 23:06:31
>>127
>ちなみにFormX.aspxは3つとも微妙に違っていて、載ってるコントロールなんかも違います。
って言ってるぞ。
131:nobodyさん
09/09/20 06:26:46
知識のない奴が一人前に提案して
不備を指摘されると逆ギレ
誤りを認めたくないから強弁するってガキの流行なんか?
132:nobodyさん
09/09/20 14:01:24
>>130
で?
133:nobodyさん
09/09/20 14:03:21
俺が認めない方法は許さない。
って馬鹿の粘着キモイ
>129 で出てる回答が全て。あとは自分で判断しろってことで終了。
134:nobodyさん
09/09/20 15:36:43
>>133
技術的に問題があるかどうかなんて聞いてないよ
本人は技術的には問題ないことを理解した上で、メリットデメリットの話をしてるんだから。
技術的に問題無いことを理解している発言は>>122でしてる。(技術的に)何の問題もないと。
メリットとデメリットの話をしようとしているのは>>120を見れば分かる。デメリットうんたらかんたらと。
135:nobodyさん
09/09/20 16:07:08
エスパー登場
136:nobodyさん
09/09/20 16:48:16
なんか、ある事例を今の我が事のように感情移入してしまう人が居ますが、
その3画面での共用する方法はある意味、仕組みを熟知して使い倒してますなw
ネイティブアプリでの共有ライブラリ、DLLの様ように。
禁止事項ではないから、開発&保守が効率的であればそれも選択肢としてアリだと思う。
137:nobodyさん
09/09/20 17:05:18
熟知しての実装なのか、無知ゆえの実装なのかはともかく(後者っぽいけど)、ケースに
よってはそういう手もあるのかと知ってちょっと感心した。
ビハインドコード共有!そういうのもあるのか
みたいなw
機能的に全く完全に差異がないけど、デザイン的にどうしようもない(ある仕入先と別の
仕入先で全く異なるデザインの画面)ケースなんかでは有効かも。
138:nobodyさん
09/09/20 17:09:01
>なんか、ある事例を今の我が事のように感情移入してしまう人が居ますが、
4:主観で決め付ける
>ネイティブアプリでの共有ライブラリ、DLLの様ように。
6:一見関係ありそうで関係ない話を始める
>禁止事項ではないから、開発&保守が効率的であればそれも選択肢としてアリだと思う。
1:事実に対して仮定を持ち出す
10:ありえない解決策を図る
12:決着した話を経緯を無視して蒸し返す
というか自演乙
139:nobodyさん
09/09/20 17:54:42
というか、aspxのページを新規生成すると、
ロジックを記述するパーシャルクラス(ページなんちゃら.aspx.cs)と、
コントロールなどのメンバ変数を宣言する.aspxが自動生成するパーシャルクラスの
二つが作られるわけでしょ?
後者はVSがページ毎に自動生成するからaspxと1対1になってる
コードビハインドは、そのメンバ変数を参照してる(からインテリセンスで補完してくれる)わけで
いくらpageのインスタンスを所有していて、そこからFindControlで操作したいコントロールを見つけられるとしても
メンバ変数として宣言されてるコントロールを一切使用しないなんて、
asp.net以前にオブジェクト指向の設計として間違ってるような気がするのは俺だけ?
クラスで例えれば、
メソッド内では決して参照しないまったく関係無いコントロールのインスタンスをメンバ変数として保持し、
メソッド内で操作したいコントロールのインスタンスは、すべてメソッドの引数として得て操作してるような感じ。
じゃあ、メンバ変数として所持してるインスタンスってなに?
その都度無駄にコントロールのインスタンスを生成するの?ってな感じになると思うんだ。
技術的に問題ないとか、問題なければやってもいいだろとか別次元の話だと思うんだけど。
動けば害はないし、禁止されてないからということで、1行ごとにThread.Sleepをしかけまくるみたいな。
140:nobodyさん
09/09/20 17:58:03
君さ、もう「宗教上の理由で俺は断固として認めない」とでも言えば?('A`
141:139
09/09/20 18:05:49
なんだかわからんが、初の書き込みなんだが
というかで始めたのがまずかったか
142:nobodyさん
09/09/20 18:13:57
すまんが
技術的な見地
思想的な見地
メンテや修正といった見地
で分けて議論?してくれ。じゃないと収束せんだろ。
>技術的に問題ないとか、問題なければやってもいいだろとか別次元の話だと思うんだけど。
じゃあ技術的には問題なし、思想的に不可。でいいじゃん。
143:nobodyさん
09/09/20 18:38:22
>>142
いや、技術的に問題ないわけないじゃんね。
それ以前の話。
無駄なあえてわざと無駄な変数宣言をしてインスタンスを生成することは
動くけど技術以前の問題だろ?
1行ごとにSleepかませたり、ところどころ無駄な変数を宣言してインスタンスを生成したり
技術とか思想以前の問題
144:nobodyさん
09/09/20 19:12:59
どうしても「俺が認めないものは認められない」つー馬鹿がいるな。
1行ごとにsleepかけようが、ASP.NET的には全然OK。
でもそういう実装が実際に許されるか否かは、そのアプリの目的に依存するんで可否を決
めようがない。
InProcで動いてる時にSessionに1GBのobjectを突っ込むのも、ASP.NET的には問題なし。
でもほんとにそんなことをしていいかどうかは求められてる仕様や環境次第。
技術以前の問題だっつーなら、技術以前の問題と技術的な問題に切り分けろよ。
145:nobodyさん
09/09/20 19:58:30
>>144
>どうしても「俺が認めないものは認められない」つー馬鹿がいるな。
お前のことか?
>1行ごとにsleepかけようが、ASP.NET的には全然OK。
>InProcで動いてる時にSessionに1GBのobjectを突っ込むのも、ASP.NET的には問題なし。
アホかよw
>そのアプリの目的に依存するんで可否を決めようがない。
>ほんとにそんなことをしていいかどうかは求められてる仕様や環境次第。
ほとんど否だろ?もしくはしないほうが望ましいとされるだろうな。
自分に有利な条件を想像すんなよ。
「認められる仕様があるかもしれない」って都合の良い言い方だよな。
90-10ぐらいでほとんど認められない状況を、可否は判断できないとして
強引に50-50まで戻せるんだからw
なんで、そこまでしてむりくり正当化して自分の無知を認めたがらないのかね
146:nobodyさん
09/09/20 20:04:08
>>144
その意味不明な改行の仕方といい自演バレバレですよ?
147:nobodyさん
09/09/20 20:15:01
ID出ない弊害だな。
148:nobodyさん
09/09/20 20:39:04
IDなんていくらでも変更できる
自演の中身は文章で判断するしかない
偉い人にはそれがわからんのですよ
149:nobodyさん
09/09/20 21:09:34
ぶっかけ秋田。どっちでもいい。
150:nobodyさん
09/09/20 21:19:00
>>148
こういうとき使うのは逆。
151:nobodyさん
09/09/20 23:35:57
>>145
とりあえずお前が、技術的に問題ない という日本語の意味を理解してないのは理解した
152:nobodyさん
09/09/21 00:39:40
ここまで全部俺の自演
153:nobodyさん
09/09/21 11:40:40
>>151
とりあえずお前が、日本語を理解してないのは理解した
154:nobodyさん
09/09/21 14:04:37
複数のaspxが同じcsを指すのって普通に使ってたんだが・・・
褒められた作りじゃないにしても、いまの所これが原因で動作がおかしくなったとかは無い。
155:nobodyさん
09/09/21 14:16:06
>>154
>褒められた作りじゃないにしても、
いや、だからみんなこれを言ってるんだろ
。
156:nobodyさん
09/09/21 15:20:59
なに?またループさせたいの?
褒められた作りじゃないが、有りといえば有り。
↓
いや無しだろ。動く動かない以前の問題だ
↓
最初に戻る
157:nobodyさん
09/09/21 16:47:03
TableAdapterを使う場合にトランザクションかけられないのが
ものすごく不便に感じていたがReflection使えばよかったんだな。
URLリンク(weblogs.asp.net)
ちょっと無理矢理な気もするが、自前で全部用意するよりはかなり楽になりそうだ。
今まで「TableAdapterつかえねー」の一念だけで、ろくに調べもしなかった自分に反省。
個人的にはこれで使わない理由はなくなった。ちょっと試してみよう。
158:nobodyさん
09/09/21 18:47:39
必要ないインスタンスが生成されるのを「有り」とする人が多いのに驚いた
>>157
TransactionScope使えばかけられるんじゃないの?
URLリンク(blogs.msdn.com)
リフレクションは便利だけど、遅いしコンパイルのチェックが入らないから美しくない
最低減で使う分にはいいけど、メソッドの呼出とかで使いまくってる奴をみると
C#という静的言語を一体なんだと思っているのかと小一時間チクビ舐めてやる
159:nobodyさん
09/09/21 18:51:28
>>156
俺も無しに一票だな
今、テレビ見てたんだが、「第二音声では英語で実況しています」というテロップが日本語で入っていた
つまり、こういうことだ
日本語でアナウンスしてしまったから、英語で聞きたい人に伝わらないけど、
いちおう第二音声で実況しているから有り
↓
いや無しだろ。英語で実況しているしていない以前の問題だ。
↓
最初に戻る←いや戻らない戻らないwww 英語でテロップだせよww
160:157
09/09/21 18:52:15
>>158
TransactionScopeは、むかーしになんかの理由で
使えないなーって判断した記憶があるが忘れたな。
もう一回調べてみる。ありがとう。
161:nobodyさん
09/09/21 19:04:48
MS-DTCが使えないとか、サーバの関係かな?
使えると便利なんだけどね。TeansactionScope。
結局なんだかんだいって、SQLサーバにすべてクエリ登録して、
アプリ側ではストアドだけ呼び出すのが正しいのかなという気がするよ。
162:nobodyさん
09/09/21 22:11:19
駄目な相対化の例をこんなとこでも見るとは・・・
163:nobodyさん
09/09/22 00:49:26
いつか誰かが突っ込むだろうと思ってずっと待ってんだけど、なんで誰も指摘しないの?
馬鹿っぷりを曝け出してる様をみてニヤニアしてんの?
つーわけで
不 要 な イ ン ス タ ン ス っ て 何 ?
TextBox1,2,3があるページと、TextBox1,3,4があるページの両方が同じ分離コードをさしてる
として、片方のページを表示してるとTextBox1,2,3,4のインスタンスが出来るとでも思ってる
の?馬鹿なの?死ぬの?
164:nobodyさん
09/09/22 11:06:33
>>163
ASP.NETの勉強をし直してからまたおいでね
165:nobodyさん
09/09/22 12:44:19
>>139
> メンバ変数として宣言されてるコントロールを一切使用しないなんて、
> asp.net以前にオブジェクト指向の設計として間違ってるような気がするのは俺だけ?
逆だろ。
自動生成されたメンバ変数を使いつつ、コードを共有したいから、
共通の基底クラスを継承するのではなく、コードビハインドを共有するんだろ。
共通の基底クラスを継承する場合は、
基底クラスでは全てのコントロールをFindControlしなければならないが、
コードビハインドの共有なら、共通のコントロールに限り、メンバ変数が使える。
166:nobodyさん
09/09/22 13:11:19
>>163
彼の主張する不要なインスタンスについては>>139に書いてある内容だと思う
>ロジックを記述するパーシャルクラス(ページなんちゃら.aspx.cs)と、
>コントロールなどのメンバ変数を宣言する.aspxが自動生成するパーシャルクラスの
>二つが作られるわけでしょ?
バージョンもWEBサイトかWEBアプリかも特定せずにメンバ変数を宣言するパーシャルクラスが自動生成されてるとか
パーシャルクラス(宣言のコード)なのにクラスが二つ作成されるとか
>コードビハインドは、そのメンバ変数を参照してる(からインテリセンスで補完してくれる)わけで
コードビハインドだと勝手にメンバ変数参照してるとか
メンバ変数参照してるからインテリセンスがきくとか
>メソッド内では決して参照しないまったく関係無いコントロールのインスタンスをメンバ変数として保持し、
必ず存在しているコントロールじゃない限り、一々FindControl(>120)って発言を無視してるとか
もうね、>>164のアンカーは自分に向けとけとしか
167:nobodyさん
09/09/22 14:17:50
不要なインスタンス云々を言ってる奴って、型付DataSetとか絶対認めない・使わないのかなw
コード内でDataColumnsを定義するのがメンドクセーって理由だけで型付DataSetを使うと、使わない
メソッドが腐るほど自動生成されるよね。それって無駄だから型付DataSetは使用禁止!ってル
ール?w
168:nobodyさん
09/09/22 15:44:08
なんか急に関係ない話し始めたやつがいるぞw
169:nobodyさん
09/09/22 16:40:24
そもそもイミフな意見を、煽らんがために
エスパー解釈するから余計面倒なことになってるな。
170:nobodyさん
09/09/22 17:42:14
流れを読まずに質問してみる。
ASP.NETが生成するhtmlが30MB位になって、クライアントPCにダウンロード完了してから
実際にブラウザに表示されるまで30分ほどかかるんだけど、なんか上手い改善策ある?
サバーサイドの処理が重い訳じゃないので、どうしていいか分からなくて。
171:nobodyさん
09/09/22 17:59:03
30分ワロタw
画像含まずにhtmlだけで30MB?
いったいどんなシステムなんだよ。
ページ分けるしかないでしょ
必要な時に、必要な分だけしぼりこんで表示。
172:nobodyさん
09/09/22 19:32:16
>>165
>自動生成されたメンバ変数を使いつつ、コードを共有したいから、
>共通の基底クラスを継承するのではなく、コードビハインドを共有するんだろ。
逆だと思うのはコードの共有を目的とする観点からみてるから「逆」ってだけでしょ?
ページごとに、そのページが所有するコントロールの変数を
メンバ変数としてVisualStudioが宣言してるんだから、
VSつまりマイクロソフト的には1ページ1コードビハインド記述ファイルを前提ってことじゃないのってこと。
>パーシャルクラス(宣言のコード)なのにクラスが二つ作成されるとか
クラスが二つなんて書いてないじゃん。作文?
>必ず存在しているコントロールじゃない限り、一々FindControl(>120)って発言を無視してるとか
だから必ず存在している場合は、メンバ変数として宣言されてるからそれを参照できるわけでしょ?
ない場合があるからFindControlしてるわけで。
>メンバ変数参照してるからインテリセンスがきくとか
インテリセンスが聞くのは、コントロールをメンバ変数に宣言してるパーシャルクラスを
VSが自動生成してるからじゃないの?違うなら俺の間違いだな。すまなかった。
>もうね、>>164のアンカーは自分に向けとけとしか
>>164は俺じゃないよ
173:nobodyさん
09/09/22 19:35:00
やっぱそうだよなぁ。もはやページングしか残されてないよなぁ。
画像含まず、TextBoxとDropDownListとLabelとCheckBoxだけで構成されてるのに、htmlソース
で30MBとかいきます。ページングにすると更新のタイミングとかウザイんですよねえ。
俺オワタ
174:nobodyさん
09/09/22 19:41:58
>>166
>>メソッド内では決して参照しないまったく関係無いコントロールのインスタンスをメンバ変数として保持し、
>必ず存在しているコントロールじゃない限り、一々FindControl(>120)って発言を無視してるとか
それから例えとして書いてるのに、それを本筋に当てはめて見当違いのレスするのは止めようよ。
「クラスで例えれば〜という感じになると思うんだ。」って書いてるじゃん。
そういうように書いてるぐらい「アホ」なやり方をしているっていうわけで、
そういうような仕組みでASP.NETが動いてるなんてかいちゃいないだろ?
>TextBox1,2,3があるページと、TextBox1,3,4があるページの両方が同じ分離コードをさしてる
>として、片方のページを表示してるとTextBox1,2,3,4のインスタンスが出来るとでも思ってる
>の?馬鹿なの?死ぬの?
これも同じ。だれも作られるなんて言ってないだろ?
メンバ変数で宣言されてるのにそれを参照しないコードの書き方がおかしいんじゃないのっていってんの。
つまり、おまえの批判はこういう的外れなことをいってるわけ。
酒井法子って覚醒剤やってたんだな・・・
これで逮捕されてもう芸能界じゃやっていけないだろ
↓
ほんとだな万引きで捕まったぐらい恥ずかしいよな
↓
お前バカじゃねぇ?酒井法子は万引きで捕まったんじゃねーよ。
ひょっとして万引きで捕まったとおもってんの?バカなの?死ぬの?
こんな感じ
175:nobodyさん
09/09/22 19:59:09
シルバーウィーク進行中
176:nobodyさん
09/09/22 20:18:47
>>172
クラス2個作られるのが俺の作文だっていうなら
>ロジックを記述するパーシャルクラス(ページなんちゃら.aspx.cs)と、
>コントロールなどのメンバ変数を宣言する.aspxが自動生成するパーシャルクラスの
>二つが作られるわけでしょ?
を解説してくれ
そして、
>必要ないインスタンスが生成されるのを「有り」とする人が多いのに驚いた
の必要ないインスタンスとは何か説明してくれ
177:nobodyさん
09/09/22 20:22:23
>>173
こないだの1000だか3000だか5000だかの
大量のコントロールを埋め込もうとしてた人?
178:nobodyさん
09/09/22 22:49:18
>>173
1000とか3000とか5000とかそんな桁じゃないんで違う人です。1桁違う。
5万コントロールとか10万コントロールとかそういう数なんで。
179:nobodyさん
09/09/22 23:41:39
もはや御愁傷様としか…w
180:nobodyさん
09/09/23 00:08:00
>>178
何をやってるのか、ぜひ教えてくれ。 面白そうだ。
30分かけて表示されたページは、まともに動くの?
あと、 >>172 >>176 メールでやれ。
181:nobodyさん
09/09/23 00:42:51
複数のaspxのbehind-codeが共有されてるのに拒否反応示す人が多いのに驚いた。
幾つかのProjを見てきたけど、使ってるところは多い。別に禁断の技とか行儀の悪い実装
と言うことも無く、現場によっては普通に使われるテクニック。まあ、有効な局面が限られる
と思うが。
ちなみに「VisualStudio様がデフォで作ってるんだからそれが前提」とか書いてるけど、VS
が吐き出した自動コードをあとから手で書き換えるとか、半ば当然だと思うが。VS様はそ
んなに柔軟でもないし、賢くもない。
182:nobodyさん
09/09/23 00:52:11
>>181
いろいろ書きたくなっちゃうのは分かるけど、もういいから。
183:nobodyさん
09/09/23 02:36:28
>>170
設計者氏ねとしか言いようが無いな
184:nobodyさん
09/09/23 04:15:41
ASP.NET AJAXでWEBアプリケーションを開発しています。
JQueryのリッチなUIも交えて、開発したいのですが、以下のSilverLightの例のように、
HTML要素クリック時、あるいは、JavaScriptのメソッドからCSファイルのC#の
メソッドを実行するようなことはできないのでしょうか?
URLリンク(www.atmarkit.co.jp)
当方、かなり初心者なので、無茶苦茶な質問をしているかもしれません。
185:nobodyさん
09/09/23 05:33:46
>>176
>を解説してくれ
クラスは一個
その一つのクラスのパーシャルクラスが2個
>の必要ないインスタンスとは何か説明してくれ
必要のないインスタンスは必要のないインスタンスだ
それ以上でも以下でもない
動作するからといって、1行ごとにSleep噛ますのは意味ないよな?
それと同じように、1行ごとに必要ないインスタンスを生成しても意味ないっていってんの。
換言すれば、「動作するからといって1行ごとにSleepいれるのをアリとする人が多いのに驚いた」でもいいぞ?
ただし技術的に問題ないって主張してる人は、Sleep噛ましても動けばokらしいよ
Sleep噛ましても問題ないぐらいだから、1行ごとに不必要なインスタンス生成するぐらい余裕で許容すると思うけどww
>>144に書いてある。
186:nobodyさん
09/09/23 05:53:29
>>184
HTML要素がOnClickイベントを持っていて、フックしてClientScriptを実行できるなら
一番簡単なのは、ポストバックイベントを発生させることのできるコントロールを設置して
それをJavaScriptで実行させるのが一番簡単。
例えばボタン、ハイパーリンクとかをObject.Click();すればいい。
必要ならスタイルシートで背景と同化させるとか、見えなくさせたり。
まじめにやるならこのへんで
URLリンク(msdn.microsoft.com)
187:nobodyさん
09/09/23 08:31:09
>>181
具体性の無いレスはいらないから
188:nobodyさん
09/09/23 15:01:49
メールでやらないなら、IDだしてやってくれないかな。NGすっから。
189:nobodyさん
09/09/23 16:01:00
>>185
いい加減空気嫁
190:nobodyさん
09/09/23 16:57:49
>>186
おお!!
まさに知りたかったことです。ありがとうございます。
ModalPopupExtenderのときもダミーコントロールを使用した経験がありますが、
結構ダミーとして使うことってあるんですね!!
191:nobodyさん
09/09/24 14:23:39
IEだと問題なくて、FirefoxだとLinkButtonを押してもPostBackされないのは、どこを直せば
対応出来ますか?
以前の案件ではIE/FF/Opera/Safari/Chrome全部で動いてたはずなのに、今作って確認したら
IEでしか動かない('A`
192:nobodyさん
09/09/24 14:39:55
>>173
データベースならDataSet、固定のデータならArrayを持ち回りすれば更新関係が楽になるんじゃない?
DataSet、ArrayはSerializableだったはずだったから、これをセッションで持ってて
これを元にページングして表示し編集させる。
最後に更新ボタンがあって、これをクリックすると、それまで編集されたデータを一斉に更新するとか。
つまりページングや編集は、セッションで持ってるデータに対して行って、
最後に更新ボタンを押した瞬間に、編集された行のみ必要なら整合性チェックして保存していくような感じで。
193:nobodyさん
09/09/24 14:41:20
>>191
まずLinkButtonだけを設置したテストページでポストバックしないかどうかをチェックして。
194:nobodyさん
09/09/25 11:15:43
要件で定義されてる上限まで行数増やしてページ表示させたら、ページ上のコントロールの
数が16万超とかマジでどんだけーw
12時間経ってもまだ入力出来る状態にならないw
>>192
ページングも案の一つだったんですが、グーグルクルムが思った以上に軽いんで、もしかす
ると「IEで重いようならクルム使ってね」で逃げるかも。
195:nobodyさん
09/09/25 12:17:35
>>194
どうしても大量のデータ一覧表示しつつ、ぽこぽこ書き換えたいなら、
1レコード毎の書き換えが可能ならば、表示はテキストのみにして、行のクリックかなにかで入力できる形にjavascriptで書き換えて、入力完了したら
行ごとにajaxかなんかで書き換えするようにするかなぁ。
196:nobodyさん
09/09/25 13:02:30
>>194
ASP.NET vs 人間、ストレステストのネタとして最適ですね。
197:nobodyさん
09/09/25 19:58:58
>>194
IEは</table>が来るまで描画しないと思うので、
全体を一つのtableで囲むのを止めたらどうだろう
そしたら送られてくるhtmlごとに上から順番に描画してくれると思う。
ASPのほうでも、その都度、ブラウザに送信するとかの設定も必要だったはず。
198:nobodyさん
09/09/25 20:31:25
>>197
一番外側に大きなTABLEタグがあって、それはもう削除し様が無いのです('A`
ところで、この巨大なGRID形式の入力ページを、最初は市販のコンポーネントを買って実現し
ようか迷ってたんです。Grea○CityのSPR○AD .NET3J
Repeaterでひたすら自分でクルクル輪姦してhtmlを生成するのとどっちがよかったんかなぁ。
初めて使うコンポーネンツで躊躇したのと、軽量シンプルなhtmlを吐き出すのはrepeater使用
時だろうという推測で結局コンポーネントは使わなかったんですが、実は使ってた方がレスポ
ンス向上してたのかなぁ。こればっかりは今でも分かりません。
199:nobodyさん
09/09/25 20:44:18
>>198
今は自前でResponse.Writeなりしてるってこと?
想像だけど、Repeaterのほうが遅いと思う。
何万件とかなら、どんなコンポーネントを使っても快適とかはないと思うよ。
数が変化するなら、アプリで作っても通信だけで相当な時間がかかると思うし。
こうなったら、エクセルに出力させて編集させて、
今度はCSVファイルをアップロードして登録とかにしたら?
200:nobodyさん
09/09/26 08:44:34
>>198
GrapeCityのサイトでデモ使ってみたことある?
うちでは超遅かったよ
201:nobodyさん
09/09/26 15:17:01
久しぶりにきたが
まだ大量のコントロール使ったときの話してるのか?
ところで、asp.net のワーカープロセス(aspnet_wp.exe)の更新がきてるが
修正内容がまだわからんな。
しばらくしたら KnowledgeBase に載るとは思うが。
URLリンク(support.microsoft.com)
202:nobodyさん
09/09/26 19:51:06
>>201
今ホットなのはコードビハインダー
203:nobodyさん
09/09/26 20:15:29
おまいら、ドメインモデルどうですか。
おいらはまだ勉強中なので、ドメインモデルが何かすらきちんと説明できませんが。
↓ASP.NETでやってる人もいますよ
ドメインモデル VS トランザクションスクリプト
スレリンク(php板:42番)
204:nobodyさん
09/09/26 23:49:54
asp.netでのドメインモデルってやりにくくないかえ?
WebServiceありのサーバサイドありのJavaScriptでドメインモデルってやってられねーって感じ。
更にAJAXなんて入ってきたら設計で死ねるw。
VirtualBoxのソースを読んでても思うけど「管理大変そう」w。
205:nobodyさん
09/09/28 04:18:26
マスターページについて質問です。
ある子ページでのみ必要なcss, jsがあるのですが、
マスターページ自体をいじることなくインポート出来ないでしょうか。
マスターページのheadタグ内にcontentPlaceHolderを置くことで、
子ページからhead要素にアクセスすることは出来ましたが、
これだとビルドの度に警告が表示されて鬱陶しく感じます。
206:nobodyさん
09/09/28 08:03:54
マスターページを入れ子にするとか?
207:nobodyさん
09/09/28 09:14:36
警告を無視する。
CやC++の仕事の時は警告が1件でもあったらうるさく言われてたけど、C#は基本は警告無視。
208:nobodyさん
09/09/28 13:07:10
コードで.jsファイルインポートしても警告でるっけ?
ClientScriptBlockほげほげとかいうやつ
209:nobodyさん
09/09/28 17:14:16
>>205
>ビルドの度に警告が表示されて
普通にVS2008でマスターページ追加すると<head>の中に初めから
ContentPlaceHolder設置されてるんだが、どんな警告がでるんだ?
210:205
09/09/28 18:58:14 Nc4wliQp
VS2005無印 ASP.NET2.0ですが、
ContentPlaceHolderは不明な要素〜みたいな警告です。
あり得ないタグを使った時と同じ内容だったと記憶してます。
家では環境構築してないので…すみません。
警告は無視する方向で行きます。
ありがとうございます。
211:nobodyさん
09/09/28 19:18:41
HtmlLink link = new HtmlLink();
link.Href = "StyleSheet.css";
link.Attributes.Add("rel", "stylesheet");
link.Attributes.Add("type", "text/css");
Master.Page.Header.Controls.Add(link);
212:nobodyさん
09/09/28 19:41:37
普通にこれ使えばいいんじゃないの?
URLリンク(msdn.microsoft.com)
マスターページを適用した一部のページだけなんだから、
その一部のページのコードビハインドファイルに記述すればいいじゃない?
213:nobodyさん
09/09/29 22:38:09
ListBoxでプルダウン選択したときに、Labelの値をViewStateから持ってきて変更したいのですが、
ポストバックしないで実装する方法はありますでしょうか?
214:nobodyさん
09/09/29 22:47:27
213です。
ListBoxではなく、DropDownListの間違いです。すみません。
215:nobodyさん
09/09/29 23:22:25
>>214
漏れはフルECMAscriptで実装しました。
MS的にはポストバックして欲しいみたいなのでオススメしない。
216:nobodyさん
09/09/29 23:34:57
>>213
ViewStateって何のViewStateなのかな。
HiddenFieldに格納した情報を、DropDownListのIndexをキーにClientScriptで取得して
Labelに表示すればいいような気がするけど。
217:215
09/09/30 00:15:29
>>216 見て気づいたがViewStateからは直接値取れないわ。謎のルールでエンコードされた文字列を解析せにゃならん。
Hiddenに書くのも癪だったので全部JSのArrayに定義して、ClientScriptに登録した。
218:nobodyさん
09/09/30 14:20:16
IISの稼動しているサーバーがActiveDirectoryに参加している場合
ASP.NETで統合Windows認証をすればActiveDirectoryに参加している
クライアントのみ受付可能ですか?
219:nobodyさん
09/09/30 19:48:28
213です。
やりたかったのは、DropDownListの選択値と一対一に対応する文字列をポストバックしないで
クライアントサイドで表示させたかったのですが、
とりあえず今日調べたところ、ViewStateを使うまでも無くDataTextFieldとDataValueFieldを使って
Labelの表示を変更することができました。
(DataValueFieldが一意の値しか認めないというバグを知らず、かなり悩みましたが・・・)
それでも、相変わらずポストバックは必要な状態で止まってます。
ClientScriptで取得して表示できるとの事ですが、具体的な実装方法を示したサイトなどご存知でしたら
教えていただけますでしょうか?
220:nobodyさん
09/09/30 20:41:22
あくまで例えばだけど、
<head runat="server">
<script language='JavaScript'>
function Change(obj) {
Label1.innerHTML = testArray[obj.selectedIndex];
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:DropDownList ID="DropDownList1" runat="server" onChange="Change(this);">
</asp:DropDownList>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</form>
</body>
</html>
221:nobodyさん
09/09/30 20:42:05
protected void Page_Load(object sender, EventArgs e)
{
int loopCnt = 1;
string clientScript = "";
while(loopCnt <11)
{
this.DropDownList1.Items.Add(loopCnt.ToString());
clientScript += "'"+loopCnt.ToString() + "',";
loopCnt++;
}
clientScript = clientScript.Substring(0, clientScript.Length - 1);
clientScript = "<script language='JavaScript'>var testArray = new Array(" + clientScript + ")</script>";
Page.RegisterClientScriptBlock("ClientScript", clientScript);
}
使っちゃいけないのを使ったり、汚いコードはご愛敬で。
222:nobodyさん
09/09/30 21:22:20
ListBoxに加えられた項目をアルファベット順に並び替えるにはどうすればよいのでしょう?
WindowsFormではSortプロパティがあるのですが、ASP.NETのListBoxにはありません。
一旦全部配列に抜き出して、並び替えた後に順番に追加していくしかないのでしょうか?
スマートな方法をご存知の方、よろしくお願いします。
223:nobodyさん
09/09/30 21:46:58
LINQでも使って並び替えるしかないんでないかな
ASP.NETは追加とかソートはポストバックしないとできないから、
コントロールにソートの項目がないのかもしれないね
224:215
09/10/01 01:12:00
>>219
Literalって変換されたらプレースホルダ無くなるよね。下の例はInputフィールドに適用する場合。
var script =
@" function updateField(v) {{ $get(""{0}"").value = v; }}"
String.Format()で0にInputフィールドのClientIDを指定、
RegisterClientScriptBlockで登録
DropDownListのOnChangeに上のfunction呼び出しをサーバサイドで登録。
updateField(this.options[this.selectedIndex].value)
OnChangeをクライアントサイドで登録する場合は$addHandlerでやらないといけない。
iphone で適当に書いてるから間違えてたらゴメン。
225:nobodyさん
09/10/01 01:41:28
>>219
どうしてもポストバックさせちゃダメなのか?
クライアント側のスクリプトすらすら書けるレベルないと、実装例みても
理解できないんじゃないかな
とりあえずUpdatePanelつかうと幸せになれるかもしれないぞ
226:nobodyさん
09/10/01 11:19:54
ASP.NETからOracleに接続する方法でOracleClient無しで
接続できるものはありますか?
例えばJavaのJDBCはJDBCドライバだけあれば接続できるので
そのようなものがあればありがたいのですが・・・
227:nobodyさん
09/10/01 14:54:33
>>226
パフォーマンスがいいかわからないけど
たいていのDBでODBC接続はできる。
oracleもたぶんodbcでつながるとおもうよ
ドライバも標準ではいっていたような
228:nobodyさん
09/10/01 15:03:06
ASP.NETって素晴らしいフレームワークだと思うんだけど
(一部のExtenderコントロールを除いて)
なんで?
229:nobodyさん
09/10/01 15:23:48
>>227
たしか標準のオラクルODBCドライバはオラクルクライアントが必要
JDBC以外でオラクルクライアントなしでつながる物はしらない
230:nobodyさん
09/10/01 16:18:31
へじタソが優秀なんじゃね?
231:nobodyさん
09/10/01 16:41:38
>>227, 229
ありがとうございます。
やはりオラクルクライアントは必要そうですね。
232:227
09/10/01 18:17:30
>229 >231
ODBCはOpen DataBase Connectivity の略だし、共通の規格だから動くんじゃないの。
オラクルの商用製品ソフトウェアが必要なのは、オラクルのネイティブな接続では。
ODBCは準拠してる製品なら、どのDBでも接続できると思ったよ。
接続できないとOpenじゃないし。下のぐぐった結果みてもできそう。
URLリンク(e-words.jp)
ODBC
フルスペル : Open DataBase Connectivity
ODBCとは、Microsoft社によって提唱された、データベースにアクセスするため
のソフトウェアの標準仕様。各データベースの違いはODBCドライバによって吸
収されるため、ユーザはODBCに定められた手順に従ってプログラムを書けば、
接続先のデータベースがどのようなデータベース管理システムに管理されている
か意識することなくアクセスできる。
233:nobodyさん
09/10/01 18:20:25
でもODBCの設定画面を開くとTNS名を入れろって言われるから
やっぱりオラクルクライアントが必要だと思う。
234:227
09/10/01 18:20:27
もういっこ検索結果を。
URLリンク(www.amy.hi-ho.ne.jp)
Oracleのサイトから落とせるODBCドライバでいけるそうな。
標準のODBCドライバとどう違うかは不明。
235:nobodyさん
09/10/01 19:09:47
ODBCってのは、アプリがDBを操作する方法をオープンな規格でやりましょう、って話だ
ドライバがDBと通信する方法を既定しているものではない
ODBCドライバが存在すれば、どんなDBでもODBC経由でアプリから接続できるってこと
236:nobodyさん
09/10/01 19:28:55
つまり
OracleはDBそのものがODBC準拠だからODBCドライバがあればいけるってこと?
それともOracleをODBCに準拠させるためにOracleが出してるODBCドライバが必要で、
さらにアプリ側にODBCと通信するためのドライバが必要ってこと?
237:nobodyさん
09/10/01 19:37:43
OleDBなら、接続文字列を変更するだけでSQL ServerもOracleもMDBも行けると思っていたのだけど、
認識間違ってますかね?
238:nobodyさん
09/10/01 20:27:54
>>236
オラクルが直接ODBC準拠じゃない
オラクルをODBCで操作するためには、オラクル用のODBCドライバが必要
オラクル製でもマイクロソフト製でも基本的にはアプリからの違いはない
ODBCと通信するんじゃない。(ドライバと)ODBCで通信するんだ
ドライバとアプリはODBCで通信する。ドライバとDBはDBごとのネイティブで通信する
オラクル用のODBCドライバなら、ドライバとDBとのネイティブ通信にオラクルクライアントが必要
これ以上はDB関係の板行って聞け
239:nobodyさん
09/10/02 20:02:27
>>238
つまり
何かのテクノロジ-->>(テクノロジとODBCが通信するためのドライバ)-->>(ODBC規格)-->>(オラクルにODBC接続を提供するドライバ)-->>オラクル
ってこと?
240:nobodyさん
09/10/02 20:52:19
GridViewの内容をExcelファイルに出力したいのですが、
URLリンク(www.atmarkit.co.jp)
のようなやり方で実現はできるのですが、Excelファイルの保存形式が、
純粋なExcelブック形式ではなく、拡張子こそXLSですが、中身はHTML形式?
みたいな保存のされかたです。
純粋なExcelブック形式のファイルとして出力するにはどうすればよいでしょうか?
ご教示願います。
241:nobodyさん
09/10/02 20:58:43
>>239
238も239もだいぶ間違ってる。
オラクルのネイティブなデータプロバイダはOracle Call Interface (OCI) を使ってアクセスする。
ODBCやOLEは別の古い規格。
.net frameworkにoracle用のデータプロバイダがあるんだからそれを使うのがベスト。
ODBCとかいまどき使う意味は俺にはわからない。
まずは質問しまくるまえにWindows SDKを読むこと。SDKのv6.1にはADO.NETの下に
Oracle and ADO.NETという項目がある。インストール後のURLでいうと
ms-help://MS.LHSMSSDK.1033/MS.LHSNETFX30SDK.1033/wd_adonet/html/8ee8e389-53cf-45cf-80bd-1df63ef34f2e.htm
web版
URLリンク(msdn.microsoft.com)
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4952日前に更新/322 KB
担当:undef