otu
ASP.NETで作られたページって重くないですか?
昔から重いイメージがあるんですが
ASP.NETで、aspxファイルのあるディレクトリを求めるにはどうしたらいいですか。
たとえば aspxファイルが C:¥Inetpub¥wwwroot¥app¥foo.aspx だとして、
求めたいのは C:¥Inetpub¥wwwroot¥app です。
System.IO.Directory.GetCurrentDirectory() を使うと C:¥Windows¥System32 が帰ってくるので困ってます。
Server.MapPath
>>5 Server.MapPath(".")
で取得できました。ありがとうございます。
>>3 ページのサイズは他のフレームワークに比べ、肥大化する傾向があるな。
そういう意味では他と比べて重くなるかもしれない。
とはいえ、ちゃんとしたベンチは取ったことはないが、
ASPで作ったページよりASP.NETで作ったページは体感で重く感じるな。
ポストバックが目にうるさいというのもあるが。
DB周りは速くなってたので、サーバーコントロールのレンダリングが
大変なんだろなーということで俺の中で決着した。
ASP.NETって、1回目のページの表示が遅い気がするんだよな、体感的に
でも2回目以降はそんなに遅いとは感じられない
プリコンパイルかけても1回目は遅い気がするから、遅いのはASP.NETじゃなくて
IISかもしれないが、まあその区別はあんまり意味がないかもしれん
10 :
nobodyさん:2009/09/03(木) 22:41:47 ID:wWmDoC3T
>>10 enum FlyType { Eco, Bus, Fst };
で宣言したら、Eco.ToString()でstring型で"Eco"が取得できない?
すまんFlyType.Eco.ToString()か
さらにすまん。数字を文字列として取得したいなら、((int)FlyType.Eco).ToString()か
14 :
nobodyさん:2009/09/04(金) 00:52:00 ID:7hywDWuE
>>11 ども。
>enum FlyType { Eco, Bus, Fst };
このとき、
Eco="001"
Bus="002"
Fst ="003"
としたいです。
現行システムで、DBの値に固定で持っているので。
((int)FlyType.Eco).ToString()のあとにゼロパッディングすれば、
できそうですが、もっとスマートな方法はないでしょうか?
"AAA"などの英字にも対応したいです。
つか、ASP.NET関係ないし。C#のスレで聞けよ
16 :
nobodyさん:2009/09/04(金) 01:05:24 ID:7hywDWuE
>>16 ここよりWeb制作板の方が適切だと思う。
個人的には前者はアリ。後者は自前で全て用意せず、
css / javascriptフレームワークを使用するのが吉。
ASP.NETの標準的な組み方が分からない…。
www.asp.netのサンプルやらMS謹製含む書籍を見てもみんなバラバラ。
BLLとDALに分けるんじゃなかったのかよと。
ある本では型付きデータセット最強と書いてて、
またある本では型付きデータセットは複雑な業務ロジックに使えないから
自前のエンティティクラスをバインドすべしと書いてあって、
いや、型付き無しのデータセットで十分みたいな論もあったり。
もう訳分からん。
で、「このやり方ならOKだ!」みたいな文句に惑わされてホイホイリンクを辿ると、
どっかの会社の独自フレームワークか、SqlDataSource一つだけのしょぼいサンプルとか。
もう疲れたよママン
>>19 まあ、それぞれ開発者によって前提が違うので言ってることがバラバラになるのは当たり前だと思うよ。
鵜呑みにするんじゃなくて、自分でそれぞれの手法のメリットとデメリットを書き出してみて、
自分の立場で一番優れていると思う手法を採用すればいいだけのこと。
それはASP.NETに限ったこっちゃないけど。
エンティティクラス→VS2008以降、LinqToEntityを使用
型付きDataSet→クエリ固定でVSが自動的に作成するDataSet
型無しDataSet→クエリを動的に生成して自分でDBからデータを取得
という位置づけで書いてるんじゃね?
型無し、型付きは、それぞれが問題じゃなくて、それを実装するコストが問題なんでしょ。
クエリ固定で、where文ぐらいを動的に生成すればいいぐらいなら、IDEが自動で作ってくれる
型付きDataSetでも十分。複雑なクエリで動的にクエリを発行しなけりゃならい場合は、
型付きデータセットの定義を作製するのが面倒だから、別に型付きでなくていいよって話ではないかと。
>>19 まず、前提としてるバージョンをよく確認しないとだめだぜ
あとは対照としてる規模とかにもよって変わるしな
で、最適な組み方は設計方法によっても違う
標準といわれる設計がないので、標準的な組み方もないんだよ
ちょっと経験談を聞かせてくれ。FormView のテンプレートで Insert と Edit
の中身がほとんど一緒なんだけど微妙に違う、みたいな時どうしてる? Edit
だとキー項目は見せてもいじらせないとか。
DRY 原則に従い、CompositeControl 継承したカスタムコントロールを
毎回自作しているが、これで良いのかどうかわからん。慣れてしまえば楽
だが、そもそも ASP.NET ってなるべくコード書かないようにするための
仕組みだし、メンテナが変わった時の引き継ぎがめんどいなあと悩み中。
>そもそも ASP.NET ってなるべくコード書かないようにするための仕組み
ASP.NETをフレームワークとして捉えるならその通りなんだけど、
カスタマイズ性の乏しいFormViewとかGridViewは、
あると便利的なコントロールなんで、
フレームワークの一つとして捉えるのは本末転倒だと思う
なんて言うのかな
個々に特化したサーバコントロールは料理に例えると、めんつゆであり、ポン酢。
蕎麦やしゃぶしゃぶとか、それぞれにマッチした料理にはぴったりだけど、互いの流用はできない。
基本となるサーバコントロールは醤油。鰹だしとみりんでめんつゆだし、柑橘類があればポン酢にもなる。
自分なら基本的なサーバコントロールの醤油だけ使って作成するかな。
25 :
23:2009/09/08(火) 00:07:14 ID:???
>>24 言ってる意味がわからんが、FormView はテンプレートで自由に
レイアウトをカスタマイズできるし、ObjectDataSource と組み
合わせて DB アクセスするにはもってこいじゃないの?
醤油だけで作るってのはつまり、FormView を使わないってこと?
俺にしてみりゃあり得ん話だが、なぜそうするのか理由が知りたい。
>>25 既に書いてるけど、めんつゆに合う料理ならめんつゆでいいし、ポン酢ならポン酢に合う料理に使えばいい。
そのかわり、基本はめんつゆやポン酢なので、許容範囲が狭い。
醤油なら、めんつゆもポン酢も作れるし、もちろん醤油ベースのステーキソースも作れる。
ポン酢やめんつゆで料理が簡単に作れるのはいいけど、
それに捕らわれて料理全般の多様性が減ったり、
ベースとなるめんつゆやポン酢以上の味が作れないと感じるから。
もちろんポン酢を利用してる人でも、醤油ベースで様々な料理は作れるけど、
そこにポン酢のメリットや利便性を醤油に求めるのはおかしいと思うってこと。
27 :
23:2009/09/08(火) 00:42:27 ID:???
>>26 ありがとう。醤油は好きだが理解しあえないのが良くわかった。
>>23 を読み返して自分でも意味不明だったので再度書いてみる。
FormView の InsertItem と EditItem の内容がほとんど同じだけど微妙に違う
という状況はメンテナンス性が悪いし、コードも重複するので何とかしたい。
同じ内容の検証コントロールをそれぞれに貼るとか耐えられない。
そこで、モードによってレイアウトと機能を切り替えるカスタムコントロール
を自作し、FormView の InsertItem と EditItem にそれぞれ貼り付けている。
これでレイアウトと機能が再利用できる。もちろん DataBindings の設定は重複
するが、現状ではそこを追求しても仕方がないので割り切っている。
これは割と良くある状況だと思うのだが、経験談を聞かせてもらえると嬉しい。
>これは割と良くある状況だと思うのだが、経験談を聞かせてもらえると嬉しい。
ない
FormViewなんてつかわない
>>27 漏れのやってるプロジェクトもFormView使ってるが、もう諦めてPerlかなんかで置換スクリプト書こうと思ってる。
クラス継承して作ってもインターフェースのどのメソッドが呼ばれているか分からんし、MVCとかDynamicDataとかで使うとなると内部の手続き調べるのが大変。ソースコピペを自動化した方が良いと思う。
やはりどこも同じか。
>>27 >FormView の InsertItem と EditItem の内容がほとんど同じだけど微妙に違うという状況
この微妙というのが、どの程度の微妙さかにもよるんだけど、
ウチは開き直って登録と修正を別のUserControl, FormViewにしてしまうことが多い。
確かに分けると重複する部分が出てくるが、
経験上、一つにまとめてしまうと度重なるメンテを受けた後、
それぞれのモードの専用処理が恐ろしいことになりやすい。
また、そもそも初期状態でも、モードごとの専用処理を抜き出すと
それだけで結構な分量になっていることがある。
じゃあ1クラスで全て完結させるのは諦めて、
完全に共通な処理を外出ししてから、
それぞれのモードを別クラスとして扱った方がよくね?という流れ。
要するに、FormView, GridViewのモード切り替えって使えねぇなという(ry
>>27,30
プログラミングASP.NET 3.5によると、
編集と挿入が要件の異なる別個の処理であることを理解してください
らしいので、そもそもその二つを共通化しようとする方向が間違ってるらしいぞ
だからと言って登録専用FormView、修正専用FormViewを作るのはやり過ぎな気がするが
表示用FormViewあったら、1ページにFormView合計三つ定義することになるんだよな?
結局、自分でTextBoxなりCheckBoxなりをポトペタして
登録、修正画面を作ったほうが楽ってことだな
DBへの登録、修正の画面パターンなんて数パターンしかないだろうから、
一度作ればひな形ができて、あとは使いまわすだけじゃん
なんでFormViewとかGridViewとか、使い回しの悪いものを使うのかわからん
>>32 一覧表示から修正画面に移る時には、
コントロール一つずつに対して値の設定をしていけとな。
1ページにFormViewを3つ定義するなら、そのほうがよほど楽だな
しかもFormViewという足枷が外れる
作成する便宜に捕らわれすぎて、本来何のために開発してるのか
見失ってるんじゃないか?
>>32 FormViewはDynamicControlが使えるからじゃまいか。
本来の使い方をすれば、一々入力フォームの形式を考えずに済むぞ。
36 :
23:2009/09/08(火) 22:04:35 ID:???
>>28 CompositeDataBoundControl 実装するの? すげーや。
>>29 自動化は賛成だが、動きは理解しとかないとまずいだろ。
>>30 登録と修正は単一の FormView で ChangeMode するだけだと思うが。
>>31 登録も修正もレイアウトと入力チェックは似たようなもんだろ? そこを共通
化したいんだよ。実際の更新作業はデータソースがやるからまた別の話。
>>32 ASP.NET と ADO.NET っていう道具立てで FormView を回避するほうが
わからんよ。
>>34 FormView が足枷なわけないだろ。開発者を助けてくれるのに。
>>35 DynamicData って Oracle でも使えたっけ? 一応、Oracle と SQLServer の
両方に対応せよということなので、使ってなかったが。
37 :
23:2009/09/08(火) 23:06:13 ID:???
どうも話がかみ合わないので、最後の悪足掻きをしてみる。
FormView を使う時には、以下のようにカスタムコントロールを使うのが
理想的ではないか、というのが現時点での俺論。カスタムコントロールには
編集に必要な全てのコントロールやバリデータが含まれているから、わざわざ
FindControl せずに済むというメリットもある。テンプレートを使いながら
タイプセーフを実現できるわけで、この利点は捨てがたい。
FormView
|
+- DataSource -> データオブジェクト(Select/Insert/Update/Delete)
|
+- InsertItemTemplate -> カスタムコントロール(mode=Insert)
|
+- EditItemTemplate -> カスタムコントロール(mode=Update)
当然ながら、Select の引数には GridView の SelectedValue をバインドして
一覧と同期させている。
しかし、このカスタムコントロールの実装は Joe Coder には敷居が高いのでは
ないか。デザイナで aspx をいじれば済むという手軽さを失うわけだから。
標準化とあわせて、このあたりの折り合いをどうつけているのか、うまい落し
どころはないか、というところが知りたいのっす。
>>36 >FormView が足枷なわけないだろ。開発者を助けてくれるのに。
足枷だろ?FormViewで実現できない仕様を渡されたら嫌な顔するだろ?w
つーか、要求定義の段階でユーザからの要望をはねつけてるだろw
ASP.NETの使用上できませんとかいって。本末転倒。
>>37 そんな面倒なとこするなら、初めからポトペタで済ませたほうがよっぽど楽だろ
InsertもUpdateもほぼ同じロジックで流用できる。
新規か編集か、つまりIDがあるかないかで、InsertするかUpdateするかを分けるだけだ。
バリデーションもすべて共有できるし、編集されたくないコントロールはReadOnlyにするだけ。
大したコスト削減にもならんのにFormViewに固執する理由がわからん。
40 :
23:2009/09/09(水) 00:24:25 ID:???
>>38 ASP.NET でやりやすいように設計するだけの話。それ以上でも以下でもない。
>>39 FormView を使わなかったらデータ項目とコントロールのやり取りを全部手で
書く必要があるし、SQL も泥臭く書くことになるんじゃないの? 俺にとっては
そっちのほうが面倒なんだけどな。
>>40 (SQL)データソースの更新機能だけでDB更新が事足りる
再利用しないカスタムコントロール作るのを余計な作業と思わない
(結果として)同じ処理をするコードは極力一つにまとめないと気が済まない
まあ、こんな感じだな
俺には一つも当てはまらねぇw
いまだ1.1の修正させられる俺に言わせれば、RepeaterでOK
それ以外は使いたければ使えば、って感じ
>>40 >ASP.NET でやりやすいように設計するだけの話。それ以上でも以下でもない。
つまり顧客の要望であってもASP.NETでやりにくければ、そういう設計にはしないってことだな。
んー、自社向けなら許されるけど、納品する立場ならこんな発言許されないだろ。
プログラマ(というか設計者)として失格だと思うぞ。
>FormView を使わなかったらデータ項目とコントロールのやり取りを全部手で
>書く必要があるし、SQL も泥臭く書くことになるんじゃないの?
それのどこが問題なの?
求められる要求に対して、これらのコントロールが活用できるならすればいい。
しかし、そのコントロールを使わないと面倒で泥臭くて嫌と考えたり、
ましてASP.NETでやりやすいように設計するなんてのは本末転倒。
それに、ASP.NETが開発効率を上げるための仕組みだ。
結果、副次的にコードの記述が少なくなるところまでは理解できるが、
だからそういったコントロールを使わなきゃいけないと思うのは完全に間違いだろ。
あくまで利用できるところにのみ利用し、難しいところは基本的なコントロールで代替する。
ASP.NETは、基本的なコントロールを利用するだけでも開発効率は十分に高い。
>俺にとってはそっちのほうが面倒なんだけどな。
俺が思うプログラマが決して言ってはいけない言葉。それは「面倒」。
43 :
35:2009/09/09(水) 07:45:19 ID:???
>>36 うちはMSSQLだわ。
DBMSからメタデータが抽出出来るなら動くと思うが、ムリぽいな。
44 :
35:2009/09/09(水) 07:52:48 ID:???
>>42 すれ違いになるが、その「面倒」はこの先納品した客も被る訳だ。面倒を顧客の要望だからと言ってただ言いなりに実装するのは、自分にも顧客にも良い結果にはならない。
まあこういうフレームワークは日本の箱庭的システムにはそぐわないかもね。
45 :
23:2009/09/09(水) 08:04:03 ID:???
>>41 俺のところだと SQL 手書きが発生するのは全体の 2 割以下だな。それもこれも最新の
ASP.NET が使えるおかげ。
>>42 わかった。お互い別の道を歩もう。
なんか、手段と目的が逆転してる人がいるよね。
ASP.NET(Frameworkは2.0)でWEBサイト開発して配置用にインストーラーを作った。
インストール先のサーバーにはFrameworkが1.1と2.0が入ってて、規定のサイトのASP.NETは1.1に設定されている。
この場合配置されたサイトは1.1で動作するようになってしまうんだが、インストーラー側で2.0に切りかえれないものだろうか?
配置後に手動で切り替えれば済むことなんだけど、なんとかならないかな。
web.configのsupportedRuntime要素を設定してもダメみたいだし。
>>44 FormViewを使わないことで面倒なら、もう何もしないほうがいいな
つーか、その面倒解消のためFormViewを導入しようとして逆に効率落ちてるじゃん
本末転倒
つか正直ASP.NETって帯に短し襷に長しだよな
>>50 その評価はまちがってる
ASP.NETが中途半端なんじゃなくて、用意されてるコントロールが中途半端なんだよ
>>51 中途半端じゃないとコンポーネント屋が困るからな
コントロールは、基礎的なものさえあればいいんじゃないのかな。
応用的なの作っても、結局特定の用途向けみたいな感じで、
万人向けじゃなくなっちゃうし、
かといってカスタマイズがこんだけできるんですって作ると、
今度は複雑になって逆に万人向きじゃなくなる感じがする。
今までで困ったのは帳票ぐらいかな。
こればかりは買ったぞ。数十万とかで。
あとはrepeaterさえ攻略すればなんとかなる感じ。
ところでformviewが話題になってるけど、
外部制約とかの整合性制約がある場合も対応できるの?
商品名を選択させてIDを入れるとか、
重複しない商品コードを入力させるとか。
試そう試そうと思っているうちにそのままなんだ。
俺、コントロールをポトペタする派なんだけど、
登録フォームをどうやってFormViewで作るの?
何かしらバインドしないとFormViewって表示されないよね?
よーし、ちょっとテストしてみようかな
formviewやってみたけど、うまくカスタマイズできなくてわけがわからない(´・ω・`)ショボーン
わからないのは、いまのところ4つ
・ParentTable→ParentID ParentCode ChildID
・ChildTable→ChildID ChildCode
があって、ParentTable.ChildIDはChildTableのChildIDと同じで、
FormViewでChildCodeを入力することによってParentTableのフィールドを更新なり挿入なりしようとしている場合。
1)
テーブルがこんな感じで、ParentTableにChildTableの主キー(ChildID)を保持してる場合、
FormViewのChildIDをChildCodeに置換してlistboxなどで表示する方法ってある?
2)
同時実行制御はデータソースでのデータバインド時にParentTableの実行制御はできると
思うんだけど、ChildTableが変更された場合にも同時実行制御の対応できる?
(入力中にChildTableが編集される可能性を排除するため)
3)
2)と近いけど、ボタンをクリックしてから、実際に保存するまで、
ParentTableとChildTableのトランザクションはどうやって管理すればいい?
(同時実行制御で確認してから、実際に書き換えするまでのトランザクション管理)
4)
ChildTableの行数が増えると、ChildCodeを何かしらの手がかりに検索して
入力(表示)させる必要があると思うんだけど、FormView内にコントロールがあって、
それを選択可能?
うーむネットでも情報が少ないし疲れたよママン
子が親のIDもってるんじゃなくて、親が子のIDもってるのか?
それだと親と子は1:1にしかならないような
1)
置換するの意味がわからん
普通に結合するなりなんなりでChildCodeの項目も用意するだけでは?
2)
実行制御って具体的に何のこと?
DBへの排他制御なら、基本的に楽観的ロックなのでDBへのロックはなしだろ
4)
子テーブルの行数増えても親テーブルにもってるIDで見るだけじゃないのか?
お前の考えてる入力イメージがまったくわからんぞ
>>57 例えばparent=受注テーブル、child=商品テーブルみたいな感じ
parent:Childは1:n
1)
>置換するの意味がわからん
childテーブルの商品idを、商品コードに置換をするってこと。
表示時はそれでいいけど、
更新時には商品コードを商品id(childID)に置換をする必要があるでしょ?
2)
>実行制御って具体的に何のこと?
商品コードをlistBoxで選択をさせる場合、人間が商品コードを選択し、
それと対になる商品id(childID)をpostBackで受けることになると思うのけど、
その間にマスタが変更されてしまった場合、
childIDとcodeが一致しない可能性が発生しない?
3)
>DBへの排他制御なら、基本的に楽観的ロックなのでDBへのロックはなしだろ
楽観的ロックでchildTableのdateTime値から変更が無いことを確認しても
それを確認してから、実際に、parentTableを更新する間に編集されちゃうかもしれんから、
トランザクションで管理をしたくならないかなと思って。
4)
>子テーブルの行数増えても親テーブルにもってるIDで見るだけじゃないのか?
商品コードを、listBoxに入れて選択をさせることはできるかもしんないけど、
商品をたくさんの条件から検索して、それをformView上のlistBoxなり、
textBoxなりに商品コードとして入力したいこととかない?と思って。
そんでその方法がよくわからんと。
なんか楽しそうだな。俺も後で参加しよう。
60 :
59:2009/09/13(日) 02:44:02 ID:???
何回読んでもいまいち意味が分からん。
>>60 具体的に書けばいいのかなw
1)
textBoxに商品コードを入力させ、
その商品コードから商品テーブルの商品idを取得して、
商品idを受注テーブルに挿入することはformViewでできる?
2)
1)と似たような感じで、
商品コードをlistBoxから一覧で入力させるとき、
受注テーブルは楽観的ロックでいいけど、
商品テーブルは商品コードを入力中に、
裏で誰かが商品マスタを編集して商品コードを変更させてしまっても
楽観的ロックで排除してくれる?
3)
2)で楽観的ロックで確かめられないとしたら、
商品テーブルから商品コードと商品idが一致するのか確かめなくちゃだけど、
商品テーブルの商品コードの存在を確かめる→受注テーブルに挿入するの間に
商品コードが編集される可能性があるから、トランザクションで管理できる?
4)
textBoxに商品コードを入力させるとき
他のウィンドウや他のformから商品コードを検索して
formView上のtextBoxに入力させることはできる?
こんな感じなんだぜ。うぇーはっはっは
>>61 とりあえずFormViewの仕事とDataSourceの仕事を区別しよう
FormViewで出来るかと言われれば、全部出来る
コードレスで出来るかというなら、FormView周りにかぎれば、
条件つきでたぶん出来る(4以外)
お前が望むような動作をするDataSourceがあれば、って条件だがな
63 :
59:2009/09/13(日) 08:56:53 ID:???
さんくす
FormView(+ObjectDataSource)は使うけど、
結局、相当に長くコードを書くのが必要なんだな。
コードみて大まかなやり方がわかったよ。ありがとう。
クエリを書くのが2割になったというので興味があったんだけど、
テーブルってほとんど他とリレーションしてるから、
結局は更新時にチェックをしなくちゃいけないよね。
そうすると何かしらのクエリの記述が必要になりそうだね。
既存のプロジェクトを調べたら、子テーブルのIDを持ってないテーブルって、
都道府県マスタとか、商品種別のマスタとか、一部のマスタぐらいしかなかった。
だから2割になるというより、最大で2割ぐらい減るのかなという印象。
これなら、無理してformView使うよりも
コントロールのポトペタのほうが、制限が少なくていいかなぁと思ったんだけど、
どうなんだろう。もちろん自分の場合の話だが。
ところで、文章から、2)と3)なんかを
FormViewで実装した経験がないように見受けられるけど、
そんなチェックはしないことが多いのかな?
整合性で問題がでるパターンが想像できると思うのだけど。
それとも、子テーブルのIDを持つようなテーブルを
更新したり、挿入したりすることがあまりないような
シンプルなサイトの開発が多いのかな?
ちょっと気になったもので。
親が子のIDをもつ親子関係ってのが理解できん
それで親と子が1:nになるんだよな?
通常の業務で入力するような範囲で、マスタの変更チェックなんてしないとおもうが
おまえのとこはそんなに頻繁にマスタが変更されるのか?
>>65 第一に、前者と後者は関連性はないよね。
n:nでも、n:1でもチェックが必要なのは同じことだから。確認のため。
1:nの関係はよくあると思うよ
商品->商品種別、会社->都道府県、支社->社員、会社->担当、受注->明細とか
親->子の例は、
そんな確認ができるのかなという疑問に思っただけなのと、
他のテーブルの主キーを持っていないテーブルが、
マスタ関連だけだったというだけなんで、
常にマスタのチェックをしなきゃいけないということを、
言いたかったわけじゃないんだ。ごめんよ。
でも、自由入力させる場合の商品コードは、
その存在チェックと主キーへの変換は必要だよね?
入荷した商品の、在庫の引き当て数量チェックとかも。
似た動作をいろいろ見ると、いろんな確認が必要で、
他のテーブルの確認をせずに、
無条件で更新できるような入力箇所って
思うより少ないのねって思ったの。んでもって、やっぱり手書きなんだなと。
掲示板とか、ゲストブック的な、
他のテーブルを意識しなくても済む単純な入力や編集には
便利だと思うんだけど
67 :
59:2009/09/13(日) 21:35:45 ID:???
一応言っておくけど、俺はコントロールポトペタ派。
>そんなチェックはしないことが多いのかな?
登録対象商品がまだ有効かどうかのチェックはする。よくする。
ただし、普通、マスタの更新(UPDATE)なんてしない。ありえない。
やるなら削除後に新規登録、または新規登録のみ。
そうすれば登録対象が急に別物にすりかわるなんてことはなくなる。
1:nの関係はもちろんよくあるが、親が子のIDを持つことはありえないと思うんだが。
支社テーブルは社員IDを全部持ってるの?各社員(子)が支社コードもってればよくない?
68 :
65:2009/09/13(日) 22:27:45 ID:???
>>66 1:nの関係はよくあるが、親が子のIDもった状態でどうやって
親:子が1:nの関係を作れるんだ?
その親に対する子はその親がもってるIDの子1件だけだろ
まさか同一IDの子が複数いるとか言わないだろうな
後半に関しては、個人的意見だがIDとコードを両方持つ設計は少ないと思うぞ
データとしては入力されるコードを格納すればいいんだし
コードとID別持ちで、コードからID引いて格納するって設計がまあ特殊なんだと
在庫引当の例とかは、ビジネスロジックとしてのチェックの問題だ
ビジネスロジックをコードレスなんてもともと無理だと思うがな
それは更新の問題じゃなくて入力内容チェックの問題
FormViewだろうがなんだろうが画面を表示する機能に直接関係ない
>>67 >登録対象商品がまだ有効かどうかのチェックはする。よくする。
するよね?
するってーと、ObjectDataSourceなんかでチェックして、
だめなら、だめの返値返して、エラー表示する処理とかになるよね。
>1:nの関係はもちろんよくあるが、親が子のIDを持つことはありえないと思うんだが。
>支社テーブルは社員IDを全部持ってるの?各社員(子)が支社コードもってればよくない?
ごめん。急いで書いたので、一部、不適切な関係があるね。
というか、自分が、どうやら、親と子を逆に捉えてるのかな。
他のテーブルの主キーを持ってる方を親だと、ずっと思ってたよww
商品マスタ->商品区分マスタ、取引先->都道府県マスタ、社員マスタ->支社マスタとか。
>>68 >親:子が1:nの関係を作れるんだ?
上でも書いたけど、どうやら俺が逆に書いてるようだw許してくれ(´;ω;`)ウッ…
でも、在庫引き当て時とかのチェックは1:1でも1:nで・・も(ry
>後半に関しては、個人的意見だがIDとコードを両方持つ設計は少ないと思うぞ
どっちにしろ、コードの存在確認はしなきゃなんないでしょ?
編集されたかの楽観的ロックじゃなく、
存在しないコードを入力させない存在チェックとして。
>FormViewだろうがなんだろうが画面を表示する機能に直接関係ない
というかね
>45 名前: 23 [sage] 投稿日: 2009/09/09(水) 08:04:03 ID:???
>俺のところだと SQL 手書きが発生するのは全体の 2 割以下だな。それもこれも最新の
>ASP.NET が使えるおかげ。
から、formView+dataSourceでクエリの手書きが2割以下になると思ったのよ。
そのぐらいすごいんだと。
ほんとは、調べるとそうでもなくて、
過去の経験からは、ほとんどチェックが必要だったりして、
ObjectDataSourceでコード書かないといけないので、
自作のクラスで処理するのと、あんま差はないなと思ったということ。
で、dataSourceを利用しないで、formViewを使うメリットってなに?
という話になるとおもうんだけど、
上のサンプルみると、各コントロールのインスタンスからデータを取得してるから、
ポトペタするのと変わらないようにみえる。
フィールド値のバインドを自動的にやってくれるぐらい?
という感じがしてるんだけど、という感じ。
うーん、なんかいまいちよくわかんないな・・
71 :
65:2009/09/14(月) 10:05:53 ID:???
入力チェックは確かに必要だが、それは画面表示の機能(=FormView)の範疇でも
DB更新の機能(=DataSource)の範疇でもない(入力チェックをObjectDataSourceでやるのは
俺は間違ってると思う。DataSouceのもとになってるクラスでチェックするべきだと)
で、SQLの手書きが2割以下ってのは、俺は言いすぎだとは思う
ただ、純粋にSQLを書くという作業に限ってみれば、SQL書くところすべてに
SQLDataSourceつかえば、確かに自分でSQL書くことは少ないとはおもうが
それはアクセスでクエリビルダ使ったらSQL手書きしなくていいです、ってレベルと同じ話
必要なSQL文の数が減るわけじゃなくて、それを書く作業が減るだけ
DataSource使わないFormViewのメリットなんてないと思う。というか
FromViewはDataSource前提に設計されたコントロールだと思うが
DataSourceつかうことにメリットがあるんじゃなくて、使わないことにデメリットがある
>>71 DataSourceの元になるクラスという?
こういった場合にはObjectDataSourceでSELECT、INSERTなどのクエリを生成して、
コントロールにバインドするんじゃないの?
DataSourceの元になるクラスという?
↓
DataSourceの元になるクラスというと?
74 :
23:2009/09/14(月) 21:41:06 ID:???
>>71 入力チェックは aspx.cs の仕事だと思うがなぁ。SQL 手書き 2 割以下というのは
ObjectDataSource で TableAdapter を使うパターンが 8 割を占める、という意味。
たとえ複数テーブルの更新が発生したとしても、内部的には TableAdapter を使い
回す。手書きが必要なのはバッチ処理ぐらい。まあ、プロジェクトにもよるがうちは
テーブル数と画面数が大体 200 ぐらいだな。コードマスタが 50 以上あったはず。
んー、確かにTableAdapterでいける部分は使うべきかな…。
うちは今一切使わない方針だけど。
なんかたまにASP.NET本来の原初的な組み方をしなきゃならないって考える波がくる。
で、MS本読み直すと「あー間違ってたのかな」と思ったり。
「Javaから来たヤツは全てを自前クラスで用意しようとする。
そうする利点は認めるがASP.NETでは…」みたいな論調だし。
で、軽く組み直してみたら、やっぱりハマるんだけどw
Dataの引っ張り方は人それぞれだから別とすると、
それならDataSourceと切り離してFormViewだけのメリットって何?
って話だな?
これとは別にTableAdapterを使うのはいいけど、データのソートとか抽出とかはどうしてる?
クエリかかないならTableAdapter.Fill(DataTable)して、DataTable.Select("")してるってこと?
これだとSQLからデータ抽出して、メモリに蓄えて、そこからまたSelectして
無駄が多いような気がするんだが。
結局のとこ、SQLを手書きする量が減るだけで、SQLの量そのものが減るわけじゃないってことだな
SQL書く作業がTableAdapter定義する作業になっただけ
昔のADO.NETでは、DataAdapterでのUPDATEは使えねえってのが定説だった気がするが
TableAdapterになって使いものになるようになったのかな?
ただ全部の項目を埋めて、挿入、更新するだけなら結構使える
複雑なことしようとすると、TableAdapter用のクエリの手書き必須
挿入時に論理削除を意味するIsDeleteをいじられたくないのでfalseで固定したいとか
サブクエリで抽出した内容を取得して挿入したいとか。
挿入したときの主キーを取得するのも手書きが必要だったような。
あと上にもあるけど動的にクエリを発行できないので
検索条件に従ってWhere句を作成するとかは無理だったはず。
かといってDataTableのSelectメソッドをWhere句の動的生成の
変わりに利用すると、いちど全部のデータを取得するので、
行数が多いとデータの取得に時間がかかる。
そのたありがLinqToSQLやEntityFrameworkで解決してると思うんだけど、
LinqToSQLは終了の方向だし、EFもなんとかしてくれって言う人が多くて、
まだ微妙なところ。
79 :
23:2009/09/15(火) 07:39:06 ID:???
>>76 うちでは Excel の仕様書から TableAdapter を自動生成していて、SelectList メソッド
にソート引数も指定できるようにしてるよ。内部的には ORDER BY に変換する。
>>77 やっかいなのは、SELECT するのは VIEW だけど更新もしたいケース。そんな時は
Update メソッドの中で、個々の TableAdapter を使い回す。それで対応できなければ
SQL 手書き。
>>78 WHERE の動的作成は頻出パターンなので、TableAdapter の自動生成時に作り込んで
いる。つまり、検索条件を引数にもらう SelectList メソッドの中で、引数が null じゃ
なければ WHERE に追加している。こうすると、画面側では検索条件をバインドする
だけで済む。
>>79 >TableAdapter を自動生成していて
>WHERE の動的作成は頻出パターンなので、TableAdapter の自動生成時に作り込んで
それでSQL手書きが2割以下になるのか。それなら納得
しかし、自動生成されたSQLを使うのはどうもあまり乗り気になれん
TableAdapterにしてもDataSourceにしても、SQLは完全にラップされて
アプリ側から見えなくしてるわけだし、その方向が正しいのはわかるんだけど
アプリ側でSQLもシームレスに使いたいっていうと、LINQな方向に行くのかねぇ
でもあれもSQLがそのまま通るわけじゃないしなぁ
>>79 >TableAdapter の自動生成時に作り込んでいる。
>つまり、検索条件を引数にもらう SelectList メソッドの中で、
>引数が null じゃなければ WHERE に追加している。
これどうやるの?
TableAdapterで、条件に従ってWHEREを追加とかできたっけ?
Yのつくとこがすきそうな手法だな・・
自動生成時に作り込む=クエリビルダでクエリを作る=細かいところは手書きでクエリ修正
とかじゃないだろうなw
84 :
23:2009/09/15(火) 23:52:09 ID:???
>>81 Excel マクロでコード生成するんだからパターンさえ決まれば何でもできる。
Fill 系のメソッドで引数チェックして WHERE を組み立てるなんざどこでも
やってることでしょ。
>>84 そのFillなんちゃらの引数によって、クエリを作ったりできたっけ?
自分はできないと思っていたので、できるのなら教えてほしい。
環境はVS2005+SQLServer2005
途中で送信してしもた
環境はVS2005+SQLServer2005で、TableAdapterのFillなんちゃらのメソッドで、
引数に従ってWHEREを作成するなんて無理だと思ってた。
Fillなんちゃらがストアドを呼び出してて、
ストアド側で引数によってクエリのWHEREを組み立ててるならわかるけど、
それはクエリを書いてるから手書きクエリの削減じゃないしなぁ。
>>84 >Fill 系のメソッドで引数チェックして WHERE を組み立てるなんざどこでも
>やってることでしょ。
Fillなんちゃらって、TabelAdapterのか?
SQL指定したらメソッドの中身はウィザードで勝手に作られてるぞ
すくなくとも自分でコードは書いてないから、動的にSQL作ったりはしてない
これをいじるぐらいなら俺ならTableAdapterなんて使わん
>>86 実現させる方法をいろいろ考えたが
部分クラスか継承させたクラスでFillなんちゃらを全部自前で実装すればできそう
SelectList メソッド ってのもよくわからんし、自動生成されてるのは
TableAdapterだけじゃないのかもしれんが、そのへんは>84じゃないのでわからんw
たとえストアドで操作してても、そのストアドが自動生成されているなら
「手書き」クエリは減ってるとは言える
まあ、なんかしらの開発用フレームワークあるんじゃないかって感じだな
88 :
23:2009/09/16(水) 07:26:21 ID:???
>>86,87
TableAdapter は Excel の仕様書からマクロで自動生成してるんだって。Fill とか
SelectList とか名前はどうでも良くて、要するに ObjectDataSource の Select
メソッドに選択できるメソッドの中で、引数をチェックして WHERE を組み立てる
ロジック込みで、コードを自動生成している。TableAdapter をウィザードで作って
いるわけではない。これを「手書き」と思うなら、まあどうぞ御自由に。
89 :
155:2009/09/16(水) 16:20:34 ID:???
>>88 すまん、どの引数なのか、ウィザードとは何のことかさっぱりわからん。
よければ質問に答えてくれないか?
>ObjectDataSource の Selectメソッドに選択できるメソッドの中で、
>引数をチェックして WHERE を組み立てるロジック込みで、コードを自動生成している。
Q1 どの引数をチェックしてWHERE文を作成してるの?
1.ObjectDataSourceのSelectメソッドの引数
2.TableAdapterのFillなんちゃらメソッドの引数
3.その他のメソッドの引数(どのメソッド?)
Q2 WHERE文を組み立ててるのはどこ?
1.ObjectDataSourceのSelectメソッド
2.TableAdapterのFillなんちゃらメソッド
3.Excelのマクロ
4.その他(どこ?)
Q3 自動生成するクエリの範囲は?
1.すべてをExcelのマクロで作成
2.WHERE文以外をExcelのマクロで作成、WHERE文のみQ2のメソッドで、Q1の引数から作成
3.すべてをQ2のメソッドで、Q1の引数から作成
4.その他(どこ?)
失礼、名前は無関係
続き
>TableAdapter をウィザードで作っているわけではない。
Q4 TableAdapterそのものはどうやって作ってるの?
1.データセットデザイナ
2.その他(なに?)
Q5 作成したWHERE文から前のクエリとWHERE文はどこに登録してるの?
1.すべてのクエリをTableAdapterに登録
2.WHERE文から前をTableAdapterに登録、WHERE文はDataTable.Selectメソッドで登録
3.その他(どこ?)
Q6 クエリをどこに登録してるの?
1.拡張子.xsdのxmlファイルのに手書きで作成したクエリを追加
2.データセットデザイナのクエリ構成ウィザードを使って作成したクエリを登録
3.データセットデザイナのクエリ構成ウィザードからクエリビルダを使って作成したクエリを登録
4.その他(なに?)
データアクセス層のクラスを自動生成するって話はわかるんだが
その自動生成されてるものはTableAdapterといえるのだろうか
そもそもTableAdapterって何だって話になるんだが、MSDNによると
>TableAdapter は、DataAdapter の機能を向上させるためにデザイナで生成されるコンポーネントです
らしい。
当然TableAdapterと100%互換のあるクラスも作成可能なんだろうが
それを生成したからといってTableAdapterを自動生成っていうと誤解を招くとおもうな
ObjectDataSourceでの使用が前提なら、あえてTableAdapterと互換のあるものにする必要もないし
SQL手書き量が減ってる最大の要因はこのデータアクセス層クラスの自動生成のおかげで
けっして最新のASP.NETのおかげではないってのも誤解を招いた原因の一つだな
いや、既存のTableAdapterに、自前のクエリを何かしらの方法で登録してるんでしょ?
じゃないと話がつながらないし、
もしExcelのマクロとやらでクエリを書いてるから自動だってのなら、
これはツール(Excel)のおかげでASP.NETのおかげじゃないから
2割以下なんて結論に至るはずがない。
>45 名前: 23 [sage] 投稿日: 2009/09/09(水) 08:04:03 ID:???
>俺のところだと SQL 手書きが発生するのは全体の 2 割以下だな。それもこれも最新の
>ASP.NET が使えるおかげ。
DataSetデザイナでは、WHERE文を動的に発行することは不可能だから、
みんなどうやってるのかを聞きたいんだと思うのだが。
※DataSetで動的にWHERE文を作るのは不可能というと誤解を招くと思うが、
考えられる場合の数だけ引数の異なるFill〜メソッドを作れば可能だが、
これは半固定なのでこれは動的発行じゃないし、
ストアドプロシージャでも可能だけど、これも事実上、クエリは手書きとかわらんし、
DataTableのSelect使えばソートやフィルタリングはできるが、これもクエリの動的発行じゃない
93 :
23:2009/09/16(水) 21:41:11 ID:???
>>89 Q1=2, Q2=2, Q3=1
>>90 Q4=Excel マクロ, Q5=TableAdapter の定数, Q6=Q5 と同じ
要するに、TableAdapter.cs 全体を Excel マクロで吐き出している。全部。WHERE
の動的生成もその中にある。種も仕掛けもあるよ。
>>91, 92
あーなるほど、
>>45 の発言が混乱させてたのか。たしかに ASP.NET のおかげじゃ
ないね。手書き 2 割以下は ASP.NET のおかげではなく、Excel マクロのおかげ。
元レスは ASP.NET 1.1 の環境だったから、単純に FormView が 使える3.5(2.0 も)は
いいぜ、という程度のノリだった。すまんかった。
∧∧
ヽ(・ω・)/ ズコー
\(.\ ノ
、ハ,,、  ̄
 ̄
でDataSourceと関係なく、FormViewのメリットってなに?
本来、ポトペタするコントロールに、フィールド名を登録するだけでバインドしてくれるところ?
なんと比べてのメリットって話もあるが、1.1と比べるなら
FormView(DetailsViewも)のメリットは、データソースの単一レコードにバインドでき
レコードのナビゲーションを操作する機能まで取り込まれているところがメリットかと
1.1で単一レコード表示させたら、レコード移動と画面の更新を全部自分でやらんとダメだからな
双方向バインドで自動更新なんておまけみたいなもんですよw
96 :
23:2009/09/16(水) 23:02:19 ID:???
>>94 それもあるが、レイアウトを自由にカスママイズできるってのと、あとは登録処理が
FormView.InsertItem(false) で OK なところとか、Update の時に元々の入力値も
引数で一緒にもらえるところとかね。使ったことないなら使ってみたら?
>>95 ナビゲーションは逆に使ってないな。GridView との連動パターンしかない。
それと、双方向バインドで自動更新は不可欠だろ! これのおかげでどんだけ楽に
なってるか。
本当に日本語が不自由な奴だな
>レイアウトを自由にカスママイズできるってのと
レイアウトの自由度はポトペタ>>>>>>>>>>>>>>>>>>>>>>>>(越えられない壁)>FormViewだろ?
なんでレイアウトの自由度がポトペタに対してFormViewのほうがメリットあるんだ?
>あとは登録処理がFormView.InsertItem(false) で OK なところとか、
そんなのFormViewじゃなくても作り方次第
>Update の時に元々の入力値も引数で一緒にもらえるところとかね。
そんなのFormViewじゃなくても作り方次第
>それと、双方向バインドで自動更新は不可欠だろ! これのおかげでどんだけ楽になってるか。
多くの人はなってないんだよ。
おまえだけがエクセルでやってるから楽なの。
FormViewの利点を述べたいがために強弁してないか?
ASP.NETでクエリを書くのが2割になったとか、
レイアウトを自由にカスタマイズできるとか、
作り方次第でどうとでもなることをFormViewのメリットだと述べたりとか、
自分がやっている方法に固執してFormViewは便利だと述べたりとか。
98 :
23:2009/09/17(木) 00:05:04 ID:???
>>97 作り方次第のところはそう言うならまあ頑張ってくれやって感じだが、双方向バインド
は Excel とは何の関係もないよ。
99 :
95:2009/09/17(木) 01:07:19 ID:???
>>96 >レイアウトを自由にカスママイズできる
レイアウトのカスタマイズなんてFormView以外でもカスタマイズできる
これはFormViewのメリットでも何でもない
>ナビゲーションは逆に使ってないな。GridView との連動パターンしかない。
ナビゲーションの真意が伝わってない気がするな。FormViewでレコードを移動するって話じゃないぞ
レコードが移動されたときに新しいレコードにバインドし直すって話だ
いちど、FormViewつかわないで一覧からカレント行取得して詳細表示するコード書いてみ
このコードを自動でやってくれるのはかなり楽
データ更新は、SQL書くのなんてパターン決まってるから難しくはない
(それこそ自動生成で8割まかなえるほどに)
ただ、ビジネスロジックのチェックはそうはいかんし
単純な更新でないと使えないってのが感想だ
>>97 作り方でどうにでもなるのはその通りなんだが、問題はその作りこみが
FormViewで不要や楽に実現できるようになるかどうかだろ
レイアウトの件はまあ同意だが、FormViewにもポトペタすればある程度自由にできるぞ
登録処理は、単純な更新に限れば楽なる
UPDATEの元値は、DataSet使わないならかなり有効な機能だと思う
1.1には単一レコードを想定したバインドコントロールはないんで、
その点でFromViewにはメリットはあるから、使えるとこなら使えばいいかと
逆にデメリットは、自由度が下がるってことか
それでもある程度コードかけばカバーできる範囲だと思う
>>99 上のほうにナイスなたとえがあるけど、まさにその通りだと思ったな
FormViewは麺つゆ
ウドンやソバを作るのには便利だし美味しい
だけどいくら加工してもベースが麺つゆだから味が似てしまう(応用度が低い)し
麺つゆだから酢醤油や砂糖醤油にはならない。
ポトペタの醤油は手間はかかるがより多くの料理に利用できる。
こんなとこだろ
ウェップフォーム上の全チェックボックスのチェックをオフにしたいんですが、方法は
ありますでしょうか?repeaterの中にあってIDが固定じゃないのでべた書きすることが
出来ません。
>>101 サーバ側でならRepeater.ItemDataBound イベントで処理する。
クライアント側でならJavaScriptで走査して処理する。
チェックボックスOFF程度でバインドし直すのもな。
俺ならサーバー側もforeachで回す。
なにをみてforeachで輪せばいいんですか?
>>104 Repeaterの中をIDでFindControl
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);
}
}
}
type='reset'なhtmlボタン配置したらどうだろうか
まあ俺なら、ページ出力時にクライアントサイドのスクリプトを動的に生成して出力しとく
チェックボックスオフにするためだけにポストバックさせたくない
今ならAjaxでやるのもありなのかもしれん。updatepanelだっけ?
その場合、Repeaterの中全部更新されるよね?
>>107 CheckBox以外のControlsもあったらどうすんの?
>>108 その場合はその項目もリセットされるわな
それがまずいかどうかは>101の判断だろう
まあ、一番楽な方法としてリセットボタン考慮する価値はあるかと
>type='reset'なhtmlボタン
そういえばそんなのもあったな。すっかり忘れてたわ。
俺もClientスクリプトに一票
113 :
nobodyさん:2009/09/19(土) 03:13:45 ID:ZjH1gzNN
今のプロジェクトはASP.NETで作ってるんだが、どうしても必要なのでJavaScriptも死ぬほど書いてる。
自分で実装してて思うんだが、こんなの俺以外に絶対に保守出来ない。
つーか俺自身でも3か月後には多分保守出来ないw
難しいシステムを無理やりWebで作るのはほんとアホとしか思えないぜ。
うちは基本的にクライアントスクリプトの自前書きは禁止だなぁ@2.0環境
5行で書ける処理でもサーバー側でできるなら、そっちでやってもらってる。
>難しいシステムを無理やりWebで作るのはほんとアホとしか思えないぜ。
特に帳票とか帳票とか帳票とかな。まずデザインで死ねる。
更に、あたかも関数だらけのExcelのような動作を求められたりして死ねる。
入力項目50個超で1つ入力すると各項目を色々再計算/再描画とか言ってくるけど、
50個AutoPostback = trueな状態にするとブーブー言ってくるのは確定的に明らか。
こうなるとJavaScriptの出番になってしまい
>>113みたいになって死ねる。
で、仕様変更があった時にJavaScript側で更に色々判定する必要がでてきてまた死ねる。
この経験からうちではクライアントスクリプト禁止令と、
「出来る出来ないで言えば出来ますが…は、ハッキリNoと言う」という
超基本的なことを徹底するようになった(´;ω;`)
教えて下さい。
コードビハインドで作られてるんですけど、3つのaspxが指すコードが全て同じものを指してる
んですが、これっていいんですか?まあ動けばOKという格言もありますが。
Form1.aspxとForm2.aspxとForm3.aspxが全部FormCom.aspx.csを指してます。
ちなみにFormX.aspxは3つとも微妙に違っていて、載ってるコントロールなんかも違います。
その辺はFindcontrolしてnullかどうかをちゃんとチェックしてるようなんですが。
でもまあ、通常は基底クラスに全部詰め込んで、あとは各画面に対応するクラスを継承するのが
正しい方法だと思うんですが。
>>115 >3つのaspxが指すコードが全て同じものを指してる
この発想はなかったわ。どう考えてもNGだろ。
メリットが思いつかないな
メリット
単純にコード記述量を減らせる。つまり試験工数も減るし、バグも減る。いい事尽くし。
3つのパターンで画面入力させるんだけど、画面上の項目が微妙に違う。(画面上の100項目の
うち10項目ほど)無論、3パターンを1画面でまかなって、区分によって項目のVisibleを制御
するのでもいいんだけど、いっそ3画面分のaspxを用意して、裏のcsは共通にしてしまおう、
と。デザイン指定が超絶シビアなので、Visibleで出したり隠したりとかしたくなかった。
基底クラスを継承、の場合でも、例えばボタンをクリックした場合のイベントはやっぱ3画面
それぞれ必要だよね。csが1つならとことんコード量を減らせる訳で。
まあ、「コード量が少ない」と「メンテしやすい」は等価じゃないけど。
>>116 すいません、NGの理由ってなんでしょうか?
自己フォロウ
開いてる画面によってはコントロールがあったり無かったりするので、不用意に
TextBox1.Text = "ほげ〜";
とか書けなくなる。全画面共通で必ず存在しているコントロールじゃない限り、一々FindControl
でコントロールを探さなきゃならない。
デメリットってこれぐらいだと思うンすけど。
余りに阿呆らし過ぎて説明する気もおきん。
コボラ相手にしてる気分だ。
いいと思うならやればいいんじゃないンすか?
>>121 ページが最終的にコンパイルされる仕組みを理解していれば、特に何の問題も無いわけだが?
理解出来ないなら黙ってた方が無知を晒さずに済むと思われ。
ここのページに個別にJavaScriptを設定したくてもできなかったりとか
コントロール名を変更しても反映されなかったりとか
不必要なイベントハンドラメソッドが増えるとか
インテリセンスが意味をなさなくなってバグの温床になるとか
それは、そういうデメリットもあるから、メリット・デメリットを天秤にかけて考えてね。
ってだけの話で、やってはいけない。という理由にはならない。
でもまあ、個人的には動けば正義だと思ってる
ちなみに「不必要なイベントハンドラメソッドが増えるとか」これだけ意味不明。
>ちなみに「不必要なイベントハンドラメソッドが増えるとか」これだけ意味不明。
ボタンの数だけイベントハンドラメソッドが増えるでしょうが。
各ページに5個のボタンがあって、それぞれ別動作してたら15個のメソッドが存在することになる。
>でもまあ、個人的には動けば正義だと思ってる
保守性が下がるからやってはいけない
他人が見てもわけわからないことになるからやってはいけない
重複させるとインスタンス時に余計なサーバ資源を消費するからやってはいけない。
インテリセンスの動作が無駄になりバグの温床になるからやってはいけない。
エラー発生時にハイライトされた行が、どのページのエラーなのか一別しか分かりにくいからやってはいけない。
ページ初期化時に表示ページとは関係無い初期化にリソースが消費されるのでやってはいけない。
>それは、そういうデメリットもあるから、メリット・デメリットを天秤にかけて考えてね。
>ってだけの話で、やってはいけない。という理由にはならない。
デメリットのほうが圧倒的に大きいから「やってはいけない」ということでしょ。
単に自分がやってることを否定されたくないから、難癖つけて認めさせたいようにしか見えない。
各ページに5個のボタンがあって、それぞれ別動作してたら15個のメソッドが存在することになる。
↓
3枚の各ページに5個のボタンがあって、それぞれ別動作してたら15個のメソッドが存在することになる。
>126
普通、そういうケースではさすがにこんなヒネたコードは書かんだろ常考。
各画面にボタンが5個あって、ページに関係なく処理が同じ(前画面に戻るとか)
↓
15個のメソッドが必要なところを5個で済む
ていう事を言いたいんジャマイカ?
128 :
121:2009/09/19(土) 22:11:27 ID:???
>>122 アホかw本来別にすべきものをまとめて、
何がコンパイル時には一緒になるからだ。
App_Code以下が単一dllになるからって、
1クラスに全部まとめて書くか?書かないだろ?
なぜだ?責務が異なるものは、分けるのが当たり前だからだろ?
ある画面専用の処理が追加になったらどうするんだ?
他の画面からしたら、全く関係のない処理があるクラスを実装してることになるぞ。
リファクタリングを一回でもやったことがあれば、
それがどんなにアホなことか分かるよな。
月日が経って、そのクラスを実装するaspxが増えたらどうなる?
その度にif文やFindControl判定が増えていくのか?
なんとも素晴らしい設計だな。
仕様変更時には影響範囲が特定できず、
ある画面だけの修正なのに、処理が重なっているために
全画面の動作検証を行わねばならなくなったりしないか?
つか、高凝集密結合が良くないなんて、学生でも分かるだろ?
で、業務上、そういうことにはならないように気を使ってますとでも言うのなら、
先に述べたように、お好きにどうぞってこった。
多分元の質問者は「技術的に問題ありますか?」って事を聞きたいだけだと思われ。
そういう意味では「注意深く作るなら、別に問題はない」が回答。
ただし「将来的なメンテとか拡張とか修正とか考えると、3画面分まとめて1ソースに
すると身動き取れなくなったりしない?止めとけば?」ってのが周りのアドバイス。
>>127 >ちなみにFormX.aspxは3つとも微妙に違っていて、載ってるコントロールなんかも違います。
って言ってるぞ。
知識のない奴が一人前に提案して
不備を指摘されると逆ギレ
誤りを認めたくないから強弁するってガキの流行なんか?
俺が認めない方法は許さない。
って馬鹿の粘着キモイ
>129 で出てる回答が全て。あとは自分で判断しろってことで終了。
>>133 技術的に問題があるかどうかなんて聞いてないよ
本人は技術的には問題ないことを理解した上で、メリットデメリットの話をしてるんだから。
技術的に問題無いことを理解している発言は
>>122でしてる。(技術的に)何の問題もないと。
メリットとデメリットの話をしようとしているのは
>>120を見れば分かる。デメリットうんたらかんたらと。
エスパー登場
なんか、ある事例を今の我が事のように感情移入してしまう人が居ますが、
その3画面での共用する方法はある意味、仕組みを熟知して使い倒してますなw
ネイティブアプリでの共有ライブラリ、DLLの様ように。
禁止事項ではないから、開発&保守が効率的であればそれも選択肢としてアリだと思う。
熟知しての実装なのか、無知ゆえの実装なのかはともかく(後者っぽいけど)、ケースに
よってはそういう手もあるのかと知ってちょっと感心した。
ビハインドコード共有!そういうのもあるのか
みたいなw
機能的に全く完全に差異がないけど、デザイン的にどうしようもない(ある仕入先と別の
仕入先で全く異なるデザインの画面)ケースなんかでは有効かも。
>なんか、ある事例を今の我が事のように感情移入してしまう人が居ますが、
4:主観で決め付ける
>ネイティブアプリでの共有ライブラリ、DLLの様ように。
6:一見関係ありそうで関係ない話を始める
>禁止事項ではないから、開発&保守が効率的であればそれも選択肢としてアリだと思う。
1:事実に対して仮定を持ち出す
10:ありえない解決策を図る
12:決着した話を経緯を無視して蒸し返す
というか自演乙
というか、aspxのページを新規生成すると、
ロジックを記述するパーシャルクラス(ページなんちゃら.aspx.cs)と、
コントロールなどのメンバ変数を宣言する.aspxが自動生成するパーシャルクラスの
二つが作られるわけでしょ?
後者はVSがページ毎に自動生成するからaspxと1対1になってる
コードビハインドは、そのメンバ変数を参照してる(からインテリセンスで補完してくれる)わけで
いくらpageのインスタンスを所有していて、そこからFindControlで操作したいコントロールを見つけられるとしても
メンバ変数として宣言されてるコントロールを一切使用しないなんて、
asp.net以前にオブジェクト指向の設計として間違ってるような気がするのは俺だけ?
クラスで例えれば、
メソッド内では決して参照しないまったく関係無いコントロールのインスタンスをメンバ変数として保持し、
メソッド内で操作したいコントロールのインスタンスは、すべてメソッドの引数として得て操作してるような感じ。
じゃあ、メンバ変数として所持してるインスタンスってなに?
その都度無駄にコントロールのインスタンスを生成するの?ってな感じになると思うんだ。
技術的に問題ないとか、問題なければやってもいいだろとか別次元の話だと思うんだけど。
動けば害はないし、禁止されてないからということで、1行ごとにThread.Sleepをしかけまくるみたいな。
君さ、もう「宗教上の理由で俺は断固として認めない」とでも言えば?('A`
141 :
139:2009/09/20(日) 18:05:49 ID:???
なんだかわからんが、初の書き込みなんだが
というかで始めたのがまずかったか
すまんが
技術的な見地
思想的な見地
メンテや修正といった見地
で分けて議論?してくれ。じゃないと収束せんだろ。
>技術的に問題ないとか、問題なければやってもいいだろとか別次元の話だと思うんだけど。
じゃあ技術的には問題なし、思想的に不可。でいいじゃん。
>>142 いや、技術的に問題ないわけないじゃんね。
それ以前の話。
無駄なあえてわざと無駄な変数宣言をしてインスタンスを生成することは
動くけど技術以前の問題だろ?
1行ごとにSleepかませたり、ところどころ無駄な変数を宣言してインスタンスを生成したり
技術とか思想以前の問題
どうしても「俺が認めないものは認められない」つー馬鹿がいるな。
1行ごとにsleepかけようが、ASP.NET的には全然OK。
でもそういう実装が実際に許されるか否かは、そのアプリの目的に依存するんで可否を決
めようがない。
InProcで動いてる時にSessionに1GBのobjectを突っ込むのも、ASP.NET的には問題なし。
でもほんとにそんなことをしていいかどうかは求められてる仕様や環境次第。
技術以前の問題だっつーなら、技術以前の問題と技術的な問題に切り分けろよ。
>>144 >どうしても「俺が認めないものは認められない」つー馬鹿がいるな。
お前のことか?
>1行ごとにsleepかけようが、ASP.NET的には全然OK。
>InProcで動いてる時にSessionに1GBのobjectを突っ込むのも、ASP.NET的には問題なし。
アホかよw
>そのアプリの目的に依存するんで可否を決めようがない。
>ほんとにそんなことをしていいかどうかは求められてる仕様や環境次第。
ほとんど否だろ?もしくはしないほうが望ましいとされるだろうな。
自分に有利な条件を想像すんなよ。
「認められる仕様があるかもしれない」って都合の良い言い方だよな。
90-10ぐらいでほとんど認められない状況を、可否は判断できないとして
強引に50-50まで戻せるんだからw
なんで、そこまでしてむりくり正当化して自分の無知を認めたがらないのかね
>>144 その意味不明な改行の仕方といい自演バレバレですよ?
ID出ない弊害だな。
IDなんていくらでも変更できる
自演の中身は文章で判断するしかない
偉い人にはそれがわからんのですよ
ぶっかけ秋田。どっちでもいい。
>>145 とりあえずお前が、技術的に問題ない という日本語の意味を理解してないのは理解した
ここまで全部俺の自演
>>151 とりあえずお前が、日本語を理解してないのは理解した
複数のaspxが同じcsを指すのって普通に使ってたんだが・・・
褒められた作りじゃないにしても、いまの所これが原因で動作がおかしくなったとかは無い。
>>154 >褒められた作りじゃないにしても、
いや、だからみんなこれを言ってるんだろ
。
なに?またループさせたいの?
褒められた作りじゃないが、有りといえば有り。
↓
いや無しだろ。動く動かない以前の問題だ
↓
最初に戻る
>>156 俺も無しに一票だな
今、テレビ見てたんだが、「第二音声では英語で実況しています」というテロップが日本語で入っていた
つまり、こういうことだ
日本語でアナウンスしてしまったから、英語で聞きたい人に伝わらないけど、
いちおう第二音声で実況しているから有り
↓
いや無しだろ。英語で実況しているしていない以前の問題だ。
↓
最初に戻る←いや戻らない戻らないwww 英語でテロップだせよww
160 :
157:2009/09/21(月) 18:52:15 ID:???
>>158 TransactionScopeは、むかーしになんかの理由で
使えないなーって判断した記憶があるが忘れたな。
もう一回調べてみる。ありがとう。
MS-DTCが使えないとか、サーバの関係かな?
使えると便利なんだけどね。TeansactionScope。
結局なんだかんだいって、SQLサーバにすべてクエリ登録して、
アプリ側ではストアドだけ呼び出すのが正しいのかなという気がするよ。
駄目な相対化の例をこんなとこでも見るとは・・・
いつか誰かが突っ込むだろうと思ってずっと待ってんだけど、なんで誰も指摘しないの?
馬鹿っぷりを曝け出してる様をみてニヤニアしてんの?
つーわけで
不 要 な イ ン ス タ ン ス っ て 何 ?
TextBox1,2,3があるページと、TextBox1,3,4があるページの両方が同じ分離コードをさしてる
として、片方のページを表示してるとTextBox1,2,3,4のインスタンスが出来るとでも思ってる
の?馬鹿なの?死ぬの?
>>163 ASP.NETの勉強をし直してからまたおいでね
>>139 > メンバ変数として宣言されてるコントロールを一切使用しないなんて、
> asp.net以前にオブジェクト指向の設計として間違ってるような気がするのは俺だけ?
逆だろ。
自動生成されたメンバ変数を使いつつ、コードを共有したいから、
共通の基底クラスを継承するのではなく、コードビハインドを共有するんだろ。
共通の基底クラスを継承する場合は、
基底クラスでは全てのコントロールをFindControlしなければならないが、
コードビハインドの共有なら、共通のコントロールに限り、メンバ変数が使える。
>>163 彼の主張する不要なインスタンスについては
>>139に書いてある内容だと思う
>ロジックを記述するパーシャルクラス(ページなんちゃら.aspx.cs)と、
>コントロールなどのメンバ変数を宣言する.aspxが自動生成するパーシャルクラスの
>二つが作られるわけでしょ?
バージョンもWEBサイトかWEBアプリかも特定せずにメンバ変数を宣言するパーシャルクラスが自動生成されてるとか
パーシャルクラス(宣言のコード)なのにクラスが二つ作成されるとか
>コードビハインドは、そのメンバ変数を参照してる(からインテリセンスで補完してくれる)わけで
コードビハインドだと勝手にメンバ変数参照してるとか
メンバ変数参照してるからインテリセンスがきくとか
>メソッド内では決して参照しないまったく関係無いコントロールのインスタンスをメンバ変数として保持し、
必ず存在しているコントロールじゃない限り、一々FindControl(>120)って発言を無視してるとか
もうね、
>>164のアンカーは自分に向けとけとしか
不要なインスタンス云々を言ってる奴って、型付DataSetとか絶対認めない・使わないのかなw
コード内でDataColumnsを定義するのがメンドクセーって理由だけで型付DataSetを使うと、使わない
メソッドが腐るほど自動生成されるよね。それって無駄だから型付DataSetは使用禁止!ってル
ール?w
なんか急に関係ない話し始めたやつがいるぞw
そもそもイミフな意見を、煽らんがために
エスパー解釈するから余計面倒なことになってるな。
流れを読まずに質問してみる。
ASP.NETが生成するhtmlが30MB位になって、クライアントPCにダウンロード完了してから
実際にブラウザに表示されるまで30分ほどかかるんだけど、なんか上手い改善策ある?
サバーサイドの処理が重い訳じゃないので、どうしていいか分からなくて。
30分ワロタw
画像含まずにhtmlだけで30MB?
いったいどんなシステムなんだよ。
ページ分けるしかないでしょ
必要な時に、必要な分だけしぼりこんで表示。
>>165 >自動生成されたメンバ変数を使いつつ、コードを共有したいから、
>共通の基底クラスを継承するのではなく、コードビハインドを共有するんだろ。
逆だと思うのはコードの共有を目的とする観点からみてるから「逆」ってだけでしょ?
ページごとに、そのページが所有するコントロールの変数を
メンバ変数としてVisualStudioが宣言してるんだから、
VSつまりマイクロソフト的には1ページ1コードビハインド記述ファイルを前提ってことじゃないのってこと。
>パーシャルクラス(宣言のコード)なのにクラスが二つ作成されるとか
クラスが二つなんて書いてないじゃん。作文?
>必ず存在しているコントロールじゃない限り、一々FindControl(>120)って発言を無視してるとか
だから必ず存在している場合は、メンバ変数として宣言されてるからそれを参照できるわけでしょ?
ない場合があるからFindControlしてるわけで。
>メンバ変数参照してるからインテリセンスがきくとか
インテリセンスが聞くのは、コントロールをメンバ変数に宣言してるパーシャルクラスを
VSが自動生成してるからじゃないの?違うなら俺の間違いだな。すまなかった。
>もうね、
>>164のアンカーは自分に向けとけとしか
>>164は俺じゃないよ
やっぱそうだよなぁ。もはやページングしか残されてないよなぁ。
画像含まず、TextBoxとDropDownListとLabelとCheckBoxだけで構成されてるのに、htmlソース
で30MBとかいきます。ページングにすると更新のタイミングとかウザイんですよねえ。
俺オワタ
>>166 >>メソッド内では決して参照しないまったく関係無いコントロールのインスタンスをメンバ変数として保持し、
>必ず存在しているコントロールじゃない限り、一々FindControl(>120)って発言を無視してるとか
それから例えとして書いてるのに、それを本筋に当てはめて見当違いのレスするのは止めようよ。
「クラスで例えれば〜という感じになると思うんだ。」って書いてるじゃん。
そういうように書いてるぐらい「アホ」なやり方をしているっていうわけで、
そういうような仕組みでASP.NETが動いてるなんてかいちゃいないだろ?
>TextBox1,2,3があるページと、TextBox1,3,4があるページの両方が同じ分離コードをさしてる
>として、片方のページを表示してるとTextBox1,2,3,4のインスタンスが出来るとでも思ってる
>の?馬鹿なの?死ぬの?
これも同じ。だれも作られるなんて言ってないだろ?
メンバ変数で宣言されてるのにそれを参照しないコードの書き方がおかしいんじゃないのっていってんの。
つまり、おまえの批判はこういう的外れなことをいってるわけ。
酒井法子って覚醒剤やってたんだな・・・
これで逮捕されてもう芸能界じゃやっていけないだろ
↓
ほんとだな万引きで捕まったぐらい恥ずかしいよな
↓
お前バカじゃねぇ?酒井法子は万引きで捕まったんじゃねーよ。
ひょっとして万引きで捕まったとおもってんの?バカなの?死ぬの?
こんな感じ
シルバーウィーク進行中
>>172 クラス2個作られるのが俺の作文だっていうなら
>ロジックを記述するパーシャルクラス(ページなんちゃら.aspx.cs)と、
>コントロールなどのメンバ変数を宣言する.aspxが自動生成するパーシャルクラスの
>二つが作られるわけでしょ?
を解説してくれ
そして、
>必要ないインスタンスが生成されるのを「有り」とする人が多いのに驚いた
の必要ないインスタンスとは何か説明してくれ
>>173 こないだの1000だか3000だか5000だかの
大量のコントロールを埋め込もうとしてた人?
>>173 1000とか3000とか5000とかそんな桁じゃないんで違う人です。1桁違う。
5万コントロールとか10万コントロールとかそういう数なんで。
もはや御愁傷様としか…w
>>178 何をやってるのか、ぜひ教えてくれ。 面白そうだ。
30分かけて表示されたページは、まともに動くの?
あと、
>>172 >>176 メールでやれ。
複数のaspxのbehind-codeが共有されてるのに拒否反応示す人が多いのに驚いた。
幾つかのProjを見てきたけど、使ってるところは多い。別に禁断の技とか行儀の悪い実装
と言うことも無く、現場によっては普通に使われるテクニック。まあ、有効な局面が限られる
と思うが。
ちなみに「VisualStudio様がデフォで作ってるんだからそれが前提」とか書いてるけど、VS
が吐き出した自動コードをあとから手で書き換えるとか、半ば当然だと思うが。VS様はそ
んなに柔軟でもないし、賢くもない。
>>181 いろいろ書きたくなっちゃうのは分かるけど、もういいから。
>>176 >を解説してくれ
クラスは一個
その一つのクラスのパーシャルクラスが2個
>の必要ないインスタンスとは何か説明してくれ
必要のないインスタンスは必要のないインスタンスだ
それ以上でも以下でもない
動作するからといって、1行ごとにSleep噛ますのは意味ないよな?
それと同じように、1行ごとに必要ないインスタンスを生成しても意味ないっていってんの。
換言すれば、「動作するからといって1行ごとにSleepいれるのをアリとする人が多いのに驚いた」でもいいぞ?
ただし技術的に問題ないって主張してる人は、Sleep噛ましても動けばokらしいよ
Sleep噛ましても問題ないぐらいだから、1行ごとに不必要なインスタンス生成するぐらい余裕で許容すると思うけどww
>>144に書いてある。
メールでやらないなら、IDだしてやってくれないかな。NGすっから。
>>186 おお!!
まさに知りたかったことです。ありがとうございます。
ModalPopupExtenderのときもダミーコントロールを使用した経験がありますが、
結構ダミーとして使うことってあるんですね!!
IEだと問題なくて、FirefoxだとLinkButtonを押してもPostBackされないのは、どこを直せば
対応出来ますか?
以前の案件ではIE/FF/Opera/Safari/Chrome全部で動いてたはずなのに、今作って確認したら
IEでしか動かない('A`
>>173 データベースならDataSet、固定のデータならArrayを持ち回りすれば更新関係が楽になるんじゃない?
DataSet、ArrayはSerializableだったはずだったから、これをセッションで持ってて
これを元にページングして表示し編集させる。
最後に更新ボタンがあって、これをクリックすると、それまで編集されたデータを一斉に更新するとか。
つまりページングや編集は、セッションで持ってるデータに対して行って、
最後に更新ボタンを押した瞬間に、編集された行のみ必要なら整合性チェックして保存していくような感じで。
>>191 まずLinkButtonだけを設置したテストページでポストバックしないかどうかをチェックして。
要件で定義されてる上限まで行数増やしてページ表示させたら、ページ上のコントロールの
数が16万超とかマジでどんだけーw
12時間経ってもまだ入力出来る状態にならないw
>>192 ページングも案の一つだったんですが、グーグルクルムが思った以上に軽いんで、もしかす
ると「IEで重いようならクルム使ってね」で逃げるかも。
>>194 どうしても大量のデータ一覧表示しつつ、ぽこぽこ書き換えたいなら、
1レコード毎の書き換えが可能ならば、表示はテキストのみにして、行のクリックかなにかで入力できる形にjavascriptで書き換えて、入力完了したら
行ごとにajaxかなんかで書き換えするようにするかなぁ。
>>194 ASP.NET vs 人間、ストレステストのネタとして最適ですね。
>>194 IEは</table>が来るまで描画しないと思うので、
全体を一つのtableで囲むのを止めたらどうだろう
そしたら送られてくるhtmlごとに上から順番に描画してくれると思う。
ASPのほうでも、その都度、ブラウザに送信するとかの設定も必要だったはず。
>>197 一番外側に大きなTABLEタグがあって、それはもう削除し様が無いのです('A`
ところで、この巨大なGRID形式の入力ページを、最初は市販のコンポーネントを買って実現し
ようか迷ってたんです。Grea○CityのSPR○AD .NET3J
Repeaterでひたすら自分でクルクル輪姦してhtmlを生成するのとどっちがよかったんかなぁ。
初めて使うコンポーネンツで躊躇したのと、軽量シンプルなhtmlを吐き出すのはrepeater使用
時だろうという推測で結局コンポーネントは使わなかったんですが、実は使ってた方がレスポ
ンス向上してたのかなぁ。こればっかりは今でも分かりません。
>>198 今は自前でResponse.Writeなりしてるってこと?
想像だけど、Repeaterのほうが遅いと思う。
何万件とかなら、どんなコンポーネントを使っても快適とかはないと思うよ。
数が変化するなら、アプリで作っても通信だけで相当な時間がかかると思うし。
こうなったら、エクセルに出力させて編集させて、
今度はCSVファイルをアップロードして登録とかにしたら?
>>198 GrapeCityのサイトでデモ使ってみたことある?
うちでは超遅かったよ
asp.netでのドメインモデルってやりにくくないかえ?
WebServiceありのサーバサイドありのJavaScriptでドメインモデルってやってられねーって感じ。
更にAJAXなんて入ってきたら設計で死ねるw。
VirtualBoxのソースを読んでても思うけど「管理大変そう」w。
マスターページについて質問です。
ある子ページでのみ必要なcss, jsがあるのですが、
マスターページ自体をいじることなくインポート出来ないでしょうか。
マスターページのheadタグ内にcontentPlaceHolderを置くことで、
子ページからhead要素にアクセスすることは出来ましたが、
これだとビルドの度に警告が表示されて鬱陶しく感じます。
マスターページを入れ子にするとか?
警告を無視する。
CやC++の仕事の時は警告が1件でもあったらうるさく言われてたけど、C#は基本は警告無視。
コードで.jsファイルインポートしても警告でるっけ?
ClientScriptBlockほげほげとかいうやつ
>>205 >ビルドの度に警告が表示されて
普通にVS2008でマスターページ追加すると<head>の中に初めから
ContentPlaceHolder設置されてるんだが、どんな警告がでるんだ?
210 :
205:2009/09/28(月) 18:58:14 ID:Nc4wliQp
VS2005無印 ASP.NET2.0ですが、
ContentPlaceHolderは不明な要素〜みたいな警告です。
あり得ないタグを使った時と同じ内容だったと記憶してます。
家では環境構築してないので…すみません。
警告は無視する方向で行きます。
ありがとうございます。
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);
ListBoxでプルダウン選択したときに、Labelの値をViewStateから持ってきて変更したいのですが、
ポストバックしないで実装する方法はありますでしょうか?
213です。
ListBoxではなく、DropDownListの間違いです。すみません。
>>214 漏れはフルECMAscriptで実装しました。
MS的にはポストバックして欲しいみたいなのでオススメしない。
>>213 ViewStateって何のViewStateなのかな。
HiddenFieldに格納した情報を、DropDownListのIndexをキーにClientScriptで取得して
Labelに表示すればいいような気がするけど。
217 :
215:2009/09/30(水) 00:15:29 ID:???
>>216 見て気づいたがViewStateからは直接値取れないわ。謎のルールでエンコードされた文字列を解析せにゃならん。
Hiddenに書くのも癪だったので全部JSのArrayに定義して、ClientScriptに登録した。
IISの稼動しているサーバーがActiveDirectoryに参加している場合
ASP.NETで統合Windows認証をすればActiveDirectoryに参加している
クライアントのみ受付可能ですか?
213です。
やりたかったのは、DropDownListの選択値と一対一に対応する文字列をポストバックしないで
クライアントサイドで表示させたかったのですが、
とりあえず今日調べたところ、ViewStateを使うまでも無くDataTextFieldとDataValueFieldを使って
Labelの表示を変更することができました。
(DataValueFieldが一意の値しか認めないというバグを知らず、かなり悩みましたが・・・)
それでも、相変わらずポストバックは必要な状態で止まってます。
ClientScriptで取得して表示できるとの事ですが、具体的な実装方法を示したサイトなどご存知でしたら
教えていただけますでしょうか?
あくまで例えばだけど、
<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>
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);
}
使っちゃいけないのを使ったり、汚いコードはご愛敬で。
ListBoxに加えられた項目をアルファベット順に並び替えるにはどうすればよいのでしょう?
WindowsFormではSortプロパティがあるのですが、ASP.NETのListBoxにはありません。
一旦全部配列に抜き出して、並び替えた後に順番に追加していくしかないのでしょうか?
スマートな方法をご存知の方、よろしくお願いします。
LINQでも使って並び替えるしかないんでないかな
ASP.NETは追加とかソートはポストバックしないとできないから、
コントロールにソートの項目がないのかもしれないね
224 :
215:2009/10/01(木) 01:12:00 ID:???
>>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 で適当に書いてるから間違えてたらゴメン。
>>219 どうしてもポストバックさせちゃダメなのか?
クライアント側のスクリプトすらすら書けるレベルないと、実装例みても
理解できないんじゃないかな
とりあえずUpdatePanelつかうと幸せになれるかもしれないぞ
ASP.NETからOracleに接続する方法でOracleClient無しで
接続できるものはありますか?
例えばJavaのJDBCはJDBCドライバだけあれば接続できるので
そのようなものがあればありがたいのですが・・・
>>226 パフォーマンスがいいかわからないけど
たいていのDBでODBC接続はできる。
oracleもたぶんodbcでつながるとおもうよ
ドライバも標準ではいっていたような
ASP.NETって素晴らしいフレームワークだと思うんだけど
(一部のExtenderコントロールを除いて)
なんで?
>>227 たしか標準のオラクルODBCドライバはオラクルクライアントが必要
JDBC以外でオラクルクライアントなしでつながる物はしらない
へじタソが優秀なんじゃね?
>>227, 229
ありがとうございます。
やはりオラクルクライアントは必要そうですね。
232 :
227:2009/10/01(木) 18:17:30 ID:???
>229 >231
ODBCはOpen DataBase Connectivity の略だし、共通の規格だから動くんじゃないの。
オラクルの商用製品ソフトウェアが必要なのは、オラクルのネイティブな接続では。
ODBCは準拠してる製品なら、どのDBでも接続できると思ったよ。
接続できないとOpenじゃないし。下のぐぐった結果みてもできそう。
http://e-words.jp/w/ODBC.html ODBC
フルスペル : Open DataBase Connectivity
ODBCとは、Microsoft社によって提唱された、データベースにアクセスするため
のソフトウェアの標準仕様。各データベースの違いはODBCドライバによって吸
収されるため、ユーザはODBCに定められた手順に従ってプログラムを書けば、
接続先のデータベースがどのようなデータベース管理システムに管理されている
か意識することなくアクセスできる。
でもODBCの設定画面を開くとTNS名を入れろって言われるから
やっぱりオラクルクライアントが必要だと思う。
234 :
227:2009/10/01(木) 18:20:27 ID:???
ODBCってのは、アプリがDBを操作する方法をオープンな規格でやりましょう、って話だ
ドライバがDBと通信する方法を既定しているものではない
ODBCドライバが存在すれば、どんなDBでもODBC経由でアプリから接続できるってこと
つまり
OracleはDBそのものがODBC準拠だからODBCドライバがあればいけるってこと?
それともOracleをODBCに準拠させるためにOracleが出してるODBCドライバが必要で、
さらにアプリ側にODBCと通信するためのドライバが必要ってこと?
OleDBなら、接続文字列を変更するだけでSQL ServerもOracleもMDBも行けると思っていたのだけど、
認識間違ってますかね?
>>236 オラクルが直接ODBC準拠じゃない
オラクルをODBCで操作するためには、オラクル用のODBCドライバが必要
オラクル製でもマイクロソフト製でも基本的にはアプリからの違いはない
ODBCと通信するんじゃない。(ドライバと)ODBCで通信するんだ
ドライバとアプリはODBCで通信する。ドライバとDBはDBごとのネイティブで通信する
オラクル用のODBCドライバなら、ドライバとDBとのネイティブ通信にオラクルクライアントが必要
これ以上はDB関係の板行って聞け
>>238 つまり
何かのテクノロジ-->>(テクノロジとODBCが通信するためのドライバ)-->>(ODBC規格)-->>(オラクルにODBC接続を提供するドライバ)-->>オラクル
ってこと?
>>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版
http://msdn.microsoft.com/ja-jp/library/77d8yct7.aspx
どのみちオラクルクライアントが必要
DLLコピーすりゃいいんじゃねえの
>>241 いまさらODBC使う意味がないってのには同意するが、>238は別に間違ってもいないだろう
そして、.NETのオラクル用データプロパイダ使ってもオラクルクライアントのインストールは必要だぞ
先日検証用にOracle Database 10g Express Editionを入れたのですが、
この時ODP.NETなんかも知らないうちにこっそり入ってきたと考えてOK?
つまりOracleClientはOracleに接続するためのAPIセットだからインスト必要ってこと?
DLLのみコピーするとか手段の違いは抜きにして。
そゆこと
VWD 2008 SP1 で開発しております。
SqlDataSourceのデータソース構成ウィザードで
パラメタつきのストアドを選択し、パラメータの定義まで進むのですが
パラメータソースの部分にNone以外選択できません。
別マシンのSP1ではないVWD 2008だと普通にControlなどを設定できます。
VWDをインストールしなおした方が良いのでしょうか?
それとも何か私の方で足りない設定などあるのでしょうか?
Web 開発会社のビジネスを支援する Microsoft(R) WebsiteSpark(TM) プログラムを開始
http://www.microsoft.com/japan/presspass/detail.aspx?newsid=3766 【参加要件】
・Web 制作や開発業務を主なビジネスとしていること(Web サイトなどで主業務が明確になっていることが必要)
・従業員数が25名以下であること
・Windows プラットフォームを用いた新しいドメインのWeb サイトの開発を積極的に推進すること(6ヶ月以内に1サイト以上構築)
※マイクロソフトのパートナープログラム「マイクロソフト パートナー ネットワーク(MPN)」へ未参加の場合、
WebsiteSpark への参加と同時にMPN にも参加が必要
【参加特典】
・マイクロソフトの Web 開発ツールやデザインツール
Visual Studio(R) 2008 Professional Edition 3 ユーザー ライセンス
Expression(R) Studio 3 1 ユーザー ライセンス
Expression Web 3 2 ユーザー ライセンス
・検証、デモンストレーション用途で利用できるサーバー製品※
Windows Web Server 2008 3 ライセンス
SQL Server(R) 2008 Web Edition 3 ライセンス
※:自社の環境で本番運用を行う場合は、
別途サービスプロバイダ向けのライセンス契約(SPLA 契約)の締結が
必要となります。ただし、Windows Web Server 2008 と
Microsoft SQL Server 2008 Web Edition について、
それぞれ 4CPU ライセンス分まで WebsiteSpark の参加期間(最大3年間)、
SPLA の費用は必要ありません。
さてと、精鋭25名で分社するか・・・
感覚の問題だしスレチなんだが、100人から25人とかだと精鋭って感じしないよな
1000人から25人だと精鋭だけど、100人とか200人から25人だと上位25名って感じ。
おっと市場原理主義の悪口はそこまでだ
大体、組織の5%位の人間が精鋭。
でも実際に本当に凄いのはその中のさらに5%くらい。
なので、真に精鋭と呼んでいいのは25%位しかいないと思う。
>>254 算数大丈夫か??0.25%だろ??釣られてる??
5%×5%=25%
精鋭25人の方が本社だろ。
なるほど
100人中25人が本社の精鋭で、そのた75人のうち25人が分社時の精鋭と。
半分より上程度か('A`)
動的コンパイルだけで動作させたいのでaspxファイルだけで
作りたいのですが、こんなのは異常ですか?
別に
インストール=ソフト納品だから便利でいいじゃん
クラスファイルとかはどうやってaspxファイルに取り込めばいいでしょうか?
<script runat="server" src="hoge.vb"></script>
とかださくないですか?
>>260 WEBサイトで動的コンパイルさせたいだけならコードビハインドでもできる
普通はaspxにコードは書かないと思うが、まあそれで問題ないならいいんじゃない
>>263 App_Codeにソース入れておく
GridViewのヘッダー固定について、これ!っていう手段が見つかりませんが、
皆さんのところでは客等からの要望ありませんか?
GridViewで表示させるテーブルが決まっているなら、むりやりCSSでフリーズ
させれば良いようだけど、いろんなテーブルをバインドするような可変の場合は
どうすればいいのかなぁ?
>>266 金で解決する=その手のコンポーネントを買う
App_Codeって.NET Framework 2.0からなんですか?
.NET Framework 1.1には同じような機能はないでしょうか?
レガシーASPのApplication.Lockがしたいのですが
ぬるぽが発生してしまいます。
何か間違っていますでしょうか?
Public Class Test
Public Sub test()
Dim hoge As New System.Web.HttpApplication
hoge.Application.Lock()
hoge.Application.UnLock()
End Sub
End Class
>>269 ページ外のクラス内ならこうかな
HttpContext.Current.Application.Lock()
HttpContext.Current.Application.UnLock()
Aplicationオブジェクト使うより、Globalな静的メンバ使った方がいいと思うけど
>>269,271
お前の言うレガシーASPってなんなんだ?
普通レガシーASPっていったら、ASP.NET以前のASPだと思うが
その場合、そもそも.NET Framework関係ないんだが
>>273 .NETじゃないASPのプログラムを.NETで書いてるのか?
そもそもASPのApplicationとASP.NETのApplicationは別物だと思ったが
ASP でこうやるのを ASP.NET ではどうやるの?
ってことだろ。
それぐらいわかれよ。
>>275 おお、そういう事か
ニホンゴムズカシイネ
Panelの大きさをIEの画面サイズに合わせて動的に拡大縮小することはできませんか?
>>277 画面サイズはクライアント側が決めてるのでサーバ側のプログラムでは無理
クライアント側のスクリプト書けばできるかもしれない
jQuery使えば余裕
というかpanelそのものにサイズという概念がないと思うぞ
それを囲んでるtableや、panel内に記述してあるtableやら何やらのサイズが
影響を与えてるだけで。
Panelはほとんどの場合<div>で出力されてた気がする
Cssclassプロパティもあるし、スタイル指定できないことはない
まあ、<div>になる保証はないし、厳密にやるならパネルを囲む要素かパネル内に
なんらかの要素を配置してそいつのサイズ指定するべきだな
どっちにしても動的に変更するならクライアントスクリプトの範疇
クライアント側でサイズを動的に変更できる要素って何がありますか?
いろいろあるけど、それはもうここでは書ききれない
リファレンスを見て
一般的に多用されるものトップ5を教えてください。
<table>
<td>
<tr>
<div>
<img>
すまそ
ImageButton objButton = new ImageButton();
objButton.ImageUrl = "img/test.gif";
objButton.Attributes["onmouseout"] = "src='img/test.gif'";
objButton.Attributes["onmouseover"] = "src='img/test2.gif'";
この ImageButton オブジェクトを Table に動的に配置したら、OnMouseOver がきくことはきくんだが、
なぜか最初にマウスを持っていった時に、ステータスバーに"localhost に接続しています"と出て、若干時間がかかる。
これって最初にサーバーに test2.gif を取りに行ってるってこと??
test.gif は ImageUrl プロパティで指定してるから最初に取りに行くけど、これと同じタイミングで取りに行かせる方法はないかな〜?
もしお門違いな質問してたらスマソ
288 :
nobodyさん:2009/10/14(水) 10:06:24 ID:b+wqBLjU
普段より自己購入や交換などで集めたFX情報商材を下記のブログにて格安販売しております。
どんな商材でも1情報500円という破格で放出致します。
デイトレンドFX、グローバルFXセット、FX−AAA、今や絶版のフェニックス投資法からエコスキャルT、Uなど
最新の商材も多数取り揃えております。
FXの書籍を書店で買うよりも安いです。勿論、ご入金は商材を確認されてからで結構です。
http://fxsyouzai.7narabe.net/ 平素は交換用のブログとしており表立って販売の記述はありませんが10月末まで期間限定で提供致しますので
奮ってご参加下さい。
購入希望の方はブログ内左側のメールフォームよりお願いします。
フライトシムスレでやれ
Σ(゚∀゚;)
boolean型のテーブルをGridViewにバインドすると、IEで表示させたときにcheckbox表示されますが、
このbooleanのTrue/False の状態を GridViewRow.Cells(i) を使って取得したいときには、どのように
コードを書けば良いのでしょうか?
メソッドやオプションを調べて試しているのですが、見つけられずにいます。
よろしくお願いします。
>>287 dクス
さぁそのコードをどこに入れようか…
>>291 CType( GridViewRow.Cells(i).Controls(0) ,CheckBox ).Checked
>>293-294 ありがとうございます。
ご存知でしたら追加で教えて頂きたいのですが、テーブルの中には、StringやらInt32やらもまじっています。
GridViewRow.Cells(i) の中身が Checkbox かどうかをIF文で判定して処理を振り分けたいのですが、
どのようにCheckbox判定コードを書けばよいのでしょうか?
is演算子(C#)
TypeOf…Is式(VB.NET)
>>296 以下のようなコードで試しているのですが、エラーとなります。
どこを直せば良いのでしょうか?
[ArgumentOutOfRangeException: 指定された引数は、有効な値の範囲内にありません。
パラメータ名: index]
For i As Integer = 0 To row.Cells.Count - 1
If TypeOf row.Cells(i).Controls(0) Is CheckBox Then
MsgBox("発見!")
End If
iの値が行数を超えてるんじゃね?
ああ、もしくはControls(0)が存在していない可能性もあるな
仮にその時に存在していても
例えばIsPostBack==trueでない時もオブジェクトを見に行ってるとか、
GridViewとかのViewStateがfalseになっていて、
データバインドされてない状態でRowを拾いにいってるとか、
そんな可能性もあるので注意ね
デバッグ機能を使いこなすんだ
>>299 最終的にはGridViewの中身をCSVに落とし込みたいのですけど、
boolean型のセルだけ空白になってしまうので、True/Falseに変換
した上でCSVに出力したいのですが、Controls(0)が存在しないのか、
それとも指定の仕方が間違っているかのどちらかですかね。
わからん
考え方として、これでエラーが出ないか確かめなよ
For i As Integer = 0 To row.Cells.Count - 1
End If
上でエラーでなかったら、次はこれ
For i As Integer = 0 To row.Cells.Count - 1
If TypeOf row.Cells(i) Is CheckBox Then
End If
その次はこれ
For i As Integer = 0 To row.Cells.Count - 1
If TypeOf row.Cells(i).Controls(0) Is CheckBox Then
End If
そうすれば追加したところのどこでエラーがでてるのかわかるでしょ
2番目でエラーならCells(i)が実際の存在する行数以上の数値をiに入れてるからエラーとかわかるでしょ
まずエラーの出てる行を特定しろよ
ちゃんとエラーメッセージみてるのか?
まあ、たぶんControls(0)が存在しないんだろうけど
いきなり(0)使わないでCount確認してみろよ
GridViewに表示させてるデータはバインドしてるデータじゃないのか?
CSVに吐き出すならバインドしてるデータから出力すればいいような気がするがのう
boolean型のセル以外は普通にCSVに出力できるので、
IEがチェックボックス表示するboolean型のセルの判定と
そのTrue/False状態が取得できれば完成なのですが、
そもそも、row.Cells(i).Controls(0) というコードが勘違い
ということですかね。
とりあえずレスしてもらったことをためせw
いや、実際レスされたことは試し済み。ググッて知ってることばかりだから。
なんだ釣りだったか
ここ最近、質問者の技術力を超える住人からの書き込みが無かったって事。
低レベルな住人しか寄り付かないスレ?
まずは日本語の技術力を学んで出直してこい
しかし、なんで問題の切り分け方を理解(実行)できない奴ばかりなんだろうな
すげーググってリンク貼るのが高技術力の証拠ですね!
英語なんで分からないとか言い出しそう
しかもstackoverlflow.comのほうは鯖落ちしてるっぽくてみれないんだが
nslookupで名前は解決できるから鯖落ちだよな?
落ちてる鯖を勧めるって、ひょっとして中身確認してないのかな?
>>310 ありがとうございます!やりたいことが実現できました。
これはわかりやすい自演ですね
プログラム板でスレをみてる人のこと「住人」なんて呼ぶ奴みたことないわ。
少なくともASP関連じゃ皆無。なんでだ?
>低レベルな住人しか寄り付かないスレ?
とかいきなり、傍観者が現れて、スレにいる人を「住人」と呼び罵倒し始める
↓
紹介したサイトはサーバ落ち
↓
それをみた依頼者がサーバが落ちてるのにも関わらず中身をみれて無事解決
↓
自演バレバレ ← いまココ
たぶんgoogleキャッシュで見ました!とかの回答がくるに100ペソ
>>301-302で問題を切り分けろって言われてて、
>>304にもレスしてもらったことを試せって言われてるのに、
>そもそも、row.Cells(i).Controls(0) というコードが勘違いということですかね。
なんていって、
>>305でレスされたことは試し済みと逆切れしてりゃ誰も返事なんてしてくんないよw
だいたいどこまで本人の書き込みなんだか
参考にして考えるのはいやだから、そのものソース書いてって書けばよかったのに。
そうすれば俺も返答しなくて済んだんだ。
参考のサイト普通に見れるけど?
何だか異常に噛み付いてるキティが住み着いてるようだね。
質問スレなんだから、回答につながるヒントなりを書けば良いのでは?
ASP.NETスレにいるのに障害復旧とか知らないの?
みんな〜、あまりキティを刺激しないように。根に持つタイプみたいだから。笑
根拠の無い持論を繰り広げて感じの悪い書き込み続けてる馬鹿って何なの?
俺323だけど、320じゃないよ。ホント気味悪いね。
>>324
はいはい
おまえらトリップつけてやってくれよ
IDでないからNGできないからさ
質問しといて逆ギレとかw
329 :
nobodyさん:2009/10/17(土) 03:07:14 ID:XTquIeJe
ASP.NET MVCってどうなん?
これからやるプロジェクトに適用するべきか否か悩んでる。
これから始めるなら、MVCか?
案件の内容次第だろ。
MVCはWeb Formsに取って代わるというものでもないし。
私女子中学生だけど喧嘩はそこまでにして。
MVCはLAMPやJava開発者を取り込むのが目的じゃね?
ASP.NET知ってればそれで済むと思う。
ViewStateが問題になる携帯でもASP.NET for Mobilesがあるし
ここの住民はスルーカ無さすぎてワロスw
いや、約一名だけ粘着キモが張り付いてるだけだよ。
おまえだろ?
IIS5.0からIIS6.0に移行したところ、以下のエラーが出力されました。
MSで調べてもIIS4.0などの情報しかなく困っています。
どこを修正すればよいでしょうか?
Microsoft VBScript実行時エラー エラー'800a01ad'
ActiveXコンポーネントはオブジェクトを作成できません:'********'
/***/****.asp
とりあえずスレタイが読めるようになるのが先決じゃね
質問する→回答に対して逆切れ→そのまま居着いて荒らす
こんなパターンが多いな。最近。
おまえだろ?
↑こいつこいつ
342 :
336:2009/10/18(日) 21:49:32 ID:???
今手元にないので、明日また来ます。
さてと、今日は粘着キモ馬鹿は張り付いてるかな? 何分で釣れるか楽しみ。藁
>>329 DB制約付けたりとかも含めて完璧にVS上で定義して全てフレームワークに任せるなら、マジオススメ。
下手なカスタマイズが入るとマジ地獄。
あれ、今日は粘着キモ馬鹿はいないのかな?折角、釣ってやろうと思ったのに。笑
おっと、今日も粘着キモ馬鹿のご登場です。1時間以内で釣れました。藁
>>347 いや、おまえがキモい。定期的に釣ろう釣ろうとして待ってたの?
釣り師が13分で釣れたとか粘着どっちだって話。
あと何時間か定期的に確認すんだろ?がんばってな。
あんまりキティを刺激しないほうがいいぞ。根に持つみたいだから。
>質問する→回答に対して逆切れ→そのまま居着いて荒らす
このパターンにビンゴだな
くだらないやり合いは 10レス程度で後は自重してくれよ。
今日も、また粘着キモ馬鹿は張り付いてるかなw
技術力の無い住人は、粘着キモ馬鹿だから、すぐに釣れそうだけど。藁
画像を取得するAPIがアプリケーションサーバにあって、
その画像を一定期間IISでキャッシュしています。
それなりの大きさの画像なのでメモリ上にキャッシュせずに
ディスク上にキャッシュしているのですが、
古くなったキャッシュを削除するにはどうしたらいいでしょうか?
IISの起動・停止時にキャッシュの全削除、定期的に古いキャッシュの削除
をやりたいです。
そういや、定期的なバッチ処理はタスクでいいけど、
IISの起動と終了時に、外部のプログラムを実行することなんてできるのかな?
>>358 Application_Start、Application_Endイベントじゃ駄目か?
Application_Startは、初めてアクセスがあったときじゃなかったっけ
キャッシュを削除するとかは、サービス起動時に行いたいはずだから、
駄目といえば駄目なのかもしれない。
IISの起動停止じゃなくてOSの起動時でよくね
任意のIIS再起動時にもやりたいならそのときの作業に削除処理を組み込めばいいと思う
IISの状態を常駐タスクから見てそれから起動すればよい
>>361 仕様次第だけど、OSの起動とIISの起動は別の場合があるからなぁ
>>362 それだと見逃す可能性もあるよね?
スキャン周期内の起動停止はあきらめろ
>>365 フリーズしたりして、自動再起動したときには実行されないから。
プログラムではなくどうしてもタグでコントロールを作成する必要があるのですが、ループの中で作成すると異なるIDをつけることができず困っています。
<% for (int i=0; i<3; i++) %>
<% { %>
<asp:Button ID="???" runat="server"/>
<% } %>
連番でも良いのですがどのように付ければ良いのでしょうか?無理なのでしょうか・・・。
>>368 >プログラムではなくどうしてもタグでコントロールを作成する必要があるのですが
なんで?
>>369 別の人が書いたコードを改造しているのですが、コードの修正規模を最小にしたいためです。
簡単にIDを設定する方法がないようであれば、書き直しも検討しなければなりませんができれば避けたいと考えています。
>>370 >コードの修正規模を最小にしたいためです。
その発想やめた方がいいよ…いやマジで。書き直した方がいいと思う。
変なソースを保守するのは大変だと思うけどさ。
既存のコードから逃れるために集約を多用するのがいいかも。
みなさん、ありがとうございます。どうやら簡単にはできなさそうですね。色々調べても初心者の自分には見つけられなかったはずです。
頭の中がPHPになっているものですから切り替えが必要ですね。うーん、頑張ります。
>>374 タグでコントロールを作成っていう意味がわからない…。
ともかく、普通にButtonをNewしてRenderControlすればいいんじゃないの?
idはサーバー側で自動で割り振ってくれたと思うけど。ctl00_xxxみたいな連番で。
>>375 aspxファイルにコードを書けばよいじゃない、という発想。
377 :
nobodyさん:2009/10/27(火) 02:04:17 ID:JPv1u5Ye
>>375 意味不明ですみません。「タグでコントロールを作成」というのはButton btn = new Button()
と書くのではなくて<asp:Button runat='server'/>とaspタグを使うことを意味していました。
以下のような構造の時に動的に作成されるDropDownListにユニークなIDを割り当てたいのです。
これは後からDropDownListに追加するListItemを制御したり、DropDownListの初期値を制御
したいためです。
<% for (int i=0; i<Hoge1.Count; i++) %>
<% { %>
複雑な構造のHTML(1)
<% for (int j=0; j<Hoge2.Count; j++) %>
<% { %>
複雑な構造のHTML(2)
<asp:DropDownList ID="???" runat="server" />
複雑な構造のHTML(3)
<% } %>
複雑な構造のHTML(4)
<% } %>
このようなケースでは一般的にどのようにすべきなのでしょうか?
ID="ddl<%# Eval(i * Hoge1.Count + j)%>"のような表記が可能なのかと推測したのですが当然
ダメでした…。
よく認証画面などで見かける、数字の画像をランダムに
生成する機能は、何を使えば実現できますか?
フリーウェアでそういった機能のはありますか?
>>377 そもそもの作りが糞。
一般的にはRepeaterやListView等のコントロールのTemplateを使用します。
10年位前の無印ASPなやり方な上に
わざわざサーバーコントロールを使うことで縛りを設けているマゾ仕様。
とりあえずID云々の前に各コントロールへの参照が取れないんだから、
一般的な解決策はほぼ絶望じゃないかな。
>>378 Captchaじゃなかったっけ?
380 :
nobodyさん:2009/10/27(火) 08:42:02 ID:JPv1u5Ye
>>379 ご回答ありがとうございます。了解しました。IDについてはあきらめようと思います。
それにRepeaterやTemplate等の代替え手段を教えていただいたのは非常に助かります。
これから勉強してみて書き換えたいと思います。ありがとうございました。
>>377 それでも出来たと思うよ。
<%#(i * hoge1.coint + j).ToString() %>
とか文字列にする必要があったような。ひょっとしたら#いらないかも。
ただ、ASP.NETはそんなやり方はしないので、
「ASP.NET コントロール 動的生成」あたりでググって調べてみるといいと思う。
たぶんaspxファイルにはPanelやPlaceHolderなどのコントロールだけ配置して
コードビハインドのメソッド内でfor文でコントロールのインスタンスを動的に生成して、
Panelに生成したコントロールをaddしていく形になると思う。
あれ<%$ %>だっけか?
実行時バインドなんてほとんど使わないから忘れた。
出先なので自分のソースも調べらんないし、そのへん調べてみて。
383 :
nobodyさん:2009/10/27(火) 09:06:08 ID:JPv1u5Ye
>>381 具体的なやり方まで教えていただきありがとうございます。作りは悪いのはわかっていても
応急手段でIDの取得ができると本当に助かるのです。今は試せる環境にいないのですが、午
後からでもトライしてみます!
それでもいつかはやはり作り直しが必要だということは認識できました。
384 :
382:2009/10/27(火) 11:40:35 ID:???
もどってきたのでテストしてみるよ
飯食ってからだけど
上下にページャーを表示したgridviewで、
上のページャーとヘッダの境界の色を変更したいのですがうまくいきません。
どのbordercolorを変更すれば良いのでしょうか?
>>383 あれごめん。
今試した範囲だとIDはやっぱり実行時バインドで設定できないみたいだ。
自分の勘違いだったっぽい。
>>385 GridViewのヘッダを表示してる<tr>要素に対してと、Pagerを表示している<tr>要素にしか
スタイルシートを設定できないので、その範囲で設定するしかないんじゃないかな。
ただPagerにスタイルシート適用すると上下両方とも反映されてしまうので、
上下対称に設定したいのなら、ヘッダの上のラインとフッタの下のラインに対して
スタイルシートを適用すると擬似的に境界の色は変えられると思う。
387 :
385:2009/10/27(火) 13:43:44 ID:???
>>386 …よく分かりません
現状はこんな感じなんですが…
http://www.dotup.org/uploda/www.dotup.org308580.jpg <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1"
style = "text-align:center" HorizontalAlign="Left" AllowPaging="True"
BorderColor="Black" AllowSorting="True" Font-Size="Small" PageSize="15" >
(ry)
<Columns >
<asp:TemplateField HeaderText="flag">
<asp:BoundField DataField="hinban" HeaderText="品番" SortExpression="hinban" >
<HeaderStyle BorderColor="Black" />
<ItemStyle BorderColor="Black" />
</asp:BoundField>
>>387 GridView.PagerStyleプロパティで変更出来るんじゃね
>>388 PagerStyleでやると、上下に配置したのにラインがでちゃう。つまり
PagerStyle
<LINE1>
Grid
<LINE2>
PagerStyle
<LINE3>
PageStyleで下線を付けて<LINE1>を書こうとすると、<LINE3>にも予期しない下線が書かれちゃう。
本当はGridとの境の<LINE2>に線を引きたいはずの場合が多いのに。
>>387 ちょっと試してみるよ
例えば<tr>に対してこんなふうにスタイルシートを設定して、
<style type="text/css">
<!--
tr.test { border-top-color:#00CC00;border-style:Solid; }
-->
</style>
HeaderStyleのCssClassに対してtestを設定するとか。
そうすると境界線のラインだけ色を変更するなり、太さを変更するなりできる。
根本的に別のラインを作りたいとかだと、自分でテンプレートをいじるなりしないといけないと思う。
>>386 わざわざ試していただきありがとうございます。こちらもできないことが確認できました。他の手段で頑張ります。
>>377 サーバコントロールじゃない普通のHTML要素なら、
id="ddl<% Response.Write(なんちゃら)%>"でできる
id="ddl<%= なんちゃら %>でも上と同じ意味
今どうなってるかわからんが、
サーバコントロールにする必要あるのか?
あるいは、ほんとに個別のIDが必要なのか?
個別のID振ったとしても、ページでコントロール生成したら、
実際にインスタンスが生成されるのはHTMLのレンダリング時だから
そのコントロールを操作するタイミングが無いぞ
それってひょっとして
文字列をランダムに生成→その文字をbitmapなりで画像にしてランダムに歪ませる→画像として表示
なんてことやってんのかな?
はてな界隈のRubyでつくってみた()笑 とかならそうかもしれないけど、
スパムする方もCAPTCHA破りの画像認識ツールを使っているそうで、
それなりなアルゴリズムを要するんだってさ。
で、そのアルゴリズムが公開されたら、スパマーもそれに対抗して(ry
>>379 >>394 ありがとうございます。あれはCAPTCHAっていうんですね。
自分のサイトで、スクリプトで大量アカウントを作成される可能性
を減らしたかったのです。
ちなみに、中国のサイトで、漢字(簡体字)版のCAPTCHAを見たことがあります。
ピンインがわからないと文字を入力できないというだけでもつらいのに、
文字が歪んでいるから、元の漢字すらわからない。
日本人の自分ですら入力できないのだから、非漢字言語圏の人
にはお手上げだろうなぁ。
漢字版は、国外からのアクセスを禁止したい場合にはいいかもw
>>395 上のサイトみると、ノイズのレベルを調整したりフォントも変更できる
ようで、歪み自体は完全ランダムではないみたい。(文字列は長さを
指定した上でのランダム文字列)
NTTdocomoがhtmlに直書きでやらかしてたなw
どうせデータの仕事だろうけどw
暗号化してポストバックするか、セッションで持つとか、そんな感じ?
NTT-MEかもしれんぞ。
MEなら一度下請けしたことあるけど、うーん、・・・
StringTemplateをWebサイトで使う方法はないのでしょうか。
Web アプリケーションでは使えるのですが。
sessionにデータ突っ込むのってどの位のサイズまで許されるんかなぁ。
3MB位のオブジェクトを突っ込んでもいいんだろうか。
ちなみに同時アクセスは10人程度を想定。無論、InProcで動かしてる前提で。
適切に破棄されて、マシンスペックが問題なければ、好きなように使えばいいんでないの?
403 :
sage:2009/11/18(水) 12:47:49 ID:???
>>402 全然理解して無い無能が無理して回答しなくて言いと思うんだ。
柔らかい言い方すると、馬鹿は黙ってすっこんでろ池沼。
>>401 100KB以下に抑えるべし。
じゃないとページ開く度に負荷がかかる。3MBとかならSession情報をDBに突っ込む事も
考えたほうがいい。
そんな当たり前の回答は皆思いつくけど回答してないだけで、
動くか動かないかでいえば
>>402まちがっちゃいない。
StateServer利用してDBに入れたらシリアル化させる必要があるから、
余計に負荷がかかるんじゃないか?
InProcで問題ないなら、同時使用人数が10人で3Mぐらいなら、
今のサーバなら十分じゃね?
やったことないから適当ぶっこいてるけど。
>>403の100KBって根拠は不明だな
あとページの負荷って、セッションをDBにいれると、DBアクセスの
オーバーヘッド分だけ負荷は増えるんだぜ
>>402はまったく間違えてはいないが、問題は適切な廃棄が難しい
セッションの廃棄はほとんどタイムアウトでしか不可能だから
同時アクセス10人ってのが、同時リクエスト10人なら
1リクエスト1秒でも10分で6000アクセスだぜ
これが全部別セッションで3M使ったらメモリ持たんわな
セッションが一つなら、3Mだろうが10Mだろうが平気だがな
結局のとこ
セッションサイズは小さければ小さいほどいい
実際の限界はマシンスペックと処理するリクエスト数による
っていう、なんの参考にもならん回答に落ち着くわけですわ
一番理解していないのは
>>403でした。ちゃんちゃんってことでFA?
男は黙ってQueryString
赤間本には「1つの目安として、数100KBを超えるデータをSeesionオブジェクトに格納する場合には注意が必要」
と、ふわっと書いてあります。
俺の持ってるプログラマ読本には、
メモリ空間は16ビットなのでメモリの消費には絶えず気をつけろって書いてある
>>409 その記述がどこにあるのか正確な所がわからんが、
数百キロで注意なら、百キロなら平気だと取れなくもない
.NETエンタープライズWEBアプリケーション開発技術大全Vol.3では、
100K以下を指標としているが、その脚注に、「実際の上限はシステム構成によって変わるため
最終的にはパフォーマンステストを実施して決定することを推奨する」とある
Iただし、この本ではInProcモードは推奨してない。そしてInProc以外ではセッションの
シリアライズ等に要する時間が無視できないほど大きくなる、とある
さらに、この本は.NET1.1時代の本だから、今の環境にそのままあてはまるとは言えない
まあ、結局のとこテストして様子見てみろ、としか言えない
ただ、InProcからそれ以外に変更すると、InProcでしか格納できないものを
格納してたりしてわけわからんバグのもとになったりするんだよなぁ
なぜ
>>401はInProc前提なんだ?
同時アクセス10人が何を意味するかだよな
単純にユーザが10人で、だから同時アクセスの最大数も10とかなら、
全然問題ないんじゃないか?
結局、セッションが適切に破棄できて、サーバスペックが問題ないようなら、
使えばいいんでない?という
>>402の結論に帰結する。
というかInProcって、プロセス再起動とかで勝手に消えて困るやつじゃ。
>>413 それも一つの解釈だろ?結論ではない。
何を言ってるんだ?
412 名前:nobodyさん[sage] 投稿日:2009/11/18(水) 18:35:31 ID:???
>>402の結論に帰結する。
413 名前:anonymous[sage] 投稿日:2009/11/18(水) 18:59:05 ID:???
>>412 お前 >406 ちゃんと読んでる?
415 名前:nobodyさん[sage] 投稿日:2009/11/18(水) 19:08:49 ID:???
>>413 それも一つの解釈だろ?結論ではない。
412は結論といってる様だが?
>>416 結論は両者ともマシンスペック次第って言ってるけど?
なんでそんなに日本語理解能力が乏しいの?
必死ダナー
すみません、どなたか教えて欲しいんですが、現在GligViewをつかって表を表示
させているんですが、現在はとりあえずMAX1000明細に制限して、もし制限を
超えるようなら「検索条件を変えてもっと明細を絞って下さい」みたいなメッセ
ーじを出しているんですが、お客さんからの要望で抽出した明細をきちんと全部
みたいと言われていて、条件を指定しなかったら万単位の明細行数になるんでペ
ージ切り替えでもいいですかって方向で持っていこうとしたらページ切り替えは
分かりにくいから駄目だといわれたんですが、GOOGLEマップみたいに画面
をスクロールさせるとちょっとづずデータを取ってくるような仕組みはASPで
も可能なんでしょうか?
menuItemをクリックされたらjavascript:_doPostBackが呼ばれるよりも前に自前の
JavaScriptを実行したいんだけど可能?
要は「画面を移動します。よろしいですか?」みたいなダイアログを出したい。
ButtonならOnClientClick()で楽勝なんだけど。
>>419 それAJAXで実際にやってみたけど、上のログにも感想あると思うけど、
AJAXで実装したら、サーバへのアクセス〜表示までのタイムラグがありすぎて実用的でなかった。
>>420 >>186参照
422 :
nobodyさん:2009/11/20(金) 00:30:35 ID:Fa9imoF+
教えてください(o_"_)o
Microsoft.Practices.EnterpriseLibrary.Loggingを使って
テキストファイルにログを吐く場合に、文字コードを指定することは可能でしょうか?
Message に入れる前に変換すればよかろ。
424 :
nobodyさん:2009/11/23(月) 01:06:05 ID:4oP4nvDo
ハマってしまっているのでどなたか教えてください。
Public clsA As A = New A
Public clsB As B = New B
上記記述にてクラスファイルを参照し、実行した際に下の行だけ
「見つかったアセンブリのマニフェスト定義はアセンブリ参照に一致しません。」
というエラーが出てしまいます。
原因はなんでしょうか?
もうちょっと詳細を書け
AとかBとかはどこで定義されているんだ
説明が不十分だったみたいですいません。
aspx.vb内の
Partial Class ClassA
Inherits System.Web.UI.Page
Public clsA As A = New A
Public clsB As B = New B
こういった記述です。
AとBは別のクラスファイルにPublic Classとして宣言しています。
他に何か書かないといけない事あったら言ってください。
まず開発環境かけ
WEBアプリなのかWEBサイトなのか
AとBは同じファイルに定義してあるのか?
まあなんかテンポラリ削除したら直りそうな気もする
何度も申し訳ありません。
VisualStudio2005で作ったWEBアプリで、IIS上で動作させています。
.NETFrameworkは2.0です。
AとBは別ファイルです。
テンポラリはWeb.configの記述ですか?
WEBアプリとWEBサイトの区別はついてるか?
AとBの定義してあるファイルはどこにあるんだ?
そのファイルは.dllなのか.vbなのか?
テンポラリは標準ではたぶん
c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files
あたり。この中身ズバッと消して見れ
.net 2003(asp.net)の
datagridへのデータの表示方法なのですが、
コード 名称 数 金額
11 テレビ32 1 10000
12 テレビ42 3 60000
21 DVDレコーダ 1 10000
22 BDレコーダ 2 40000
のような売上データをDBから取ってきて、
コード 名称 数 金額
11 テレビ32 1 10000
12 テレビ42 3 60000
テレビ計 4 70000
21 DVDレコーダ 1 10000
22 BDレコーダ 2 40000
レコーダ計 3 50000
総計 7 120000
のように表示させるにはどうすればよろしいでしょうか。
「総計」に関しては、単純にフッターに表示出来ますが、
「テレビ計」のような中間計を表示させるうまい方法がわかりません。
テレビのコード帯は10〜19、レコーダのコード帯は20〜29です。
恐れ入りますが、教えて頂けますでしょうか。(参考URL等でも)
表示させるだけなら、SQLのCUBEとか、ROLLUPだっけ?を使えばできるんじゃね?
各明細の編集ボタンも表示させたいとかだと不自由かもしれないけど。
Repeaterでやれば各行を集計して、コード帯やらが変わるたびに集計行を表示とか
いろいろできると思うけど。
432 :
430:2009/11/26(木) 02:15:49 ID:???
>>431 SQLで小計出力が出来ることを知りませんでした。
cube rollup 調べてみます。
(datatableをバインドする前に、
新たなdatatableを作って、コード帯が10〜19だったら、
それまでの合計を足して、NewRowに入れて、Addするみたいな
イメージで組もうとしてました)
ありがとうございます。
ROLLUP!そういうのもあるのか
FtpのWebClientとかあるけど、あれってクライアントPCからアップできる?
権限のからみでほとんど使えないだが…
GridViewの「編集」ボタンで、データの[更新日時]にNow()関数で更新日時が自動で
入力される様にしたいのですが、色々調べてみたのですがわかりません。
どうすればよいのでしょうか?よろしくお願いします。
DB:MS Access、VWD2005、VB
RowUpdatingイベントで放り込めば
>>435 Now()が、DateTime.Now()かSQL文のNow()が不明だからなんとも。
単に編集ボタン押した時に、その日付を入れたいなら
>>436で。
ただ、実際の日付更新はUpdate文にNow()を記述して更新したほうが、
日付の更新し忘れがなくていいような気がする。仕様次第だけどさ。
GridViewにDataBindして編集したときって、
編集された内容をViewStateで保持し続けて、
Update後もUpdate前のデータを引きずるんだっけか?
それでSQL文のNow()が反映されないという意味なら、
DataSetで更新後のデータを引っ張るようにSQL文を記述するしかないと思われる。
INSERT **** WHERE ID = @ID; SELECT *** WHERE ID = @IDみたいな
INSERT ****;SELECT *** WHERE ID = SCOPE_IDENTITY();みたいな
×INSERT **** WHERE ID = @ID; SELECT *** WHERE ID = @IDみたいな
○UPDATE **** WHERE ID = @ID; SELECT *** WHERE ID = @IDみたいな
>>437 ありがとうございます。
> ただ、実際の日付更新はUpdate文にNow()を記述して更新したほうが、
> 日付の更新し忘れがなくていいような気がする。仕様次第だけどさ。
この方法で行きたいです。
> GridViewにDataBindして編集したときって、
> 編集された内容をViewStateで保持し続けて、
> Update後もUpdate前のデータを引きずるんだっけか?
> それでSQL文のNow()が反映されないという意味なら、
> DataSetで更新後のデータを引っ張るようにSQL文を記述するしかないと思われる。
たぶん、この現象でUpdate後にDBにNow()が反映されないです。
>>437 以下のテストコード書いてみました。
テーブル名:名簿3
ID(主キー):オートナンバー型(長整数型)
名前:テキスト型(サイズ50)
年齢:数値型(整数型)
作成日時:日付/時間型
更新日時:日付/時間型
<asp:AccessDataSource ID="AccessDataSource11" runat="server" DataFile="~/App_Data/MyDB.mdb"
UpdateCommand="UPDATE [名簿3] SET [名前] = ?, [年齢] = ?, [作成日時] = ?, [更新日時] = Now() WHERE [ID] = ?">
<UpdateParameters>
<asp:Parameter Name="名前" Type="String" />
<asp:Parameter Name="年齢" Type="Int16" />
<asp:Parameter Name="作成日時" Type="DateTime" />
<asp:Parameter Name="ID" Type="Int32" />
</UpdateParameters>
</asp:AccessDataSource>
コードを書いて、動かしてみましたが
> UPDATE **** WHERE ID = @ID; SELECT *** WHERE ID = @IDみたいな
> INSERT ****;SELECT *** WHERE ID = SCOPE_IDENTITY();みたいな
のアドバイスをどう反映させれば良いのかわかりません。
上記コードの動きは、エラーは何も表示されず、更新内容がDBに反映されない。
もちろん「更新日時」情報も更新されず、以前の情報が入ったままです。
>>440 まずデータベースに更新されないところを解決してみたら?
自分はAccessではやったことがないので、よくわからんが。
更新時間の表示はそれからでも遅くないぞ。
442 :
435:2009/11/28(土) 19:11:41 ID:???
>>441 アドバイスありがとうございます。
正しく動くコードを書いてみました。
以下のコードだと、修正内容でDBが更新され、GridViewへも更新された内容が表示されます。
<asp:AccessDataSource ID="AccessDataSource11" runat="server" DataFile="~/App_Data/MyDB.mdb"
UpdateCommand="UPDATE [名簿3] SET [名前] = ?, [年齢] = ?, [作成日時] = ?, [更新日時] = ? WHERE [ID] = ?">
<UpdateParameters>
<asp:Parameter Name="名前" Type="String" />
<asp:Parameter Name="年齢" Type="Int16" />
<asp:Parameter Name="作成日時" Type="DateTime" />
<asp:Parameter Name="更新日時" Type="DateTime" />
<asp:Parameter Name="ID" Type="Int32" />
</UpdateParameters>
</asp:AccessDataSource>
教えてください。
visual web developer 2008で
新しいウェブサイトの作成→F5キーで「デバッグを開始」
をすると、
デバッグを有効にするためにweb.configを変更する
のダイアログ表示後、
LMS
c:\マイドキュメント〜\
http:\localhost:3745\(作った新しいウェブサイト名)\ cntaints an invalid path.
というダイアログが表示してしまいます。
どういった現象で、どう解決したらよいのでしょうか?
>>442 AccessじゃなくてSQLExpress(無料のやつ)で悪いんだけど、こんなんで動作してるな。
しかも、編集したあとはちゃんと日付をもってきてくれてるから、
あとから編集後の行だけ再取得するクエリとか記述しなくてもいいみたいだ。
ちなみに
>>437に書いたのは、.xsd等を使って自分でDataSetを定義して、
Update後に、Updateした行を再取得する方法。
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT * FROM [TableMaster]"
UpdateCommand="UPDATE TableMaster SET TestInt = @TestInt, DateTime = { fn NOW() } WHERE (TestMasterID = @TestMasterID)">
</asp:SqlDataSource>
446 :
435:2009/11/29(日) 17:56:49 ID:???
>>445 アドバイスありがとうございます。
当方でもVWD2005 + SQL Server2005でMS Accessと同じテーブルを作成し確認してみました。
[更新日時] = {fn Now()} の記述で問題なく、更新日時に現在に日時が入力されGridViewに
表示されました。
現在の環境はSQL Serverは使えず、MS AccessをDBとして使用しています。
<asp:SqlDataSource ID="SqlDataSource11" runat="server" ConnectionString="<%$ ConnectionStrings:myDb %>"
SelectCommand="SELECT [ID], [名前], [年齢], [作成日時], [更新日時] FROM [名簿3]"
UpdateCommand="UPDATE [名簿3] SET [名前] = @名前, [年齢] = @年齢, [作成日時] = @作成日時, [更新日時] = {fn Now()} WHERE [ID] = @ID">
<UpdateParameters>
<asp:Parameter Name="名前" Type="String" />
<asp:Parameter Name="年齢" Type="Int32" />
<asp:Parameter DbType="Datetime" Name="作成日時" />
<asp:Parameter Name="ID" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>
447 :
435:2009/11/29(日) 17:59:01 ID:???
>>445 ちなみに、新規データ「挿入」時の「作成日時」「更新日時」の自動登録は以下のコードで
MS Accessで正しく動作しています。
<asp:AccessDataSource ID="AccessDataSource12" runat="server" DataFile="~/App_Data/MyDB.mdb"
InsertCommand="INSERT INTO [名簿3] ([名前], [年齢], [作成日時], [更新日時]) VALUES (?, ?, Now(), Now())"
SelectCommand="SELECT [名前], [年齢] FROM [名簿3]">
<InsertParameters>
<asp:Parameter Name="名前" Type="String" />
<asp:Parameter Name="年齢" Type="Int16" />
</InsertParameters>
</asp:AccessDataSource>
449 :
435:2009/11/29(日) 18:36:02 ID:???
>>448 いいえ、解決しておりません。
MS Accessで新規データの「挿入」時の作成日時、更新日時の自動設定はうまく動くので
すが、GridViewの「編集」「更新」時の更新日時の自動設定を行う方法がわからなくて
困っております。ご指導よろしくお願いします。
>>449 SQLと同じように設定してもだめなの?
451 :
435:2009/11/29(日) 20:01:30 ID:???
>>450 そうなんです。AccessをSQL Serverと同じように設定してもだめなんです。
<asp:AccessDataSource ID="AccessDataSource11" runat="server" DataFile="~/App_Data/MyDB.mdb"
UpdateCommand="UPDATE [名簿3] SET [名前] = ?, [年齢] = ?, [作成日時] = ?, [更新日時] = Now() WHERE [ID] = ?">
<UpdateParameters>
<asp:Parameter Name="名前" Type="String" />
<asp:Parameter Name="年齢" Type="Int16" />
<asp:Parameter Name="作成日時" Type="DateTime" />
<asp:Parameter Name="ID" Type="Int32" />
</UpdateParameters>
</asp:AccessDataSource>
[更新日時] = Now()に記述しても、動かすとエラーメッセージは出なくて、
GridViewの「編集」「更新」で修正した内容がAccess DBに反映されず、GridViewの表示
も当然更新前の内容が表示されるんです。
どこに問題がありそうでしょうか?
Access持ってないから、テストできないんだよな
MSDNでもらったのにOfficeあったかな・
453 :
435:2009/11/29(日) 21:05:19 ID:???
>>452 是非Access探してみてください。
Access2007の場合は、.accdtファイルはASP.NETで認識してくれません。
Access2002-2003の.mdbファイルで保存するとASP.NETが認識してくれます。
UpdateCommand="UPDATE [名簿3] SET [名前] = ?, [年齢] = ? ,[作成日時] = ? & left(?,0) , [更新日時] = now() WHERE [ID] = ?"
とかにすると動くけど、いらないパラメータ減らしたりすると動かないー
?とかなってて、個別にフィールド名を指定できないから、
なんかの順番で自動的に埋めてくみたいになってんじゃないかね。
だから順番とか、数の不一致とかでエラーになるとか。
456 :
435:2009/11/29(日) 23:07:35 ID:???
>>454 UpdateCommand="UPDATE [名簿3] SET [名前] = ?, [年齢] = ? ,[作成日時] = ? & left(?,0) , [更新日時] = now() WHERE [ID] = ?"
で希望通りの動きをしてくれる様になりました。ありがとうございました。
「 & left(?,0)」ダミーで変数をひとつ受け取ってやれば良いと言う事ですね。
↓希望通り動いたコード
<asp:AccessDataSource ID="AccessDataSource11" runat="server" DataFile="~/App_Data/MyDB.mdb"
SelectCommand="SELECT [ID], [名前], [年齢], [作成日時], [更新日時] FROM [名簿3] ORDER BY [ID] DESC"
UpdateCommand="UPDATE [名簿3] SET [名前] = ?, [年齢] = ?, [作成日時] = ? & left(?,0), [更新日時] = Now() WHERE [ID] = ?">
<UpdateParameters>
<asp:Parameter Name="名前" Type="String" />
<asp:Parameter Name="年齢" Type="Int16" />
<asp:Parameter Name="作成日時" Type="DateTime" />
<asp:Parameter Name="更新日時" Type="DateTime" />
<asp:Parameter Name="ID" Type="Int32" />
</UpdateParameters>
</asp:AccessDataSource>
Web画面上の「機能」と言うボタンを押したらプリンタに帳票を出したいんです。
この際、一度プレブー画面を表示して、プレブー画面上の印刷ボタンでも構いません。
クライアントになんかしらんのエージェントでもインストールしない限り、画面のボタンを
押したらプリンタに出力、というのは実現できない気がするんですが、なにか方法がありま
ますでしょうか?
Javaスクリプト併用で画面イメージの印刷だったら画面ボタンをクリックして直接印刷できる
でしょうか?
ありがとうございます。
前に以前のプロジェウトでSVFなら使った事あります。ただ、今回の案件では金額的
な面からSVFは導入されなかたので、もし可能ならブラウザーから直接印刷したい
思いました。
自分はもっぱらActiveReportだなぁ
最近はいろんなのがでてるだろうから、調査しなきゃいけないなあ
iText.netならただでPDF作れるよ
俺はiTextSharpの方を使っている
そんなのあるのか
それはそれで有り難いけど、DataSetを割り付けるだけで帳票できるような、
フリーなソフトがあればなぁ
最近ASP.NETのプロジェクトに掘り込まれて、ASP.NETを勉強している者ですが質問があります。
ポストバックっていう言葉なのですが、何回も言ってるとフィストファックって聞こえませんか?
先日ずっとフィストファックって聞こえて仕事になりませんでした。
>>467 まず耐性を付けることが重要だ。
以後、6を見る度、sexと脳内補完して読むように。
5でチンコでもいいが萎えるようなら止めたまえ。
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<input id="Text1" type="text" />
これの違いって何ですが?
上は標準のテキストボックス
下はHTMLのテキストボックス
>>469 全然違いすぎて、何が聞きたいのかよく分からん。
もうちょっとどういう観点での違いが知りたいのかを明確に。
エラーメッセージをテキストボックスに表示したいのですが、前任者のソースを見ると
<input id="Text1" type="text" />
のテキストボックスに出しているソースと
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
のテキストボックスに出しているソースがあります
何か明確な違い(例えば色を変えられない等)があるのかと思って質問しました。
>>472 分かりやすい説明有難うございます。
URLも参考させて頂きます><
>>466 Responseの中に表示させたくないってのはどういうこと?
htmlのソースの中に表示させたくないってこと?
>>474 AJAX使って、クリックされたタイミングでデータを取得してページを部分書き換えしたい
ということです。そもそものページ(GridViewが貼ってあるページ)を返すときにはまだ
詳細情報を取得していない状態、としたいのです。(明細行数分の詳細情報とか
すごいサイズになってしまうので)
>>475 単に明細ボタンクリックで、詳細を表示させたいということなら、
別ウィンドウを表示させるだけでいいんじゃない?
例えばJavaScriptで、targetが_blankのウィンドウに、
その明細を表示させるためのaspxに、明細のIDをgetなりセッションで渡してあげればいいと思うけど。
別ウィンドウを使ったなんちゃってモーダルダイアログは色々不具合の元になるので
避けたいんです。
>>477 ならASP.NET AJAXを使って、普通に記述するだけで表示できるよ。
GridViewのイベントをフックして、その明細を表示するIDを取得して、
普通にDataSetに明細データを読み込んで表示させればいい。
↑
で、具体的には?
>なんちゃってモーダルダイアログ
ModalDialogExtenderがなんちゃってだぞ。
showModalDialogも知らんのか。
今時showModalDialogとかww
>>479 具体的にも何も、そのまま普通にポストバック形式で記述して、
ASP.NET AJAXを導入するだけでしょ。
それ以上、どうやって具体的に説明すればいいか、
現実的な方法が思い浮かばない。
まあ、一般論として 「普通に〜すればいいよ」 「普通に〜させればいい」 という回答を返す奴は
実は判ってないか、質問が理解出来ていないかのどっちか。
>>483 それじゃソースをよこせって言ってるようなもんじゃん
ポストバック形式で記述します。
ASP.NET AJAXを導入します。
実現できるよね?
じゃ、こういえばいいのかな。
GridViewのそれぞれの行にButtonを設置するよね。
でそのButtonクリックでイベントを発生させて、その行のデータのIDを引数として渡す。
んでaspxでそのイベントをフックして、IDを取得できるので、
そのIDから、データベースよりデータを取得して、DataSetに格納する。
さらに任意のサーバコントロールを設置して、ダイアログ画面として表示させ、
そのダイアログの画面の、それぞれのサーバコントロールにDataSetに取得したデータを表示させる。
これをそれぞれ、目的に合致するようにソースに置き換えればいい。
何か難しいことがある?
その記述で、お前が本質的に質問を理解していない事は分かった。
>>485 ん?
返答の意味と違うのなら答えてあげてよ。
理解している人が。
>>487 そんなの使う必要ないよ。
AJAX使えばいいんだから。
>>487 お前勘違いしてるだろ。
要は明細を表示させればいいわけで、XMLWebサービスを使わなければならない必要はない。
だから、ただASP.NET AJAXを導入すればいいだけ。
だんだん、「AJAXを導入すればいいだけ」をひつこく繰り返してるのは、判ってる判って
ないと言うよりは単に荒らしてるだけのように見えてきた('A`
AJAXを導入すれば何もしなくてもいいと思ってんの?
つーか、「AJAXを導入」ってどういう意味で言ってるの?
インストールすりゃ、ほとんど何もしなくていいんじゃない?
あ、お前、ひょっとしてASP.NET AJAX知らないの?
大抵の事はVisualStudioをインストールすれば出来るよ。
2008使おうよ。
全ての質問はWindowsにVisualStudio2008をインストールすれば解決するよ。
あ、お前もしかしてVisualStudio2008の使い方知らないの?
つまりこうですね。
はいはい自演乙。
AJAXに手を出せば出来る事は、そもそも質問者も最初に書いてる訳で。
具体的な方法が判らないつーてるのに二言目には「AJAX使え」と繰り返すばかり。
馬鹿なの?実は具体的な実装例は判ってないでしょ?
・・・と言う点を指摘されてる事もわからない訳ですね。
具体的も何もPostBack仕様で作って、ASP.NET AJAXを適用するだけだろ?
PostBack仕様は
>>484が書いてる通りじゃん。
つまり
>>484の通りに作って、「ASP.NET AJAXを導入」しさえすれば、
>>497に書いてある通り、「コーディングレスでAjaxを実装できる」ということ。
他にどのように説明をしろと?
もうほっとけって。
ASP.NET AJAXを使ったこと無い人が、ただのAjax技術を想像して文句を言うの図?
>>491 >AJAXを導入すれば何もしなくてもいいと思ってんの?
うんASP.NET AJAXを導入すれば何もしなくてもいいの。
今北新参
とりあえずAJAXっていうのが凄いって事はわかった
なんか似たような拡張もの?でMVCうんたらみたいのもあるけどあぁいうの使ってるの?
他にもこういうのある?
まあ、具体的な実装がよく解らない、つー最初の質問に対しては >487 の回答がベスト。
別にXML Webサービスに分離する必要もないけど、XML Webサービスを使っても実現出来る
以上、あとは実装者のお好み次第。
サルみたいに「AJAX導入」を繰り返すだけの回答で質問者が理解出来てるならそれで十分。
以上終了。
>>503 自演乙
やっと理解できた?ASP.NET AJAX導入についてw
具体的実装もなにも、
ただポストバックする方法で作ればいいだけなんだから、
それ以上の答えなんてないだろw
>478 名前: nobodyさん [sage] 投稿日: 2009/12/13(日) 21:22:18 ID:???
>ならASP.NET AJAXを使って、普通に記述するだけで表示できるよ。
>GridViewのイベントをフックして、その明細を表示するIDを取得して、
>普通にDataSetに明細データを読み込んで表示させればいい。
ほんとこのまんまじゃん。
ASP.NET AJAXを利用して、
GridViewのイベントフックメソッドでid取得して、明細データを取得して表示
これ以上どんな説明すればいいんだ?ww
>>505 お前の言うポストバックする方法ってのはいまいち理解できん
ASP.NETでポストバックじゃない方法があるのか?(MVCはしらん)
具体的にって言ってるんだから、サンプルコードでも出してみてくれ
ASP.NET AJAXの何を利用するんだ?具体的な関数やコントロールは?
!!!!!!!!!!!!!!!!!!!!!!!!!!
>ASP.NET AJAXの何を利用するんだ?具体的な関数やコントロールは?
>ASP.NET AJAXの何を利用するんだ?具体的な関数やコントロールは?
>ASP.NET AJAXの何を利用するんだ?具体的な関数やコントロールは?
>ASP.NET AJAXの何を利用するんだ?具体的な関数やコントロールは?
具体的にって突っ込みされたら「具体的も何も(ry」って返ってくるだけw
あんまり苛めてあげないでw
OK把握した(`・ω・´)
代わりに俺が書いて見るぜ。
まずは、ToolKitインストールするからちょっとまってね(´・ω・`)
あらら、先にサンプルかかれちゃった(´・ω・`)ショボーン
>>511 いや、基本それと同じでしようね。
GridViewのイベントハンドラメソッド内で、何らかのデータを取得して表示させるというのは
>GridViewのイベントをフックして、その明細を表示するIDを取得して、
>普通にDataSetに明細データを読み込んで表示させればいい。
が意味してるんでしょう。
んで、データを後からもってくるというのは、PostBackせずに部分PostBackで
ModalPopup内の表示を変更するということで、AJAXがコードを記述しなくてもやってくれる
=AJAXを設定するだけでOKということだね。
controlのイベントメソッドへの記述を「イベントフック」等と普通言わないし、
2つのサンプルを見ても、AJAXの導入&プロパティの設定だけで期待する動作が
出来ているようには見えない。ModalPopupExtentionやUpdatePanelと言った単語
も一度として出てきていない。
AJAXの導入だけで普通出来る、と言ってる奴は自分では判ってるのかも知れんが、
少なくとも人に伝える、人に教える技術と言う点では全く完全に論外。
>>512 >PostBackせずに部分PostBack
更新が部分的なだけでPostBackは常にページ全体が送られてきていたような。
>>513 >controlのイベントメソッドへの記述を「イベントフック」等と普通言わないし、
それは言い掛かりだろ。
>イベントハンドラ
>イベントが発生した際に実行すべきサブルーチンのこと。イベントフック、イベントリスナーなどの呼び方がある。
>AJAXの導入&プロパティの設定だけで期待する動作が出来ているようには見えない。
だれがAJAXを導入して、プロパティ設定だけすれば実現できるなんて書いてる?
「ポストバック時と同じように書いて、AJAXを利用すれば要求を実現できる」と記述してるだろうが。
いちいちすべて教える義務なんて俺らにはないんだからさwww
AJAXやってみなよ。やればわかるよ?みたいなスタンスでどこが悪いの?
>AJAXの導入だけで普通出来る、と言ってる奴は自分では判ってるのかも知れんが、
>少なくとも人に伝える、人に教える技術と言う点では全く完全に論外。
自分がわからない事を懇切丁寧に教えて貰えないからといって、文句言わない。
泣かない。逆切れしない。
お前がASP.NET AJAXについて何も知らなかっただけだろ?
ASP.NET AJAXを知った今ならどう思う?
普通にポストバックするように記述して、ASP.NET AJAX導入すれば実現できるよ?
って言われたらその通りだろ?ww
まあ、そろそろお二人でメールかなにかでやり取りしてください。
でも、知らないテクノロジを持ち出されて理解できないからって、
自らの不勉強を棚に上げて、
教えるほうが悪いって言われても困るよな。
>>516 普通、あらかじめ用意されている標準のイベントに対しては、フックという表現はあまり使われないと思うがな
で、ここまででお前から具体的な内容はなにもないのな
まさかお前、ASP.NET AJAXってUpdatePanelしか無いと思ってないか?
そんな常識をいまさらお勉強して知識を披露されてもねぇ
>>519 >普通、あらかじめ用意されている標準のイベントに対しては、フックという表現はあまり使われないと思うがな
いちいち言葉の概念とか詳しく記述しないと、とことんまで揚げ足とりかよ。
aspxは、それぞれが一つのクラスで表現されていて、コントロールが発生するイベントは、
そのページを表すパーシャルクラスに宣言された一つのメソッドを実行してるに過ぎないんだぜ?
つまり、イベントをフックする(ひっかける)とは、aspxにメソッドを用意して、
サーバコントロールでイベント発生時に、そのメソッドを実行するように設定することだ。
>で、ここまででお前から具体的な内容はなにもないのな
これまで書いたことはすべて無視か?
知らずに無知をひけらかして逆切れしたのはお前のほうだろ?w
>まさかお前、ASP.NET AJAXってUpdatePanelしか無いと思ってないか?
ほほー勉強してるようだね。感心感心。
このスレってすぐ荒れるよな。
ほとんど知らない奴の逆切れだけどな
ちゃんと教えてくれないとか、意味がわからないとか、そんな不満をこのスレで発散
日本の技術力が衰退するわけだよ
約1名必死なのがいてワロス
> 2つのサンプルを見ても、AJAXの導入&プロパティの設定だけで期待する動作が
> 出来ているようには見えない。
↓
> だれがAJAXを導入して、プロパティ設定だけすれば実現できるなんて書いてる?
↓
>> つまり
>>484の通りに作って、「ASP.NET AJAXを導入」しさえすれば、
>>
>>497に書いてある通り、「コーディングレスでAjaxを実装できる」ということ。
どう読んでも 「コーディングレスで出来ます」 と言ってるようにしか読めません('A`
>>525 これのどこがコーディングレスなのか詳しく。
>じゃ、こういえばいいのかな。
>GridViewのそれぞれの行にButtonを設置するよね。
>でそのButtonクリックでイベントを発生させて、その行のデータのIDを引数として渡す。
>んでaspxでそのイベントをフックして、IDを取得できるので、
>そのIDから、データベースよりデータを取得して、DataSetに格納する。
>さらに任意のサーバコントロールを設置して、ダイアログ画面として表示させ、
>そのダイアログの画面の、それぞれのサーバコントロールにDataSetに取得したデータを表示させる。
>>525 コーディングレスでAjaxを実装できるとは書いてあるが、
コーディングレスでできるなんてどこにも書いてないよな?
どこにコーディングレスでできるって書いてあるんだ?
>>525 それは、部分更新をするAjax化がコーディングレスで実装できるという意味だと思うので、
間違っていないと思いますよ
>>466,475さんの聞きたいことは、
「クリックされたタイミングでデータを取得してページを部分書き換えしたい」
ということなんで「ページの部分書き換え=Ajaxを利用すれば実現できますよ」
で間違っていないと思いますよ。
文章からはデータを取得する方法までは聞かれていないと思うので、
その方法を書いていないからおかしいというのは、極論すぎると思います〜
>>527 貴殿、そろそろ口を閉じた方がいいと思うんだ(´・ω・`)
客観的に見て参考になったのは
>>487 >>510 >>511 だけであり、貴殿の書き込みはたいして参考になっていないのが現実だから(´・ω・`)
後出し感がすげえw
>>528 >部分更新をするAjax化がコーディングレスで実装できるという意味だと思うので
ButtonClickの中でUpdateとShowを行ってるように見えるけど?
まあ今度は「AJAXがコーディングレスで実装出来ると言っているだけで、サーバサイドの実装まで
コーディングレスで出来るとは一言も言っていない」になるのかな。
>文章からはデータを取得する方法までは聞かれていないと思うので、
>その方法を書いていないからおかしいというのは、極論すぎると思います〜
誰もそんなところをおかしいとは言っていないwwwww
>>511 ダイナミックコンテキストだと別途WEBサービスが必要だけど、わざわざPOPUPのためだけに別途
WEBサービスを用意するのは、俺ならちょっと気が引けるかも
ASP.NET AJAX使えばできるで通じるから、後だしだよなぁ
必死杉。モチケツ >532
そもそも、
>AJAX使って、クリックされたタイミングでデータを取得してページを部分書き換えしたい
の回答が
>ならASP.NET AJAXを使って、普通に記述するだけで表示できるよ。
の時点で(ry
>>533 >ButtonClickの中でUpdateとShowを行ってるように見えるけど?
いやコントロールのUpdateとShowのメソッドの実行は、
Ajaxでなくても必要だから必要ですよね?
あなたも仰る通り、Ajaxは描画の部分更新をしてくれる機能なわけで、
それ意外のメソッドを省略してくれる機能ではないのだから、
それは普通の実装だと思いますよ〜
で、UpdateだのShowをしたときの、コントロールの状態の変化を
自分で定義しなくてもASP.NET AJAXが実装してくれてるということではないかと。
何か、基本的なところで勘違いしているような感じがするなぁ(´・ω・`)
538 :
nobodyさん:2009/12/14(月) 22:07:17 ID:bCwbFrem
>>536 >そもそも、
>>AJAX使って、クリックされたタイミングでデータを取得してページを部分書き換えしたい
>の回答が
>>ならASP.NET AJAXを使って、普通に記述するだけで表示できるよ。
>の時点で(ry
正しいじゃないか
>>ButtonClickの中でUpdateとShowを行ってるように見えるけど?
>いやコントロールのUpdateとShowのメソッドの実行は、
>Ajaxでなくても必要だから必要ですよね?
え?
クライアント側の実装の手間を省かせてくれるのがVSのAJAXなわけで、それをわざわざ
「AJAX使えば(クライアント側の)実装はコーディングレスで出来ます」とか言われても、
ナニ当たり前の事言ってるのこの人・・・って感じなんだけどw
ああ、ごめんUpdateとかはUpdatePanelとかのメソッドのことなのね。
ごめん、普通のコントロールのメソッドだと勝手に勘違いしてた。
それは確かにAJAXに関係するコントロールのメソッドで、
そこに記述されてる方法でダイアログを表示させるのに実行しなければならないメソッドだろうけど、
そこまで懇切丁寧に説明されていないと、
説明されたことにはならないって言いたいってこと?
つまり、AJAXの存在を教えただけでは足りないと?
最初からレスみてると、他のみなさんと同様に、
あなたはAJAXを今まで知らなかったような感じがしてたんだけど、
そのところ実際のところはどうなのかな?
>>540 嘘付けw
AJAXの存在知らなかったんだろ?w
>>537,541
俺は>533ではないが、>533の話は説明がどうこうじゃなくて
コーディングレスじゃないだろうって話じゃないのか?
AJAXでOKな人もそうだが、自分の説明に文句つけるやつは
知らないから文句つけてるとでも思ってるんだろうかね
放置推奨
自分では理解してるつもりでもそれを他人に伝える能力が無い人と。
理解は出来て無くても適切な情報へのポインタを示せる人と。
それだけのこと。ただ、それだけのこと。
>>543 うーん。そうなると「コーディングレス」の定義ってことですよね。
ということなら、コーディングレスは、コーディングが全く無いというわけでなく、
コーディングが少ないという意味だということになるんだと思います。
ASP.NET AJAXというフレームワークによって、
本来自分で実装しなければならないAJAX技術の入力が省力化されているわけなので、
十分にコーディングレスされてると思いますがどうでしょう。
さらにいうと、ASP.NET AJAXは、過去の経験上、
ほんとうにコーディングをまったくしなくてもいいと思うぐらい優秀だと思います。
[副](littleの比較級;最上級はleast)
1 (程度・度合が)いっそう少なく, もっと[さらに, より]下回って;((同一人物の2つの性質・状態を比較して))(…というよりは)むしろ…((than ...))
━━[形](littleの比較級;最上級はleast)
1 (分量・程度が)…より少ない, 少量の;(大きさが)…より小さい(⇔more, greater). ⇒FEWER
>>540 知らなかったお前のためにいってやってるんじゃないかw
まだ頑張ってんの?
AJAX知らないとか無知なクセに頑張りすぎだよな
スレ伸びてると思ったらwww
自分が無知なくせにwww
AJAX云々はどうでもいいが
普通に〜すれば出来る。
普通にといったら普通にです。他に言いようが無い。
間違ってもこいつは客先には出せねえw
>>545 一般にコーディングレスというと、コーディングがまったくない事だ
どこの辞書を転載してるのか知らんが、自分の都合のよい所を転載してるのは
本気で記載を見つけられなかったのか?
試しにYahoo!辞書で-lessを引いてみろ
「…のない」って出てるだろ
AJAX君とOUFPNullPo君は放置でいいよ。
# 実は同一人物のような気もするけどw
>>552 場所替えしたのでトリップなくてすいません。
ああ、そうかシュガーレスとかのレスかー
それじゃ、私の勘違いですね〜。失礼しました。
>>553 いやいや違うよw
でも、素でわからないんだけど、AJAX実装すれば実現できるわけでしょ?
そのように返事したレスがなんで問題になってるの?
うざい
はぁ?
AJAX利用しろで正解だろ?
何がおかしいんだ?
AJAX知らなかったくせに後出しじゃんけんかよ。
何回言わせる気だ。
メールでやれ。 お前二人以外には何の役にも立たん。迷惑だ。
ここは質問スレだろ
AJAXの事知らずに書き込んで何が悪いんだよ
AJAXで実現できるのは初めからわかってる
AJAX実装で実現できます、では間違ってはないが、何の回答にもなってない
問題は、じゃあ具体的にどうやるんだって言われて
ASP.NET AJAXを導入するだけだとか、普通に組むだけだとか言うから
それじゃ回答として不足でしょ、ってみんな言ってるわけ
(まあ不足なだけじゃなくて書いてる内容も微妙だと思うがな...)
でも結局具体例はなにもだせなく、挙句突っ込んだ人を無知扱いしたから叩かれてるんだよ
いい加減にしろ。
>>560 >AJAXで実現できるのは初めからわかってる
はい、ダウト。
>詳細情報取得の部分だけ別途XML Webサービスで作っておいて非同期に実施?
>どこかに参考になるようなサンプルがあったりしないでしょうか?
この発言のどこを見れば、AJAXで実現できると初めからわかってるんだ?
Webサービスを利用して実現しようとしていたのに。
後からAJAXの存在を知って、都合良く利用してるだけだろ?
今北
どうせこのスレが伸びる時なんて
こんなことだろうと思ったけどwww
>>560 何の回答になっていないというかASP.NET AJAXを知らないようだから、
そのレスがあっただけでも意味があるんじゃないの?
>それじゃ回答として不足でしょ、ってみんな言ってるわけ
2chで十分とかあるわけないでしょうよ
>問題は、じゃあ具体的にどうやるんだって言われて
言われたっけ?
レス主からは言われてないよな。
回答として不足とかレス主でもないのに文句たれてる人は言ったみたいだけど
>>562 >>475 相変わらず自分の都合のいいようにしか物事を解釈できないようで
ついでに言っといてやるが、WEBサービスってのはサーバ側の話で、元来AJAXとは無関係なんだがな
ただ、ASP.NET AJAX(Control Toolkit含めて)のなかには、WEBサービス前提の機能がいくつかあるんだよ
(つかWEBサービス云々はそういう流れででてきた話だと思ってたんだが、これは俺の深読みのしすぎか)
だから、WEBサービス利用とAJAX前提はなんら矛盾のない話だ
まあ、底が知れたんで俺はこれ以上この話題についてレスしない事にするわ
>>566 え?ASP.NET AJAXで解決できることを初めからわかってたと?
ならなんで質問してくるんだ?ここで。
いいからASP.NET AJAXを使ってみなさいって。
使えばわかるから。
ああこういうことなんだなって。
UpdatePanelとかの文字が出てこなかったからって指摘したことが、
顔真っ赤になるぐらい恥ずかしいことだってw
おいおい、伸びてると思ったらすごいな
しかし、最近のゆとりは本当にひどいな
わざわざ、コントロールの使い方まで教えて貰わないと、教えたことにならないなんて
UpdataPanelなんてAJAX必須コントロールなんだから、教える必要なんてないだろ
それに、記事のコーディングレスなんてキャッチフレーズだ
そんなの信じるほうが狂ってる
おれも、AJAX利用すれば解決、後は普通に実装しろって返答しただろうな
あぶねーw
親切心から返答してるのに文句いわれちゃたまらねぇわ
その自作自演はさすがに引く。それ以前にウザイから空気読んで消えて。
ここは2chですよね?
おゆとり様
>はい、ダウト。
>はい、ダウト。
>はい、ダウト。
おゆとり様かっけーw
試しに
GridViewのボタンクリック→ModalPopupExtenderでPanel表示
Panel上のボタンクリック→Panel閉じる
ってやってみたんだけど、ダイアログとして表示したPanelのボタン押して、
閉じようとすると同期PostBackしてしまうな。
別途、ただのボタンを設置して
ボタンクリック→ModalPopupExtenderでPanel表示でやると、
ポストバックせずただPanelが消える。
なんでだろ?
さすがAJAXの質問となると返事はゼロかw
できた、できた。
UpdatePanelをダイアログとして表示するPanelで囲み、
もう一つのUpdatePanelでそれ以外の部分を囲んでやると、
Postせずにデータを取得し、さらにPostせずにダイアログを非表示にできるっぽい。
実際のコーディングはこれだけ。
UpdatePanel.Update()も不要だし、ModalPopupExtender1.Show()は
ToolKitのサーバコントロールのメソッドなので、
事実上にはASP.NET AJAXのコードは一切書かなくていい感じかな。
//GridViewの行に設置されたボタンをクリックしたときに実行されるメソッド
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
//クリックしたGridViewのボタンの行を取得
int rows = int.Parse((string)e.CommandArgument);
//表示する詳細データの取得
//--ここで実際には、取得した行からID等を取得し、詳細データを取得する--//
//詳細データをコントロールに設定する
this.Label1.Text = DateTime.Now.ToString();
this.Label2.Text = rows.ToString();
//ダイアログの表示
this.ModalPopupExtender1.Show();
}
>>576 wwwwwww
ただ、「普通に実装」しただけで、できてるじゃん
昨日、あんだけレスしてた人が、まったく無反応なのにも笑えるwwww
だから普通にやるだけで実現できるって言ったのになぁ
GridViewを利用して画像の一覧とチェックボックスで画像選択をしたいと思っています。
画像を1行に1つ表示して選択させることはできるということは分かったのですが、
見た目を、例えば、チェックボックスと画像の対を3列×4行とかにすることはできるのでしょうか?
久々に来たらなんかスゲエ奴がいたのなw
ここまでの奴はホント久々に見た。
いや、恐らく
>>23あたりが居着いて荒らしてるんだろう
もう一人いたよな
自分の不勉強を棚に上げて教えてくれ、ソースを示せの一辺倒だったやつ
もう一度言う
普通にAJAX導入厨はスルー推奨
>>583 せっかくレポートしてくれた
>>576のレスを読んだ?
AJAX使えばできるのは事実。
そこまでして自分が無知だったことを隠したいの?
ここまでの流れ
○○したいのですが、どうすればいいですか?
↓
普通にAJAXを使えばできるよ?
↓
普通じゃわからない。ちゃんと返答すべき。
↓
分からないも何もAJAXを使えばわかるよ・・・
(ソースコードを書けとでもいうのかよ・・・)
↓
参考となるソースコードを載せたサイトが見つかる
↓
ほらAJAX使えばできるじゃん
↓
AJAXで使うコントロール名すら教えてくれなかった
それに使うメソッドも教えてもらっていない
そんなの教えたとは言わない。
しかもお前らはuasgdbwwsd.\.awl;lds;;
AJAX導入厨はスルーすべき
↓
(何この人・・・)←いまここ
自演乙
ほんとうだよ。ソースコード教えろ厨は自演酷いよな・・・
↑
お前さ、いい加減ウザイから消えろって言われてるのが分からないの?
↑
お前だろ
590 :
nobodyさん:2009/12/16(水) 00:33:31 ID:76TvUAig
まだやってたのかw
>>580 ListView使えば普通にゲフンゲフン
>>580 普通に出来る。
GridView使って普通にコーディングすれば普通に実現可能です。
>>590 >>591 アドバイスありがとうございます。
GridViewでテストページを作成して実験に入ろうと思います。
迷ったときには、また、よろしくお願い致します。
>>591はアドバイスじゃなくて下らないネタだから真に受けないようにね
つか技術系の板でウソついてそれっきりとか。
別にネタじゃねーよ。
普通にGridView置いて、GridViewのイベントをフックして画像とチェックボックスを置くだけじゃん。
それ以外にどんな書き様があるの?
>>592 Repeaterを使う選択肢はないのかな?
GridViewとかListViewとかは便利だけど応用が利かない事も多い。
Repeaterはベーシックなコントロールだから、
自分で作り込めばいろいろなことができるし、
あれこれ苦労して他のコントロールで実現するより
すっきり実現できることも多いよ。
>>594 いい加減、ASP.NET AJAXを知らなくて恥かいたからって、
他人を騙って嘘付くのはやめろよ
質問を書いた本人です。
GridViewを利用してチェックボックスと画像を表示するのは出来そうなのですが、
それを3列×4行のようにして、ページングも出来るようにするのは、ごりごりに
コードを書かないとだめなのでしょうか?
それとも、GridViewコントロールのフィールドを工夫するだけで出来るのでしょうか?
>>597 ごりごりに書かないとできません。
そういうことをやりたければListViewを使います。
なんか頭のおかしなのがウソ書いてるせいでわかりづらくなってるけど。
>>598 >そういうことをやりたければListViewを使います。
がーん。私のところの開発環境が2005なので、ListViewがありません…。
バージョンアップするか考えてみます。
ありがとうございます。
とりあえず、普通に〜すれば出来るとしか書けないお偉い方はご退場下さい。
貴方がお偉いことは重々分かりましたから。
>>599 ListViewはNET3.5以上じゃないと使えないから。
とりあえずRepeaterでいいんじゃない?Repeaterのほうが、最終的なHTMLを
意識しながら作りやすいと思うよ。
ページ換えは面倒かもね。元データがDataTableなら、ViewのRowFilter駆使
してページ単位で切り出す感じかと。
結局Repeaterに落ち着くと思う
>>600 DataListのサンプル?ページ見ました。
>>601 Repeaterは使ったことがないのでググってみます。
たぶん、DataListもRepeaterもページングを自分で書かないとだめそうですね。
2008にバージョンアップするのが早い感じがしてきました。
まあ、一般論として 「とりあえず〜すればいいよ」 「〜のほうが〜思うよ」 という回答を返す奴は
実は判ってないか、質問が理解出来ていないかのどっちか。
3列はともかくとして、4行固定なのか?
列数も行数も固定なら、俺ならRepeaterすら使わないでやるかも
回しても4回か12回だしな。それぐらいなら自分でコントロールを配列に入れて処理する
どっちにしろページング周りは作りこみだしな
>>605 4行固定という訳ではないんですが、画像(サムネイル)のサイズが決まっていないので
だいたい、4行分しか領域がないかな?と思ったもので。
一度作ってみたら?
Repeaterでページングなんていつかやるだろうし、
いちど作れば使い回しできるし。
え、そもそも質問なんですが
ASP.NETとAJAXって違いなんですか?
ASP.NETの中でもJAVASCRIPT使ってますよね?
違いが分からない ×
ASP.NETもAjaxも分からない ○
>>608 ASP.NETというのは、フレームワークの一種で、
Windowsでプログラムを組むのに便利なライブラリと、
サーバサイドアプリケーションを作るのに便利に仕組みを統合したものの総称。
Ajaxとは、主にJavaScriptとxmlを使用したhttp通信を利用して、画面遷移をせず、
動的に画面を変更させる仕組みの総称。
xmlを利用したhttp通信(Webサービスの一種)はAjaxの重要技術で、
>>566は無関係と書いてるけど実際には間違い。
もっと掻い摘んでいようと、
ASP.NET サーバサイドアプリを作るための便利な仕組み
Ajax技術 画面遷移せずに(サーバからデータを取得し)画面を動的に変更する仕組み
ASP.NET AJAX サーバサイドアプリを作るためのライブラリにAjax技術を取り込んで、
画面遷移せず非同期に画面を変更する仕組み。ASP.NETにAjax技術を取り入れたもの。
という感じ。
>>609 いい加減、教えて厨はでていってくれないか?
AJAX知らなかったクセに、本当によくそんなレスできるよ。
>>610 ありがとうございます!
>>611 いあww俺は上でやいやい言われている人とは別人ですよ!
613 :
611:2009/12/16(水) 22:55:00 ID:???
ASP.NETを分からない(javascriptもVB C#も分からない)人に、10日以内にプログラムを作らせるためには何が必要ですか?
今読み返すと、AJAXさえ導入すれば出来るとか言うのも嘘っぱちだな。
正確には、toolkitの導入が必要なわけで。AJAX≠toolkit
>>616 それも間違い
あくまで「モーダルダイアログみたいなことをしたい」というのが要求定義。
それを実現できる方法として、ModalPopupExtenderを例に挙げたたが、これを仕様してとは一言も言ってない。
従って同じようなことができれば、問題ないわけで、代替手段はいくらでもある。
例えば、GridViewの下にDetailsViewを設置して詳細を表示し、その他のボタンをEnabled=Falseにするとか、
MultiViewを利用してViewを入れ替えでGridViewと詳細表示を入れ替えるなどが可能、
同様にPanelを利用してCSSのレイヤーを設定することで画面中央に表示させ、
必要ないサーバコントロールを非表示にするなど方法はいくらでもある。
あくまで要求定義の実現のためにModalPopupExtenderを使う必要はないわけで、
ModalPopupExtender導入が必要というのはまやかし。
従って、AJAXさえ導入すれば出来る。
悔しいのも、放置できないのも分かるが、もうやめてくれないかなぁ。
30画面位あるんだけどApp_Code配下のクラスを
なにかいじる度、ビルドで2分近く食われる。
ビルド時間ってみんなそれ位?
>例えば、GridViewの下にDetailsViewを設置して詳細を表示し、その他のボタンをEnabled=Falseにするとか、
>MultiViewを利用してViewを入れ替えでGridViewと詳細表示を入れ替えるなどが可能、
>同様にPanelを利用してCSSのレイヤーを設定することで画面中央に表示させ、
>必要ないサーバコントロールを非表示にするなど方法はいくらでもある。
これのどこにAJAX使ってんの?
使わないよ?
でも、使っている。
>これのどこにAJAX使ってんの?
AJAX使ったことがないの丸わかり。
えーと、AJAX導入してるから使ってます。
>>621 つまり「AJAXを導入すれば出来る」と言う回答も大嘘で「別にAJAXを使わなくたって出来る」が
正解な訳ですねわかります
なんだ、AJAX導入君はASP.NETの基本すら分かってない人だったのかwどうりでw
で、これでまた顔真っ赤にして反論してくるんだろうなー。分かりやす杉w
>>624-626 それではAJAXを使って、データを取得するという要求に反します。
>475 名前: nobodyさん [sage] 投稿日: 2009/12/13(日) 00:26:25 ID:???
>AJAX使って、クリックされたタイミングでデータを取得してページを部分書き換えしたいということです。
はい。論破。
↓次の言いがかりどうぞ。
ケロンパ 論破 ロンパールームにようこそ♪ by うつみ宮土理
AJAX使わなければならないのに、なんでAJAX使わない方法を教えるんだ!!
というレスがケロンパ君から帰ってくるに100ケロンパ
ナニコノ こまったちゃん vs にこちゃん...
とりあえずAJAX=ASP.NET AJAXではないんです
可能不可能で言うなら、別にASP.NET AJAXやToolKit入れなくたって
普通に(笑) Javaスクリプト書けばできるんですが
AJAXを導入って、どういう意味で言ってるんですか?
>それではAJAXを使って、データを取得するという要求に反します。
>
>>475 名前: nobodyさん [sage] 投稿日: 2009/12/13(日) 00:26:25 ID:???
>>AJAX使って、クリックされたタイミングでデータを取得してページを部分書き換えしたいということです。
つまり、お前の中には質問者が最初からAJAX使用を念頭においてたと言う認識
はあるわけで
>>AJAXで実現できるのは初めからわかってる
>はい、ダウト。
>発言のどこを見れば、AJAXで実現できると初めからわかってるんだ?
というのは全く矛盾する発言だし、そもそも
Q: AJAXを使ってデータを取得したい
A: AJAXを導入すれば普通に出来ます。
と言う回答は頭が悪いと言うほかない。
本人からは、UpdatePanelって単語すら出てきてないからな
実は本人はASP.NET AJAXやToolKitについてはほとんど知らないんだよ
だから突っ込まれると、普通にやればできるとか
お前らAJAX知らなかったんだろとかしか言えないと
かわいそうな人なんで、もうそっとしておきましょう
禿同
AJAX加減馬鹿は放置徹底
おお、教えてくれ厨==ソースくれ厨はケロンパ厨に改名されたの?w
>>632 AJAXを導入なんて言ってないだろ。ASP.NET AJAXを導入とは言ってるみたいだがw
>>633 >A: AJAXを導入すれば普通に出来ます。
はいはい捏造捏造。
「ASP.NET AJAXを使えばできる」とは書いてあるが、AJA導入できますは作文だ。
意図的にASP.NET AJAXとAJAXを混同させて撹乱しようとしているだろ。
>>634 これだから教えて厨は困る。ガキじゃないんだから自分で調べろよ。
お前の言ってる理屈はこうだw
TextBoxに現在の日付を表示する方法を教えて下さい
→TextBoxにDateTime.Nowを表示させれば普通にできるよ。
→TextBox.TextやDateTime.Now.ToString()を教えていない。本人はTextBoxもDateTimeもほとんど知らない!!
→お前以外の人間全員唖然
ソース出せ厨は、UpdatePanelばかり連呼するが、ScriptManagerを一度も口にしていないのが不思議だ
本当に、ASP.NET AJAXを使ったことが、ないのではないだろうか
どうでもいい
ウザイ
氏ね
>>637 →TextBoxにDateTime.Nowを表示させれば普通にできるよ
こんな回答ならいいんだがな
お前は自分がどう思ってるか知らんが
.NET Framework使えばできるよ 的回答しかできてないんだよ
別にお前に教えてもらわなくても、たぶんお前に突っ込んでるやつらは
お前よりASP.NET AJAXについて詳しいよ
教えてって言ってるんじゃなくて、お前は無知なんだから
中途半端な知識でしゃべるなって言ってるんだよ
エスパーさん、 >617 の翻訳頼む。
最後の1行までと、最後の1行と、どうつながるの?
もしかして俺の思ってるAJAXとは違う定義で書いてるの? >617
さらにいえば、.NET Framework使えばできるよ的な回答で何が悪いんだ?
お前の言ってることはこういう事だ。
売上伝票といった帳票を印刷したいのですがどうすればいいですか?
→個人で作るのは難しい。帳票印刷ソフト(製品名)とかの帳票ソフトを使えば普通にできるよ。
→それでは帳票印刷ソフト(製品名)の使い方を教えたことにならない。本人は帳票ソフト(製品名)をほとんどしらない!
→お前以外全員唖然
そういうコンポーネントやアドオンの存在すら知らない人なんだから、
その存在だけ教えれば十分だろ。
あとは、その存在を知った質問者が、その仕組みについて勉強すればいい。
勉強すれば、ScriptManagerやUpdatePanelも「絶対に」知る事になるからわざわざ教える必要なんてない。
自分で勉強せずに、すぐに実現できるソースコードを提示してくれなかったからといって、
逆切れして発狂する人間のことを「ソースくれ厨=教えてクレ厨」という。お前のことだ。
こいつ、いつまで自分の馬鹿さ加減を晒し続けるつもりだ?
ほんとだよなぁ
知らないテクノロジを教えて貰っただけでもありがたいのに、
もっと詳しく教えないからと逆切れするなんて・・・
こんだけ馬鹿にされながらも、それでも馬鹿面を晒し続ける粘着振りだけは認めてもいい。
今度から鳥とコテを付けるように。
ソースくれ厨がコテつけるわけないだろww
自演がばれちゃうからな
MSのコーディングレスという言葉には何度も騙されてきたけど
ASP.NET AJAXはそれこそほんとにコーディングレスだろ
何が不満なんだ?
ほんとに使ったことがないのか?
この空気読めないゆとりはいつまで続ける気だ?
1から10まで教えてくれると思ってるんだろうね
これだからゆとりは嫌いだよ
もうお前ら付き合っちゃえよ
男性経験少ないので・・・ゴメンナサイ
ゆとりもここに極まれりだな
2chで教え方が悪いと逆切れするとかもうね
ぇ?まだ粘着すんの?
↑お前が一番粘着してるんじゃね?jk
おわった?
ASP.NET 3.5で、2つのウィンドウで同時にリクエスト投げると
本来表示されるべきウィンドウじゃない方にもう片方のレスポンス返ってくること無い?
完全にURLと表示されるべき内容が食い違ってるんだが原因がさっぱりだ
ウィンドウ1がA.aspxにポストバック、ウィンドウ2がB.aspxに非ポストバックでアクセス
→ウィンドウ1と2両方がB.aspxの内容に
っつー現象なんだが
あー、2.0でも何かそういうのあったな。
別ウィンドウで開いたらそっちでは画面遷移せずMultiViewとかで切り替えで対処した。
それはサーバではなくクライアント側の問題のような気もしないではないが
ブラウザにかかわらず発生するのか?
俺はそんな現象にあたったことないが、ホントにそうなるならちょっと気になる
非ポストバックって、部分ポストバックってこと?
ポストバック時に、他のページのJavaScriptのデータを取得して、
サーバにPostしちゃうとしか考えられないような
B.aspxがA.aspxからTargetが_Blankや固定名などで表示されていて、
そちら側でClientScriptがA.aspxのwindowオブジェクトを取得して
何か操作しているとかいうことはない?
つーか、単にセッションIDが同じだっつーだけじゃねーの?
IEを開いてる状態で「New Window」でもう一枚画面を開くと、両方とも同じSessionIDで
処理される。同一プロセスでIEが動いてるから回避不可。
IEのアイコンクリックで別途画面を開いても問題が生じるなら別件だけど。
SessionIDが同じというのは深くかんがえたことがないから、知らなかったなぁ
でもSessionIDが同じだからといって、ポスト先のURLまで変わってしまうもんなの?
>>664 >SessionIDが同じだからといって、ポスト先のURLまで変わってしまうもんなの?
サーバでセッション内容で何かやってれば不都合がでる可能性はあるが
_勝手に_違うページを表示するのはあり得ない
同一セッションの複数ウィンドウは普通にやってるがそんな現象に遭遇した事はない
非ポストバックっていうのは、ポストバックじゃなくて初回のgetって意味か?
俺も
>>662と同意見で、クライアントスクリプトがおかしなことしてるんじゃないかと思う
自分でスクリプト書いてないなら、特定のコントロール使ったら起こるとか
ASP.NET AJAXとかControlToolkitとか使ったら発生するとか条件ないか?
ページ変遷あたりのコードを不適切に実装しなければ起こり得ないと思うんだが
現象の起きるコードとか出せないか?
>ASP.NET 3.5で、2つのウィンドウで同時にリクエスト投げると
同時にリクエスト投げるというのも、漠然としていてよくわからないよね
普通にリクエスト投げているだけです。これ以上どう説明しろと?
>>667 あえて煽り乗る。
同時にリクエストを投げるというのにも、いくつか可能性がある。
例えば、それぞれのウィンドウを手動で切り替えて、それぞれに設置されたボタンを手動でクリックするとか、
ClientScriptによってある時刻になったら同時にボタンをクリックするとか、
片方のページのボタンをクリックしたら、もう片方のボタンをクリックするClientScriptを実装するなどとか、
「普通」の方法はいくらでもある。
というか、いい加減に教えて君はもういいんじゃないか?
>>667は例の粘着の片割れで、質問者とは関係ないだろ。
いちいち煽りに乗るなよ
>>669 すまない
スレをみていて、ソースを教えて君にむかついていてね。失礼した。
>667 名前: nobodyさん [sage] 投稿日: 2009/12/20(日) 21:39:58 ID:???
>普通にリクエスト投げているだけです。これ以上どう説明しろと?
いいからさ、
みんながいうとおりAJAXを使ってみなよ。
勘違いしてるようだが、ここまで「ソースを教えて」クンは一度も登場したことはない。
質問に対する回答としては、>510-511 のリンクを貼っただけで必要十分。
ソース云々は「どうせお前分かってないだろ?ソースの一つでも出してみろ」と言う意味で
言われてるだけで、回答としてソースが求められてた訳じゃない。
捏 造 乙
ソース教えてクンは
>>672として登場しているじゃん。
>>672 回答としてソースコードが求められていないのなら、
なんでUpdatePanelというコントロール名を書いていないことを問題視するんだ?
冗談でも煽りでもなく
どっちもマジで病院で見てもらったほうがいいぞ。
病気だから。
↑いつまで自分の馬鹿さ加減を晒し続けるつもりだ?
自演見苦しい
>>659 ...
再現しないんだ。 最小限のサンプル教えて。
A.aspxに ボタン2個おいて、一個は targetが B.aspxでいいのかな?
で、二個のウインドウでA.aspx表示して、それぞれボタン1、ボタン2押すでいいのか?
>>677 ソース教えて君など存在しない。
従ってサンプルであろうとソースを教えるつもりはない。
>>678 だったらウザイから出てくるな。黙ってろボケ
ソース教えて厨ウゼー
次スレなしにしようぜ。
あるいは次スレはAJAXネタ禁止で
お前らだけが禁止な
ソース表示時のコントロールにプロパティを設定できないのはなぜでしょうか。
.aspxのhtmlのソースの表示時ならできるよ。
タグをクリックして反転させて設定。
VS2008
ごめんなさい、イベントでした。コントロールのプロパティのイベント。
たとえばソースでボタンとか追加しても、一度デザイン画面にいかないとクリックイベントとか設定出来ないので
なんか出来ないのかなと。
>>686 htmlでサーバコントロールを選択した状態で、
プロパティインスペクタの「イベント」の表示ボタンをクリックするとできるよ。
ただ、ボタンをソースから挿入した直後とかは無理みたい。
何かのタイミングで暫くすると有効になるっぽいね。
確実なのは一度保存すると絶対に可能になるみたい。
Ctrl+Sキーで保存すると有効になる。
編集されると一時的にタグの解析が無効になるんじゃないかな。
んで何かのタイミングでhtmlのソースの解析が終わってイベントが設定できるみたいな。
保存したら出来るようになりました。ありがとう。
でも、ビューコントロールの中においたボタンとかは駄目だった。
689 :
nobodyさん:2009/12/25(金) 17:29:07 ID:pof26unn
Global_asaxのApplication_Errorイベント内で、
エラーが発生したページのインスタンスを取得する事って出来ないですか?
エラーが発生したページのマスタページ毎に処理をしたいのですが、
エラーページのインスタンスが取れなくて困ってます。
690 :
nobodyさん:2009/12/25(金) 17:31:24 ID:pof26unn
すいません、環境は
.NET Framework 3.5
VB.NET
です。
>>689 sender.context.handlerでページまで辿り着くでしょ
visual studio 2003で開発したWebアプリを
windows server 2008で動かそうとしています。
windows server 2003では動くのですが、
windows server 2008上ではExcel出力ができません。
Excelのブックを開こうとしたところで
「HRESULT からの例外です:0x800A03EC」というエラーになります。
回避方法はあるでしょうか?
おれはエスパーじゃないが、WebアプリでExcelを共有で使うのはライセンス違反だということは知ってる。
ユーザー分のライセンスがあればOKじゃなかったっけ
>>692 政治思想と物乞いの区別が付かないのが、チョウセンヒトモドキ
697 :
nobodyさん:2010/01/05(火) 01:24:59 ID:0LFTGssC
賀正
698 :
nobodyさん:2010/01/07(木) 11:58:45 ID:Am1hSSDp
動画を再生させるページを作成しています。
Mediaplayerコントロールを使用しているのですが、
データバインドして再生する動画データを指定する事は可能でしょうか?
>>698 PARAMタグにバインドしてやればいいんじゃね
700 :
なし:2010/01/07(木) 16:16:25 ID:???
>>698 データバインド<%# %>はASP.NETのサーバコントロールにしか使えなかったと思うぞ
実行時に動的に値変えたいだけなら、<%=変数%>で行けると思う
MediaSourceプロパティにか。
だから、わざわざ実行時バインドなんか使わなくても指定できると思う。
と、書いておきながらなんだけど、「データバインド」というのがイマイチ不明だな。
703 :
698:2010/01/08(金) 11:12:24 ID:RDdQRMi8
>>699 反応ありがとうございます。
PARAMタグ・・・activeXでの埋め込みの話じゃないでしょうか?
SilverrightでもPARAMタグの使用は可能なのですか?
>>700 反応ありがとうございます。
変数ですか、一度試してみます。
当方初心者なので出来るか不安がありますが・・・。orz
>>701 反応ありがとうございます。
@ITは私も利用しており、おっしゃる方法を以前に試しましたのですが、無理でした。
>>702 反応ありがとうございます。
そうですね・・・
データバインドという表現が間違っていたかも知れません。
具体的なお話をすると、
指定のフォルダに動画をアップロードし、
同時に、その動画ファイル名をSQLdbに登録。
それをgridviewでサムネイル表示させ、選択すると、
Mediaplayerで再生されるというシステムを作っています。
現在、サムネイル表示までは完成しているのですが、
Mediaplayerへの接続がうまくいかない状態です。
>>703 指定のフォルダに動画をアップロードしてあるのなら、
そのままそのパス名をMediaPlayerコントロールに設定するだけでは?
まずは、ちゃんとパスが通っているのか確かめたほうがいいよ。
サンプルを見ると↓みたいになっているからURLを記述するんだと思うけど、
サーバのHDD上の絶対パスで指定しているとか。
<a href="パス名">FILE</a>の記述でブラウザからダウンロードできるかとか。
<asp:MediaPlayer ID="MediaPlayer1" runat="server" AutoPlay="True"
Height="480px" MediaSource="~/Media/Silverlight.wmv" Width="640px" />
ひょっとしたらセキュリティの関係でファイルへのアクセルが禁じられている可能性もあるし。
>>703 環境はSiverlight2ですか?
Siverlight3だとデフォルトでは、<asp:silverlight><asp:MediaPlayer>は
使えないですから、<object>タグを使ってくださいって事になっているはずです。
>>704が言っているように、httpでアクセスできない場所にファイルがあるような気がしますね。
706 :
698:2010/01/09(土) 10:23:48 ID:lCGOBp11
>>704 返答ありがとうございます。
一度試してみましたが、セキュリティの問題は大丈夫でした。
>>705 返答ありがとうございます。
環境はSiverlight3です。
<asp:MediaPlayer>タグに関してですが、
は使用できるようにdllファイルを認識させて使えるようにしてあります。
少し調べていて、
データベースから指定の動画データを取得して返すHTTP ハンドラ(*.ashx)を作って、
それをSourceに指定すれば可能ということが分かりました。
HTTP ハンドラとか.ashxとかさっぱり意味不明ですが、少しやってみます。
ありがとうございました。
>データベースから指定の動画データを取得して返すHTTP ハンドラ(*.ashx)を作って、
データベースに動画データを保存してるなら、最初からそういわないと・・・
>指定のフォルダに動画をアップロードし、
>同時に、その動画ファイル名をSQLdbに登録。
だから動画データはHDD上にファイルとして保存していて、ファイル名だけをDBに保存しているのかと思ったよ。
ASP.NETでやったことなくて、PHPやClassicASPではやったことあるけど、
filename.aspx?id=1みたいにGETで動画を取得するためのIDを渡して
ASP側ではそれを手がかりに動画データを取得。
ヘッダをheader("Content-type: video/x-ms-wmv");にして、
こんな感じで動画データを出力する感じ。
if ($stream = fopen($filepath, 'rb'))
{
while (!feof($stream))
{
print(fread($stream,1024*8));
ob_flush();
flush();
}
fclose($stream);
}
この例はPHPだからASP.NET用のを調べてみて。
ASP.NETでできるかどうかわからんけど。
708 :
698:2010/01/09(土) 14:52:56 ID:lCGOBp11
>>707 実は、最初は動画データはHDD上にファイルとして保存していて、
ファイル名だけをDBに保存していたのですが、
動画データ自体をバイナリデータ化した方が良いと指示を受け、
今朝変更したんです。
質問をしておきながら、現状報告を怠ってしまいすみませんでした。
アドバイスありがとうございます。
ヒントを元に調べて修正してみます。
709 :
nobodyさん:2010/01/14(木) 13:59:20 ID:VstkAvlu
すみません
OJT中の課題で、SNSシステム的なものの習作を作っています。言語はC#です。
AccessDataSourceコントロールを使って、AccessのDBと接続し、ユーザー情報などを読み書きする仕組みで作っています。
ログインページやプロフィールページ、それぞれ別のaspxファイルに分かれていますが、
現状だと、それぞれでこのAccessDataSourceコントロールを配置し、同じmdbファイルをデータソースとして指定し、
それぞれのページでSQLを投げて読み書き。
問題無く動作してはいますが、こうやって同じコントロールを複数ページに貼る作り方は正しいですか?
なんか冗長しているように思えて。
もし複数ページにまたがって共通で使えるオブジェクトをどこかに作っておいて使いまわすようなことは可能ですか?
>>709 ユーザーコントロールでも作ればええんじゃない
>>709 その辺はシステム全体の設計構想による
つか、OJTで疑問に感じたら、なぜ指導されてる上司や先輩なりに質問しない?
712 :
709:2010/01/14(木) 17:05:59 ID:VstkAvlu
OJTと言っても、自分で課題を考えて進捗を定期的に上司に送るだけで、放置されてるのです;;
先輩はみんな客先常駐ゆえ。
>>712 Accessでできるかどうかわからないけど、自分なら型付きDataSetをVSに自動生成させて、それを使うな
じゃあ次はその作り方が正しいかどうか考えるのを課題しすれ
そして共通に使えるオブジェクトが作れるがどうか考えるの課題にして
そのオブジェクト作るの課題にして、使いまわするの課題にすれ
よかったな、課題がいっぱいできて
あ、質問に答えておこうw
>問題無く動作してはいますが、こうやって同じコントロールを複数ページに貼る作り方は正しいですか?
正しいかどうかは設計構想による
>複数ページにまたがって共通で使えるオブジェクトをどこかに作っておいて使いまわすようなことは可能ですか?
可能
>710-714 の回答側が頭悪すぎてワロスw
特に >710。 >709 の質問に対してユーザコントロールとか頭弱いの?
>>709 何が正しいかは状況によるので正しい・正しくないを決め付ける事は出来ないが、作りとしてはダサい。
2〜3画面しかないような小さいソルートンなら有りだと思うけど、通常は
>複数ページにまたがって共通で使えるオブジェクトをどこかに作っておいて使いまわす
↑の方法を取るよ。DBアクセスだけ別クラスに分離させて、きちんと層を分けたほうがいい。
そうかなぁ。べつにいいんじゃないの?
同じコントロールをっていうけど、それと、
共通で使えるクラスを使いまわすってのと同じだと思うけどな。
あ、オブジェクトを複数ページ間で使いまわす方ですか?
シリアライズしてDBに突っ込んどいてセッション使って使いまわすんでしょうか。
そうかなぁ
>713 名前: nobodyさん [sage] 投稿日: 2010/01/14(木) 18:49:46 ID:???
>Accessでできるかどうかわからないけど、自分なら型付きDataSetをVSに自動生成させて、それを使うな
少なくともこれは型付きDataSetのクラスを定義しておいて、
ページごとにそのクラスのインスタンスを生成して利用する方法じゃんね?
>>716 >あ、オブジェクトを複数ページ間で使いまわす方ですか?
>シリアライズしてDBに突っ込んどいてセッション使って使いまわすんでしょうか。
たぶんstatic変数を宣言して使い回ししてるんじゃね?ww
>>718 ツマンナイ煽りはいいから、なんか役に立つこと書けば?
>>719 w
そう罵り合って互いに永久ループし続ける?ww
無知無能を棚上げして↓みたいなレスしたのが原因なんだろ?
>>710-714 の回答側が頭悪すぎてワロスw
>特に >710。 >709 の質問に対してユーザコントロールとか頭弱いの?
煽るセリフなんて要らないだろうが。なぜわざわざ煽ることするんだ?
ただ自分が思う回答をすればいいだけだろ。
いちいち煽るなんてのは社会性ゼロの奴がやることだ。
前回のソース示せ厨と同一人物なのは間違いないな
見苦しいなぁ。もうお前氏ねよ。
俺はいちいち他人のレスにつっこみ入れて煽ってるほうが見苦しいと思うよ
しかも見当違いだし
自演乙 >722=720
初心者(工学部非情報系)です。
visual web developer 2008で、開発サーバーを使用して ASP.NET Web ページを表示すると、「ページを表示できません」的なエラーがでます。
多分502エラーだと思うんですが、↓この対応方法を試そうとしています。
ttp://msdn.microsoft.com/ja-jp/library/ms178120.aspx ここの手順(プロキシサーバー設定)の
> 7.使用しているネットワークのアドレスとポート番号を指定し、〜
↑ネットワークのアドレスって何を指定すれば良いんですか?自分のPCのIPアドレス?
ちなみにDHCP設定です。
ポート番号は初期値80と入っていますが、それで問題ないですか?
あと、OSはWindows Vista Home Premium です。
よろしくお願いします
localhost、とか書けばよかったと思う
>>725 まず、お前のネットワーク環境で、プロキシを使ってるのかどうか管理者に確認しろ
話はそれからだ
開発サーバってスタンドアロン環境で使うものじゃないの?
スタンドアロンならプロクシは関係なくないのかな?
730 :
725:2010/01/17(日) 23:10:33 ID:???
みなさん、ありがとうございます。
>>726 プロキシサーバーのアドレスに「localhost」「127.0.0.1」と書いてみましたが、ダメでした。
>>727 ↓これを試しましたが、デバッグしても「ページが表示できません」になります。
@vwdのWebサイトのプロパティで「動的ポートの使用」=false、「ポート番号」=5000 (仮に)で固定
A次に、IEの「インターネットオプション」→「LANの設定」→プロキシサーバで、「アドレス」=localhost or 127.0.0.1、「ポート」=5000にする。
「ローカルアドレスには〜」にもチェックON。
何か間違ってますか?
>>728 >>729 プロキシは関係ないんですかね…msdnのサイトに載ってたので色々試してます。
ネットワークについては全然知識がありませんorz
ああ、ダメなのか。じゃ違う原因じゃないの?
htmlファイルも見えない?
>>730 まずははっきりさせて置いた方がいいと思うんだけど、
自分の使用しているPCでVisualStudioを動かせて、さらに開発サーバも同じPCでやろうとしてるんだよね?
>A次に、IEの「インターネットオプション」→「LANの設定」→プロキシサーバで、「アドレス」=localhost or 127.0.0.1、「ポート」=5000にする。
> 「ローカルアドレスには〜」にもチェックON。
そのままだと、自分のPCでは、とうぜんプロクシは動作していないから、表示できませんになると思う。
IEのプロクシ設定は何もしなくてokのはず。
>>715 ねぇねぇ、お前様は何かアドバイスとかないの?
それとも頭が悪いから回答できないの?
735 :
725:2010/01/17(日) 23:50:20 ID:???
>自分の使用しているPCでVisualStudioを動かせて、さらに開発サーバも同じPCでやろうとしてるんだよね?
→そうです。自宅のおもにインターネットで使用する程度の個人PCにvwdをインストールして、動かそうとしています。
「デザイン」や「ソース」は普通に操作したり見たりできますが、ラベルに「Hello」と記述してデバッグすると表示できません。
ちなみに、今気づいたんですが、実行中でIEが「Internet Explorer ではこのページは表示できません」と表示している間にvwdの画面をみると、ソリューションエクスプローラのところに
errorPageStrings.js
httpErrorPagesScripts.js
という2つのjsファイルが表示されていました。
関係ないですかね・・・
737 :
725:2010/01/18(月) 00:14:15 ID:???
>>736 いろいろとすみません。
hostsファイルを確認してみたら、以下の2行が書かれていました。
127.0.0.1 localhost
::1 localhost
ためしに「#::1 localhost」としてコメントにしてみましたが、結果は変わりませんでした。
みなさん、アドバイスを本当にありがとうございます。
状況は変わりませんが、引き続き明日も試してみます。
また状況をお伝えに来たいと思います。
>>735 IEのプロクシ設定は元に戻した?
というか、へんなプロクシ設定したら、他のサイトをみようとしたときも
ページが表示されません的なページが表示されるはずだから、わかるか
>>729 開発サーバはローカルで使うものだが、IEがプロキシを使う設定になってると
loaclhostへの参照もプロキシを使おうとして表示できないって現象が起こる
>>730 お前のネットワークにプロキシがあって、IEがプロキシを使う設定になっていれば関係ある
そうでなければプロキシは関係ない
だから、まずお前の環境でプロキシを使ってるのかどうかはっきりさせろ
つぎに、ファイアウォール関係のソフト動かしてないか確認しろ
hostsファイルとかチェックするのはそのあとだ。普通はまず関係ない
ループバックアドレスならFWいれてても関係ないんじゃないかな
あまりそういう現象にでくわしたことがない
チェックボックスがオンの場合でもオフの場合でも値をPOSTするようなコントロール
が欲しいんですが、カスタムコントロールで作成可能でしょうか?
CheckBoxとHiddenコントロールを組み合わせて作ろうとしたんですが、なんかうま
くいきませんでした。
質問の意味がよくわからないがAutoPostBackのことか?
743 :
725:2010/01/19(火) 00:37:30 ID:???
昨日、プロキシetcで質問したものです。
>>730 プロキシは使わない設定でした。
そして、セキュリティソフトを一度アンインストールしてみました。
そうしたら無事に動作しました。
セキュリティソフトを再インストールしたら、再度デバッグで動作しなくなりました。
セキュリティソフトの「プロトコルフィルタリング」なるものを無効にしたら、デバッグから表示できるようになりました。
いろいろとありがとうございました。
本当に助かりました。
今後も参考にさせてもらいます。
>>741 そういうコントロールも作れば作れないことはないと思うが
オンでもオフでも値をpostするってことは、常に値をpostするってことだろ
その値のhiddenタイプのinput項目を作っとくだけじゃだめなのか?
チェックボックスは別の値で作っとけ
>>742 htmlフォームではチェックボックスはチェックされているときのみ値をpostする
つまりその値がpostされてるかどうかでチェックされてるかどうかを判定するんだよ
>>741 なにをしたいのか今ひとつわからんが
Postbackしてきたときに、プロパティをチェックするんじゃ駄目なのか?
checked=true/falseで判別がつくと思うんだが
AutoPostBackとの違いがわからん
onとoffで両方ともvalue="**"を送信したいってことは、
javascriptなんかで、checkboxのvalueを動的に変更、
またはcheckboxそのものを動的に生成してるってことなんかね。
なんかその他の方法があるかもしれないけど、
今思いつくのはcheckboxの数だけhiddenfieldを設置して、
そこに値を入れておくな。checkboxのvalueはあくまでtrueやfalseを意味するものにしておく。
>>745 俺にも何がしたいかいまいちよくわからんが、可能性がありそうなのは
ポストバックじゃなくて別のhtmlページにPostしたいとかじゃないかと
本人がもうちょっと詳しく説明してくれればいいんだが
>>746 AutoPostBackはただ単に、チェックボックスをチェックしたり外したときに
自動的にPostさせる機能
チェックを外したときにPostは実行されるが、そのPostされたデータに
チェックボックスの値は含まれていないわけだよ
749 :
741:2010/01/19(火) 21:24:12 ID:???
>>747 CheckBox(runat=serverを書かない)とHidden(runat=serverを書く)を必ず対で配置
して、CheckBoxのonclickでJavaScriptでHiddenの値を書き換えて、submitされたら
Hiddenの値でCheckBoxのON/OFFを読み取る、というのは普段やっている手段です。
ただ、これを1つにまとめたカスタムコントロールが作れないものかと思ったので。
>>745 事情があって、Context.Response.Paramsの中にチェックオフの値を返したいんです。
コントロールのプロパティを参照するというのが訳あって出来ないので。
CheckBoxがASP.NETで言うところのサーバコントロールでないというのは、これが初の情報?
それだと想定外だったから、イマイチよくわからないな・・
どんな事情なんだろ。
全部のチェックボックスなめればいいんじゃないの?
もし作るからHiddenFeildをベースにしたコントロールを作って、Renderでチェックボックスも一緒に生成すればいいのかな
JavaScriptはガリガリ書かないと駄目かな
>>749 こんなユーザコントロールを作って、
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="TestUserControl.ascx.cs" Inherits="TestUserControl" %>
<input id="<% this.GetOwnerName(); %>_CheckBox1" type="checkbox" onclick="CheckBoxClicked('<% this.GetOwnerName(); %>')" />
<asp:HiddenField ID="HiddenField1" runat="server" />
public partial class TestUserControl : System.Web.UI.UserControl
public void GetOwnerName()
{
Response.Write(this.ID.ToString());
}
こんな風なJavaScriptを書けば、ポトペタだけで実装できるんじゃないかな。
JavaScriptに関してはファイルにまとめておいてincludeするようにすれば使い回しできるし。
<head runat="server">
<script type="text/javascript" src="jquery-1.4.js"></script>
<script type="text/javascript">
function CheckBoxClicked(controlName) {
if ($("#" + controlName + "_CheckBox1")[0].checked) {
$("#" + controlName + "_HiddenField1")[0].value = "true";
}
else {
$("#" + controlName + "_HiddenField1")[0].value = "false";
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<uc1:TestUserControl ID="TestUserControl1" runat="server" /><br />
<uc1:TestUserControl ID="TestUserControl2" runat="server" /><br />
</form>
</body>
>>753 クスクス
if文はまどろっこしいから、これでもいいか。
$("#" + controlName + "_HiddenField1")[0].value = $("#" + controlName + "_CheckBox1")[0].checked;
暇だったんでカスタムコントロール作る方法で考えてみた
こんな感じでどうだ
Public Class CheckBoxR
Inherits System.Web.UI.WebControls.CheckBox
Property UnCheckedValue() As String
Get
Return CStr(ViewState("UnCheckedValue"))
End Get
Set(ByVal Value As String)
ViewState("UnCheckedValue") = Value
End Set
End Property
Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
Me.Attributes.Add("onclick", String.Format("{0:s}.value=({1:s}.checked)?'':'{2:s}';", Me.ClientID & "_UnChekedField", Me.ClientID, Me.UnCheckedValue))
MyBase.Render(writer)
writer.Write("<input type='hidden' id='" & Me.ClientID & "_UnChekedField' name='" & Me.ClientID & "_UnChekedField' ")
If Me.Checked Then
writer.Write("value='' />")
Else
writer.Write("value='" & Me.UnCheckedValue & "' />")
End If
End Sub
End Class
これでUnCheckedValueプロパティに値を指定しておけば、チェックオフのsubmit時に
指定された値が含まれるようになる....ような気がする
これで完全なポトペタでOK!なはず
>>759 お、そのほうがいいんじゃね?
そうか、CheckBoxのOnClickに、そのままJavaScriptで書き込んでしまえばいいのか。
自分は同じScriptが何度も記述されるのが嫌だったので、別途functionを別途容易しちゃったけど、
簡便さではそのほうがいいかもしれん
お前ら暇やさしいな
クスクス
すみません。 誰かお暇なかた教えてください。
VWDで Default.aspx に LoginView1 を配置し、LoggedInTemplate の中に label1 を配置しました。
Default.aspx.cs で、label1 にアクセスしたかったのですが見えません。
LoginView1.LoggedInTemplate. としても label1 は見えません。
どうすれば label1 にアクセスできますか?
Label myLabel = (Label)this.LoginView1.FindControl("Label1");
if (myLabel != null)
myLabel.Text = "test";
>>764 ありがとう!!
まだやってないけど試してみる!
766 :
nobodyさん:2010/01/26(火) 19:29:34 ID:tqAuz1f1
FormviewでDfaultModeをinsert
この状態で、デフォルト値の設定したいのですが
どうすれば可能でしょうか。
2個上見ても分からないか?
768 :
nobodyさん:2010/01/27(水) 11:41:52 ID:idsxMd/1
>>767 ごめん見てなかった。普通にできた。
んじゃあ、例えば、
Gridviewとかで選択した項目を
formviewINSERTのデフォルト値として反映させたい場合はどうすればいいの?
探したが文献見つからん。
トーシローなんでお手柔らかに教えて下さいエロい人。
OnItemCommandだかのイベントが発生し、
実行されるメソッドの引数にボタンクリックされた行数が格納されてるから、
それをキーにデータ取得して表示させればいいんじゃね?
初学者です。
10日でおぼえるASP.NET3.5入門教室 という本をやりました。
雰囲気はつかめましたが、まだまだ何か作れるという感じはしません。
次は何に取り組めばよいでしょうか?
プログラムは入門書を一通りやるのも大事だけど、
とりあえず何かを苦労して作ることが一番大事だと思う。
その過程で分からない事が山のように出てくるはずだからね。
まずは、Webアプリ系としてはDBを使用したゲストブックが無難かな
投稿できて、最新の投稿から順番に並んでるみたいな。
772 :
768:2010/01/29(金) 16:47:09 ID:???
>>769 やってみたができん・・・・。
ググっても本屋でも文献見つからん・・・・。
とりあえず、Gridviewで選択。
選択した内容をformViewのinsertModeのそれぞれのTextBoxに初期値として飛ばしたいが、
わかる人いないか?
教えてエロい人
選択ボタン作ったら、GridViewをダブルクリックだ。
そうすると SelectedIndexChangen んが出るんで、
そんなかで GridView1.SelectedRow なり好きなもの使って好きにやれ。
>>772 >選択した内容をformViewのinsertModeのそれぞれのTextBoxに初期値として飛ばしたい
なんとなくSelectedRowからFIndControlして値を取り出す予感がするので一応。
GridViewの選択行からキーとなる項目を取り出してSELECT文を発行、
戻り値のDataTableなりなんなりをFormViewにバインドって流れな。
775 :
768:2010/02/01(月) 10:08:13 ID:???
>>773、774
ありがとう、一応、FIndControlを指定してやって、
GridViewで選択してやれば、formViewのinsertModeに
TEXT(DB関係なし)を飛ばせるとこまではどうにかできたんだけど・・・・。
こんな感じ。
Protected Sub GridView1_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridviewPageEventArgs) Handles GridView1.PageIndexChanging
If FormView1.CurrentMode = FormViewMode.Insert Then
Dim tb As TextBox
tb = CType(FormView1.FindControl("NameTextBox"), TextBox)
tb.Text = "Name"
tb.Enabled = True
End If
End Sub
このtb.Text = "Name"の"Name”の部分にデータを指定してやれば良いの?
あとさ・・・。
SELECT文を発行、戻り値のDataTableなりなんなりってのが
いまだに本読んでもイマイチ理解してなくて。
そこらへんの内容を学べる本とかサイトとか教えてくれるとありがたい
Microsoft Visual Studio 2005によるWebアプリケーション構築技法を
まず読め。初心者向けの良い本だ。
778 :
768:2010/02/01(月) 19:30:00 ID:???
>>776、777
こんな学生相手に皆親切にしてくれてありがとう・・・。
とりあえず読んでがんばてみるお!!
Microsoft Visual Studio 2005によるWebアプリケーション構築技法
って本についてだが、今使ってんのVS2008なんだけど応用できるかね?
まあそれ以前に解読できるかが問題だが・・・・。
あと、このスレの今までの内容見てて思ったんだが、
Formviewを使わないで表示とかできちゃうもんなの?
>Microsoft Visual Studio 2005によるWebアプリケーション構築技法
>って本についてだが、今使ってんのVS2008なんだけど応用できるかね?
基本的な仕組みは変わってないから役立つんじゃない?
VS2005の機能でも十分に事足りてるし、VS2008ではC#3.5とASP.NET AJAXの機能ぐらいしか使ってないな。
>Formviewを使わないで表示とかできちゃうもんなの?
自分はデザインやClientScriptの関係からFormViewはほとんど使わない。
コントロールを手動で配置して、手動でデータを取得して表示させてる。
GridViewなんかもほとんど使わないな。
基本的なコントロールとRepeaterで事足りてる。
780 :
768:2010/02/02(火) 18:36:31 ID:???
>>780 Repeaterに
<asp:TextBox ID="tbEditName" Columns="80" Text='<%# this.GetColumnData(Container, "Name")%>' runat="server" style="ime-mode: active;" OnFocus="this.select();" ></asp:TextBox>
<asp:Button ID="DeleteButton" runat="server" Text="削除" CommandArgument='<%# this.GetColumnData(Container, "ID") %>' CommandName="Delete" OnClientClick="return confirm('削除しますか?');" />
<asp:Button ID="EditButton" runat="server" Text="編集" CommandArgument='<%# this.GetColumnData(Container, "ID") %>' CommandName="Edit" />
みたいにTextBoxとButtonを設置して、CommandArgumentに設定されたIDから、データベースのIDを取得できる
ID取得したらRepeater内にあるコントロールをナメて、同じIDを持つ行を取得して、
その行にあるTextBoxから入力内容を取得して更新すればいい。
for (int i = 0; i < this.rptTikuMaster.Items.Count; i++)
{
RepeaterItem ri1 = this.repeater.Items[i];
TextBox tbEditName = (TextBox)ri1.FindControl("tbEditName");
int editedID = int.Parse(lblEditID.Text);
if (editedID == ID)
{
//IDが一致したらデータを取得してSQLを更新する
break;
}
}
これはRepeater内にTextBoxを設置したパターンだけど、
別途Repeaterの外部にTextBoxを設置しておいて、
そこにRepeaterの編集ボタンを押した行のデータを表示させて、
編集さぜて保存するという方法もある。
foreachを使わないと負けた気がする
すんげー前のをコピペ流用してる奴だから許せw
webなんてだいたい設計者によって、新規追加、編集、削除の画面遷移パターンが数パターンしかないからな
ソース出せ厨がぐうの音も出ないほどのソースまるだしだな
C#でASP.NETを始めましたど素人です。
質問なんですが、
サーバ側のC#だと、XmlDocumentやらArrayListやらのクラスを利用できるのですが、
クライアント側のC#だと、ライブラリ参照とかusingとか指定しても利用できないみたいなんですが
そーいう仕様なのでしょうか?
XmlDocumentとArrayListはけっこう頻繁に使用されるクラスだと思うのですが、クライアント側で使えないってのはけっこうダメージがでかいです。。。
イミフ
>>785 >クライアント側のC#だと、ライブラリ参照とかusingとか指定しても利用できないみたいなんですが
ブラウザで動作するJavaScriptとかのこと?
なら使用できないね。
独断的に言わせてもらえば、サーバ側はマイクロソフト製品だからなんとでもできるけど、
ブラウザはオープンな規格だからマイクロソフト仕様でそのまま使えることはない。
あ、たぶん記述が足りなかったのですかね(すんません)。。。
クラ側をSilverlightで作成してて、言語はC#とザムルです。
クラ側のイベント処理がC#なんですが、なぜかXmlDocumentやArrayListが使用できない。
using System.Collections;
using System.Xml;
などは勿論指定しております。
791 :
768:2010/02/04(木) 11:24:14 ID:???
>>781 やべえ、はじめてCommandArgumentの使い方が分かった。
ありがとうございました、解決しました!!
今回はAJAX君が絡んでこなくて良い流れだった
返答したのはすべてその人だけどな
なんだソース教えて君が絡んでこなかったから良かっただけじゃん
UpdatePanelを使って表示する要素を切り換えているのですが、
UpdatePanelの読み込みが完了した時に
JavaScriptを走らせることはできませんか?
画面全体がリフレッシュされないため、
スクリプトが実行されていないようです。
どうかお願い致します。
>>795 Sys.WebForms.PageRequestManager の pageLoaded イベント
ScriptManager.RegisterStartupScriptでも可能だった記憶が
あるゆる非同期更新後に常に実行させたいわけでなく、
特定のイベントでの非同期更新のみに実行させたい場合には、こっちのほうがいいかも。
798 :
795:2010/02/08(月) 14:58:18 ID:???
>796
うまく動きました。
こんなに簡単に実現できるなんて思いませんでした。
ありがとうございます。
今回はAJAX君はレスしたのかな?
jQueryでやればいいよ
↑やればいいよじゃ回答になりません。AJAX君はちゃんとソースを提示してください。
>>801 AJAX君はAJAXの事以外は何も分からないので回答出来ません。
↑とAJAX君が申しておりますw
年月を指定して、カレンダーを表示したいんだけど、
こんなカレンダーを作るにはどうしたらいいのでしょうか・・・
┌─┬─┬─┬─┬─┬─┬─┐
│日│月│火│水│木│金│土│
│□│□│□│□│□│□│□│
├─┼─┼─┼─┼─┼─┼─┤
│ .1│ .2│ .3│ .4│ .5│ .6│ .7│
│□│□│□│□│□│□│□│
├─┼─┼─┼─┼─┼─┼─┤
│ .8│ .9│10│11│12│13│14│
│□│□│□│□│□│□│□│
├─┼─┼─┼─┼─┼─┼─┤
│15│16│17│18│19│20│21│
│□│□│□│□│□│□│□│
├─┼─┼─┼─┼─┼─┼─┤
│22│23│24│25│26│27│28│
│□│□│□│□│□│□│□│
├─┼─┼─┼─┼─┼─┼─┤
│29│30│31│ │ │ │ │
│□│□│□│ │ │ │ │
└─┴─┴─┴─┴─┴─┴─┘
※□はチェックボックスです。
実装したい機能としては
・年月を指定するテキストボックスを設け、ボタンを押したら指定した年月のカレンダーが表示される
・曜日の項目にあるチェックボックスをON/OFFすることで、同じ曜日のチェックボックスを一括でON/OFFできる
asp.netに標準であるカレンダーでも実現可能でしょうか。
不可能な場合、どのようにすれば実現できるでしょうか。
曜日のとこアクセスするにはどーすれば
AJAX君はAJAXの事以外は何も分からないので回答出来ません
じゃ、お前がレスしろよw
お前の失点は、他人のレスを論ったこところで挽回できるもんじゃないんだぞ?
負けて口惜しかったなら、まともなレスをして見返すぐらいしろよ。
いい加減目を覚ませよ。
>>804-806 DayRenderではイベントを発生させるコントロールは追加できないらしい
ためしにCheckBox追加してみたが、表示はされるがイベントがハンドリングされねえ
クライアントスクリプト仕込むとかでなんとかする方法もないではないだろうけど
どっちにしろ曜日のヘッダー部ではDayRenderは発生しないようだ
ということで、俺なら自分でカレンダーすべてレンダリングするコントロールを自作するかな
ていうかAJAX使えば悩むところなんて全く無いだろ。
また例によってAJAX使用禁止とか訳分からん縛りでもあるのか?質問者は
何が聞きたいんだ?
この4文字NG指定しましょうね。
それもNGに
AJAX禁止したら、その技術に関して何も言えなくなるじゃんね
つーかソース教えろ厨マジうぜー
それもNGに
ソース教えて君がレスをみれなくなるだけだから問題ナッシング
つか自分からNG設定するぐらいなら、はじめからスレにこなければいいのに
それもNGに
↑ばかの一つ覚えのソース教えて君
ソース教えて君
820 :
804:2010/02/15(月) 09:22:24 ID:???
>>809 やはり普通のカレンダーコントロールでは難しそうですね・・・。
自作コントローラを作る場合、どのようにすればいいのでしょうか。
まだasp.netに触れて日が浅いもので・・・。
>>810 AJAXもいまいち理解できていないので、ピンときてません。
AJAXを使えば実装できるのでしょうか。
>>820 このスレには「回答にはすべてソースを付記しないと回答したことにならない厨」(通称ソース教えろ厨)という馬鹿がいて、
そいつがAJAXという技術を知らなくて馬鹿にされたので、
AJAX使えば何でもできるという印象操作をしているだけなので無視してください。
ソース教えろ厨が、ご迷惑をおかけしておりますが、よろしくお願いいたします。
perlとASP.NETの同居について教えてください。
IIS6.0でASP.NET2.0用のWebアプリを提供しています。
その中でglobal.asaxを使用してフォーム認証を併用した独自の認証とログ採取を行っています。
ここにperl製のパッケージを同居させることになりました(お客様の御意向なのでパッケージの内容は詳しくありません)。
Active Perlで動作するようなのですが、global.asaxとどうすれば同居できるのか分かりません。
例えば、拡張子plにperl.exeを設定するとaspnet_isapi.dllで呼ばれるglobal.asaxが動かないため、直接アクセスできる上にログも取られません。
拡張子に複数のアプリケーションを構成することもできないため、perlの実行とglobal.asaxの実行を両方ともおこなう方法が想像つきません。
最終的には下記の流れを実現したいです。
1.クライアントからperlページのHTTPリクエストを受ける
2.perl.exeでperlページを処理する
3.aspnet_isapi.dllでglobal.asaxを処理する(認証とログを処理)
4.HTTPレスポンスを返す
どのように設定するかどなたかお分かりになりますか。
823 :
822:2010/02/15(月) 13:32:58 ID:???
すみません、まだperl製のパッケージは入手しておりません。
また、流れの2と3は逆でも構いません。
それたぶん無理じゃないのかな
aspxでperlのほうにリダイレクトして、
perl側でリダイレクトじゃなければエラー吐くみたいな
処理ならできるのかもしれないけど
ASP.NETでフォーム認証は解説サイトもあり簡単にできたのですが
ASPでフォーム認証するにはどうすればいいでしょうか?
参考になるサイトがありましたら教えてください。
質問です、Ajax Control ToolkitのTabContainerコントロールに配置した
テキストボックスに(ロード時やタブの切り替え時に)
フォーカスをセットする方法をおしてください。
通常のPanel上に配置されたテキストボックスには
フォーカスがセットされるのですがTabContainerコントロールに配置した
テキストボックスにフォーカスをあてる事ができずに困っています、
どうか良いご回答をおねがいしますm(__)m
>>825 ASP.NET的なフォーム認証の仕組みは無い
ASPでやるならCookieとSessionとglobal.asa使って自力で同じようなもんを実装するくらいか
>>827 了解です。自力で作成することにします。
829 :
sage:2010/02/16(火) 10:07:20 ID:???
そーす君しつこすぎ
showModalDialog()で開いたページでDB登録処理を行い、
正常に終了した場合、このダイアログを閉じたいんだけど
window.close()をどのようにして指定すればいいんでしょう。
>>822 パールの呼び出しはCGI経由なのか?
CGI全部自分で処理するカスタムHTTPハンドラつくって、その中でパール呼び出せばできるような気がする
できるかどうか詳しく検証してないからできないかもしれない
--ここから余談
できても俺ならやりたくない。つかやらない
認証を共通でやりたいなら、パッケージ側に認証の連動機能を要求する
パッケージのログはパッケージの機能で採取してもらう
外部のパッケージ使うならそういう割り切りが必要だと思う
>>834 AJAX君は、無理してレスしないでよろしい
836 :
834:2010/02/16(火) 22:12:28 ID:???
AJAX君なら
ASP.NET使って普通にやればできるよ
って回答だろう
あれと一緒にされるのは非常に心外だな
>ASP.NET使って普通にやればできるよ
お前のセリフじゃないか
できるのならソースを示せ
AJAX君は今日も絶好調
GridViewについて、質問があります。
DropDownListの値を使用して、GridViewの表示を変えるシステムを作っているのですが。
DropDownListに全件表示の選択を加えたいと、考えています。
この場合、DropDownListの全件表示プロパティのvalueには、なんと書いたら良いのでしょうか?
表示を変えるってのは、1ページの表示件数かな?
としても、GridViewのデータをどうやって作ってるかによるので答えようがないです。
10とか20とかで動いてるなら全件数でもいれとけば。
842 :
840:2010/02/18(木) 18:49:24 ID:???
すみません、言葉足らずでした。
DropDownListでDBの検索条件を指定して検索、結果をGridViewで表示するシステムです。
DropDownListの中身はDBから引っ張ってくるため、力技だと不都合が出てしまいます。
DBの内容としては、下記のようなものを使用しています。
id / 名前 / 性別 / 血液型 / 出身地
性別、出身地の2つを選んでもらい、検索結果を表示します。
nullの値の条件なしみたいなドロップダウンの項目を追加して
sqlの条件の所 (syussin = @syussin) みたいな所を
( @syussin IS NULL OR syussin = @syussin ) とやったことあったな。
性別も出身地もnot nullだろうから
where 性別 = isnull(@sex,性別) and 出身地 = isnull(@home,出身地) でいい。
全件検索は@sex = null、@home = nullでとれる
845 :
840:2010/02/19(金) 10:54:36 ID:???
>>841 >>842 お二方のアドバイスを参考に、SQLを改変してみましたが、該当データなしとなります。
SELECT ID, name, sex, blood, hometown FROM Table1 WHERE (@sex IS NULL OR sex = @sex)
と入れても、
SELECT ID, name, sex, blood, hometown FROM Table1 WHERE (@sex = NULL) OR (sex = @sex)
と改変されてしまいます。
そして、sex = nullとして検索すると、該当データなしとなります。
また、
where sex = isnull(@sex,sex)
でも同じ結果でした。
必須という訳でもないので、私にはできないという方向で、検討していこうかと思います。
アドバイスありがとうございました。
846 :
840:2010/02/19(金) 10:56:28 ID:???
なんでそんなんになるのかは分からないけど、
なら、nullあきらめて、ありえない値にしとけば
@sex = 'both' にしとくとか
SQLの問題じゃないだろ。基本的な処理の流れがわかってない
まず、ドロップダウンに設定する値はなんでもいい。俺なら空文字列設定する
そして、検索するときにその値をチェックする
動的にSQL作ってるなら検索条件変えるだけだし、
>>843,844が言うようなSQLを設定してるなら
パラメータにNULLをセットする
DBでいうところのNULLってのは"NULL"って文字列じゃないぞ
パラメータに(C#の)nullって渡せるんだっけ?DBNullじゃなくて
最近LINQばかりでよく覚えてないや
DBで言うところのNULLはC#でいうところのnullではない
DBで言うところのNULLを表すためにDBNullクラスがある
パラメータにNULLをセットするってのは、DBで言うところのNULLをセットしろってことだろ
C#のnullをセットするってことは値をセットしないこととほぼ同義だぜ
ウィザード使わないで、自分で動的にSQLを作ればいいんでない?
GridViewとDropDownListを連動させて検索するとか
型どおりの動作は簡単にできるけど、ちょっと細かく挙動を変化させたりとかできないし。
自分ならDropDownListに各種項目(valueは各種項目のデータのid)と「全件表示」項目(valueは0)を表示させるユーザコントロールを作るな。
で、DataSetで全件のデータを取得して、Selectメソッド(またはLinq)でデータを抽出してGridViewにデータバインドさせるか、
DropDownListの選択具合によってASP.NET側で動的にSQLを生成してクエリを発行するか、
SQLのテーブル値関数でクエリを生成してデータを返す。
頭の悪い回答ですね(クスッ
どこが頭の悪い回答なの?ソース君
>>853 AJAX君にしてはキレの悪い突っ込みですねw
んで、どこが頭の悪い回答なの?
ソースプリーズ
852 名前: nobodyさん [sage] 投稿日: 2010/02/20(土) 20:27:20 ID:???
頭の悪い回答ですね(クスッ
854 名前: nobodyさん [sage] 投稿日: 2010/02/20(土) 22:42:45 ID:???
AJAX君にしてはキレの悪い突っ込みですねw
やっぱり意味ないレスで人を煽るのは、ソースくれ厨か
>>840 ManagementStudioで
SELECT ID, name, sex, blood, hometown FROM Table1 Where sex = sex AND hometown = hometown
を実行してみてよ。
手打ちするのではなく、上のSQLをコピペして実行してね。
文字ならシングルクォーテーションで括ろうぜ AJAX君
ん?where 1 = 1と同じ意味だから全件拾えるって話だろ。
まぁ確かに
>>845に対するレスってのが一瞬掴めなくて、
いきなり何言ってるんだとは思ったが。
ソース教えて君大失態の巻
これは意外。
AJAXクンはSQLServer触った事ないのか。
>>862 858 名前: nobodyさん [sage] 投稿日: 2010/02/21(日) 00:47:36 ID:???
文字ならシングルクォーテーションで括ろうぜ AJAX君
いまだにNG指定してない人がいるとか・・・
867 :
840:2010/02/22(月) 11:43:20 ID:???
あれから、いろいろといじってみていたところ
>>843のやりかたで、無事できました。
開始オプションで、最初に作った他のものを開いていたようです
あああああああ死にたいorz
ソースくん涙目
AJAXクンは多分社会人じゃないと思うけど、社会に出てから苦労しそうな予感。
レガシーASPっていつまでサポートされるんだろう
ビルドが遅いのはなんとかして欲しいな。
Java(Eclipse)と比べてここは劣っていると言わざるを得ない。
いわざるをえないー
DBからSQLでデータを取得して、TEXTファイルをダウンロードするようにしたいのですが。
取得したデータをループでStreamWriterに書き込んでいって、最後にResponse.Write(sw)みたいなやり方で出来ますか?
このやり方だとファイル名はどうやって指定してあげればいいのかわかりません。
初心者です。
TEXTファイルをダウンロードってところを具体的に。
取得したデータというのはDBのデータのこと?TEXTファイルの文字?
ファイル名はテキストファイルのファイル名?
こんなんで分かると思うのかー超能力者じゃないんだぞー
876です。
>>877 最終的に作りたいのがTEXTファイルです。
DBのデータをSQLでselectしてきて、それをTEXTファイルに吐きだしたいんです。
その時にファイル名を指定して吐きだすことになると思うんですが。
とあるサイトでは
Response.AddHeader("Content-Disposition","attachment;filename=ファイル名");
のようにファイル名を指定していたのですが、別のサイトでは
StreamWriter sw = new StreamWriter(ファイル名, false, enc);
のようになっており、StreamWriterとResponse.Writeは一緒に使えないのかなと思いました。
複数行のレコードを書き込むにはStreamWriterが便利だと思ったんですが。
サーバーにテキストファイル一旦作るのかどうかってとこか。
881 :
876:2010/02/27(土) 03:17:46 ID:???
ちなみに、ダイアログ(開く、保存、キャンセルがあるやつ)からダウンロードするようにしたいです。
頭の悪い回答ですね
>>879 一つ目のファイル名は、ローカルに保存されるファイルのファイル名を指定するものだけど、
2つめのファイル名は、サーバーにテキストファイルを作るときのファイル名。
とあるサイトでの使われた方知らないから分からないけど、いったん作ったファイルから
Response.Writeに書き出すこともできる
>>882 同意せざるを得ない。やっぱこのスレ、レベル低すぎ。
>>879 Response.AddHeader("Content-Disposition","attachment;filename=ファイル名");
この方法でよい。
887 :
876:2010/02/27(土) 15:38:59 ID:???
>>886 ここの方法だと、string変数に改行コードを入れつつループさせてファイルを作成していますね。
これを真似してみたらうまくいきました。
StreamWriterを使う方がちょっと面倒なのかな。
ちなみにサンプルでは、Response.BinaryWrite(encoding.GetBytes(tempString))のようにstringの文字列をbyteのように扱っていたのですが、Response.Write(tempString)ではだめなんでしょうか。
それはサンプルがアホなだけ。エンコーディング指定して、Response.Writeが正解
>>887 Response.Writeでだめな理由はそのページにも書いてあるだろ
Response.Writeだとページのエンコーディング指定の影響を受ける
特定の文字コードでダウンロードさせたいなら、
>>888がいうように
Response.CharsetなりResponse.ContentEncodingなりを指定して
Response.Writeするのが正解(ただしテキストに限る)
890 :
876:2010/02/28(日) 01:11:31 ID:???
>>888-889 Response.Writeでも出来ました。
ありがとうございました。
VisualStudio2008standardなんですが
ASP.netのプロジェクトにはWebアプリとWebサイトがあると
聞いたんですがWebアプリしかありませんでした。
Webサイトプロジェクトを作成するにはどうしたらいいでしょうか?
ファイルメニューにありますた^^
>>822 似たような案件でうちで外部会社のperlアプリを突っ込まざるを得ない時は暫定的にこうした
1.perlアプリはASP.NETアプリの下階層のディレクトリに放り込む
2.ディレクトリをWebアプリ化してそこのワイルドカードアプリケーションマップににaspnet_isapi.dllを設定
検証した限りではフォーム認証かけつつperlを動かすことができた
その後perl側で対応してもらったから今はやってない
この場合はフォーム認証だけだったけど、ここ用のglobal.asaxを突っ込めばログも対応できるかも
正しいやり方か見当つかないんだけど、この方法って合ってるんかな
ASP.NETで複数のUpdatePanelを使ってるんですが、
pnl1.Update()イベント中に
pnl1.Visible = false;
や
pnl2.Visible = true;
をしても表示が変更されません。
どのタイミングでどうすれば非表示に出来るのでしょうか
どなたかお願いします。
>895
情報足りなくてすみません。
pnl1,pnl2における、
三つのイベント(Init、Load、PreRender)内で
pnl1.Visible = false; や pnl2.Visible = true;
などを記述してみたのですが、
いずれにおいても、初回読み込み時には表示変更が反映されるものの
pnl1.Update();
実行時には、表示変更が反映されず、
初回に非表示になってしまったパネルは、非表示のままです。
Update()発行時に、表示/非表示を切り替えるには、
どうしたらいいのかをご教示ください。
どうしたらいいもなにも、プロパティを設定するだけで普通に動くけど。
UpdatePanelの外側を変更したいという阿呆なこと考えているように見えるんだけど違うよな?
899 :
nobodyさん:2010/03/06(土) 13:03:47 ID:w7XPkCV9
ここに誘導されてきました。
ASP.NET3.5 + VS2008 (VB.NET)です。
ListViewで作成した列タイトルを動的に設定したいのですが
どのようにしたらよいでしょうか?
WebFormの定義は下記のとおりです。(レイアウトの部分を抜粋)
<asp:ListView ID="ListView1" runat="server">
<LayoutTemplate>
<table ID="itemPlaceholderContainer" runat="server" border="1">
<tr id="Tr2" runat="server"><th id="Th1" runat="server">
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</th></tr>
<tr ID="itemPlaceholder" runat="server"></tr>
</table>
</LayoutTemplate>
ListView1の中のLabel1に列タイトルをセットすることで動的に変更しようとしています。
プログラムの部分は下記のとおりです。
Dim lblth1 As Label = CType(ListView1.FindControl("Label1"), Label)
lblth1.Text = "項目1"
これを実行すると、"項目1"を代入するところでエラーになります。
「オブジェクトインスタンスの作成にはnewキーワードを使用します」
どのように記述したらよいのでしょうか?
この方法でなくても、ListViewで列タイトルが動的に変更できればOKです。
AJAX使えば普通に変更出来るじゃん。特に悩むところは無いよ。
>>899 何のイベントで設定してるんだ?
まさかPage_Loadじゃないだろうな。
ListViewのDataBoundなりでやれば動くぞ。
>>899 まず、エラーメッセージを正確にかけ。おそらく、
オブジェクト参照がオブジェクト インスタンスに設定されていません
のはずだ
データソースが指定されていないから、テンプレートに指定した内容が
実際にまだ作成されていないからエラーになってる
ちゃんとしたDataSourceIDを指定するなり、DataSource指定してDataBindしてから
やればちゃんと動くはず
>>901 そもそもDataBound発生してないと思うぞ
ちなみに俺が試した範囲ではデータソースをちゃんとすれば
Page_Loadでも動いた
903 :
nobodyさん:2010/03/06(土) 17:28:43 ID:w7XPkCV9
>>902 Page_Loadに記載しています。
エラーメッセージは、最初に記載したエラーの上にご指摘の
「オブジェクト参照がオブジェクト インスタンスに設定されていません 」が
表示されていました。
Dim lblth1 As Label = CType(ListView1.FindControl("Label1"), Label)
lblth1.Text = "項目1"
上記を ListView1.DataBind() の下に配置したところ、正常に動作しました。
ありがとうございました。
ちなみに、この方法の他に LayoutTemplate をオーバーライドする方法も
あるようですが、どちらの方法が望ましいでしょうか?
>>901 Listviewは、GridViewのように「列の編集」が
表示されませんが、どのように定義したら
よいのでしょうか?
また、Webフォームのソース画面で、
GridViewと同じように
<asp:ListView ID="ListView1" runat="server">
<Columns>
<asp:BoundField HeaderText="項目1” />
</Columns>
</asp:ListView>
と記述してみましたが、記述した時点で警告がでました。
「検証 (XHTML 1.0 Transitional): 要素 'columns' はサポートされていません。」
「要素 'BoundField' は不明な要素です。」
これを無視して実行するとエラーが発生しました。
「パーサー エラー メッセージ: 型 'System.Web.UI.WebControls.ListView' には 'Columns' というパブリック プロパティは含まれていません。」
全部ここで聞くつもりか
asp.netのマスタページ機能の質問です。
ContentPlaceHolderは、ToolboxのStarndard区分から選択することでコードを挿入できるのですが、
ContentPlaceHolderの中身を記述する以下のような「Content」コードをGUI操作で
挿入する方法がわかりません。
仕方なく、コピペでコードを入れているのですが、GUI操作でお手軽に挿入する
方法はありますか?
<asp:Content ID="Content1" ContentPlaceHolderID="aaaaa" runat="server">
</asp:Content>
環境はVisual Studio 2010 Ultimate RCですが、VS2008でもやり方がわかりませんでした。
>>904 ListViewで何が出来るか、何をするものか勘違いしてる。
ListViewでは、何でも出来るけど、そのかわり自分で全部やらなきゃいけない。
908 :
899:2010/03/07(日) 16:52:11 ID:???
>>907 元々、
>>899のようなことがしたくてListviewでBoundFieldみたいなもの
ないかなと思って本やネットで探していたのですが、どうもListviewには
BoudnFiledは無さそうでした。
ところが、
>>901さんが「ListViewのDataBoundなりでやれば動くぞ」と
言われたので尋ねた次第です。
909 :
901:2010/03/07(日) 17:34:54 ID:???
>>908 何を言っているのか意味が分からん。
>>899で示されたエラーから推測できるのは、ListView1.FindControl("Label1")がnullってことだった。
で、原因は
>>902が言うようにDataBoundイベントが発生していない
(=まだLabel1が作成されていない)段階で、FindContolしているからだ。
ListViewのDataBoundイベント発生後ならばLabel1は存在する
→したがってFindControlでラベルオブジェクトが取得できる
→したがってラベルオブジェクトのTextプロパティを動的に設定可能ということだ。
(もちろんDataSourceがnullでない場合に限る)
誰もGridViewと同様にBoundFieldが設定可能などと言っていない。
910 :
899:2010/03/07(日) 18:43:48 ID:???
>>909 イベントのことだったのですね。
ありがとうございました。
やっぱり、おまいらは、客に納品するシステムを
visual web developer express 2008 作ったりするの???
>>911 短期の助っ人(契約とか派遣)や、コードを色つきで見れれば良い程度のテスト要員には使ってもらうことある
でも、短期でも主要な部分をやってもらう人や、テスト要員でも開発部員なら相応のEditionを渡す(開発部員は自分でライセンス持ってる場合多いけど)
ケースバイケースだけど、常時10ライセンスくらいは余らしてるからExpressを使わないパターンの方が多いな
expressでも作ってしまえば同じだろ。
お客にソース渡してお客がメンテするのならライセンスはお客側の話だ。
>>913 質問の意図から論点ズレまくってるよ
確かに作ってしまえば同じだけど、開発ツールの選択は作る過程に影響する話でしょ
お客さんがどうこうって話は元質問に全く無い要素だと思うけどなんで話広げてるの?
>>914 質問に、「客に納品する」って前提条件があるのに
元質問に全くない要素ってか
つか、>911の質問内容でその意図を正確に読み取るとは
ここはエスパーの多いスレですね
Expressだと、何か問題があったときにマイクロソフトに問合わせして対応してもらえるんだっけ?
自分の経験した会社だと、ほとんど開発ソフトは、開発案件ごとに見積もりに価格に乗せて、
購入するようにしてるからExpressで開発することはないな
うちもないな。というか、Express使うという発想がない。
MSに問合わせて解決したことが無い俺
別に解決しなくてもいいんだよ
OSや.NETに起因するバグや仕様で、自分たちにはどうにもできない、
問合わせてもMSは何もしてくれないという客先への証明になれば
この問題はMSに問い合わせたけど解決しませんでした。
で通用するとか、ヌル過ぎる客がうらやましいでつね(クスッ
マジレスで申し訳ないんだけど、通用しない場合はどうなるの?
まさか開発側の問題ってことにはしないよね?
もしかして運用回避等のその他代替案の提示位しろよ、みたいな当たり前の話?
>>921 >>920は、ここに居着いたあらしだから無視が一番
AJAXも使ったことないで脳内回答してたぐらいだし、実際の現場で働いたことがないんだろう
久しぶりに、このAAにぴったりな発言を見た
/ \ /\ キリッ
. / (ー) (ー)\
/ ⌒(__人__)⌒ \ <この問題はMSに問い合わせたけど解決しませんでした。
| |r┬-| | で通用するとか、ヌル過ぎる客がうらやましいでつね
\ `ー’´ /
___
/ \
/ノ \ u. \ !?
/ (●) (●) \
| (__人__) u. | 代替案や運用で回避してもらって機能は実現するに決まってるじゃん>
\ u.` ⌒´ / 何もしないわけないじゃん クスクス>
ノ \
/´ ヽ
____
/ \!??
/ u ノ \ <言うまでもないこと言われてもね
/ u (●) \ <話の内容のレベルが違うんじゃない? クスクス
| (__人__)|
\ u .` ⌒/
ノ \
/´ ヽ
>>921 そもそも通用するわけがない
客との契約はサービスやアプリケーションを提供すること
開発環境の都合なんて客は知ったことじゃないし、理解することもできないし、理解して「そうかそうか、仕方ないな」なんて言ってくれない
客が見るのは結果だけなわけで、検収取れなきゃ金出してくれないわけで
※他の開発会社の下請け作業や、稀にいる開発環境指定の客の場合はこの限りではない
だいたいにして、MSの開発環境でそれを構築すると判断してそれがMSの原因で達成できないとしたら、MSを選択したうちらの瑕疵もある程度はある
それを何らかの方法で回避するための根本原因の説明としてMSの回答を持ち出すことはあっても、その尻拭いは開発側の仕事
たとえば、運用回避策を検討して提示するとか代替手段を開発するとかして延命し、MSの回避策が出てから対応完了するイメージ
普通そういうリスクは織り込んで契約するもんだと思うんだけどな
うちの場合、契約には開発環境を提供する会社の瑕疵によって発生した場合は、お互いの協力(客は期間延長、こっちは開発費用持出)で解決しようって一文は入れて、交渉の担保にはしてるけどね
とは言ってもデッドラインはあるわけで、そのためにデスマーチになることも過去にはあったなw
925 :
924:2010/03/08(月) 21:29:40 ID:???
orz
>>923のAAで俺の駄文が完全に表現されてた...
>>924 そうそう。
顧客が求める機能を最大限、できる範囲で実現しようとして作業するのは当たり前。
その前提で考えると
>>920は、マジで実際に働いたことがないんじゃないかと思う。
もしくは、ただこのスレに居着いて他人に喧嘩を売っているだけ。
客に徹夜したけどできませんでしたと言うのに似てるな
全然違うw
徹夜してできない→技術力の無い証明
MSの返答でできない→どうやってもできないの証明
こういうと、技術力があるのなら一晩でフレームワークを自作しろとか言うのかもしれないが、
残念ここはASP.NETスレだ
業務開発ってさ、コード組むのが目的じゃないんだよ
仕様を実装するのが目的なんだよ
だから、MSがある方法での実装が不可だと回答したら、別の方法で実装するだけだよ
そのために特定の前提が必要だとか外部ソフトが必要だとかあったら顧客と調整するだけ
こういうのは仕事で開発してないとピンと来ないだろうね
>>916 大手なんだね。そんな金載せられるほど余裕あるんだ。
express使おうが使うまいが動いたもん勝ち
いま、世の中にはいろんな現場があるということへの理解が試されている。
「不可能」となったときの、当然の対応の仕方が仕事をしてないからピンとこないんだろうな
さすが、事故解決能力の無い、ソースくれくれ君だよ
>>932 その通り
手段に引っ張られて目的を達成できないとかありえない
でも「結果が出れば手段なんてなんでもいいんだ」とExpressに固執して生産性下げるのも愚の骨頂
「Expressでなんでもできるからいいだろ」と言うのは時間を金額に換算する必要のない立場の人間だけ
有償サポートが受けられるというのが大きいと思うぞ
SQLServerもそう
何か不具合があったとき、こっちの不具合なのか、
MSの不具合なのか判断してもらえるところが大きい
Express edition(Visual Web Developer)だと、機能制限のせいで
SQL Server上のテーブルデータにコントロールをバインドさせるような
基本的な事もGUI操作でできないよね?
生産性落ちるどころのレベルじゃないと思うんだけど。
リファクタリングとデバッグの制限もある
それにプロジェクトに自作DLLを導入してる場合、その自作DLLを作成するプロジェクトを混在できないから面倒
あと、多くの帳票作成ソフトとかの外部アドオンがExpressだと導入できない
>>939 “GUI操作で”出来ない
手書きすればメモ帳でだってできる
自分の所は部内システムで使ってるだけだからexpressだな
それどころか鯖も買ってもらえなくて
自分の業務用PCでとりあえず動かしている状態
普通の開発会社なら個人にVSのライセンス割当たってるもんじゃないの?
今までASPXで動いてたページにAjaxを組み込むことになりました
以前のASPXページはポストバックごとに状態をセッション変数に保存していましたが
Ajaxだと当然ポストバックが発生しません
こんなとき、Ajaxからセッション変数を更新する方法を解説しているページなどありましたら
ご紹介ください。
時間をかけて自分で調べればいいのですが、時間に余裕がありませんのでよろしくお願いします。
Ajaxをどういう方法で組み込むか知らんけど、サーバーリクエスト先でセッション変数参照するだけでしょ
ASP.NET AJAXなら該当イベントで、それ以外ならリクエストされるページで
イベントで動くって基本に立ち戻れば悩むようなことじゃないと思うんだけど
「ポストバックで処理していたのをどうすればいいんだろ」って思考に囚われすぎてないかい?
なるほど!! ASP.NETを使うつもりでしたが、イベントはサーバー側で発生するのに変りはないんですね!
イベントはクライアント側で発生
そこでxmlHttpRequestでサーバを呼ぶ
つーか、サーバを呼ばなきゃただのDHTML
リンクと質問は関連してるのか?にしても、古いKB引っ張ってきたな。
セッションは使う。
KBの件はsessionStateをInProc以外にしてれば、
ワーカープロセスが再起動してもセッション情報は失われない。
つか、そんなKB持ち出すまでもなく、
iisはアイドルが20分程続くと勝手にワーカープロセスを再起動する。
この時、sessionStateがInProcだとセッション情報が消失するという楽しい仕様だ。
InProc
ASP.NET3.5 + IIS6 でセッション変数使用中にWeb.configを保存しなおしたら
ほんとうにセッション変数が消えてしまいました・・・
こんな危険なセッションモードが「デフォルト」になっているのは何故ですか?
たぶん、昔のASPのデフォルトがInProcだったから
ワーカープロセスは、CPUやメモリの負荷が高くなっても再起動しますよね。
昔の人はどうやって運用してたんだろう。
InProcなセッションがリサイクルで吹っ飛ぶのは「IISの常識」
IISの動作を見れば分かり切ったことだし、ASP.NET開発の書籍でSessionのとこ見れば必ず注意事項として載ってる
ところが、MSのオフィシャル情報にはこう載ってる罠
http://msdn.microsoft.com/ja-jp/library/z1hkazw7(VS.80).aspx
> データの永続性 セッション状態変数に配置されたデータは、インターネット インフォメーション サービス (IIS: Internet Information Services) の
> 再起動やワーカー プロセスの再起動があっても失われずに保持されます。
> これは、データが別のプロセス領域に格納されているためです。
> また、セッション状態のデータは、Web ファームや Web ガーデン内のプロセスなど、複数のプロセス間で保持できます。
ステートサーバを使って実現することをさも既定の動作であるかのように書いてる。
セッションについて理解していればこれが宣伝広告的なものだと分かるんだけど、そうじゃないと鵜呑みにしちゃうよね。
こうして騙される人が増えると。
ちなみに昔はセッションなんて使わないのが常識だった。
せいぜい持たせて認証情報くらい。
これなら吹っ飛んでもログインしなおす流れを明示できる。
連続的な情報はCookieやページ内にhiddenで突っ込んだりしたもんだ。
ASP.NETでもContextやViewStateで十分な情報はそれを使った方が良いよ。
>インプロセス モード
>アプリケーションの Web.config ファイルの processModel 要素で
>webGarden 属性に true を設定して Web ガーデン モードを有効にしている場合は、
>InProc セッション状態モードを使用しないでください。
>このモードを使用すると、同じセッションに対する要求がそれぞれ異なるワーカー プロセスによって処理される場合、
>データ消失が発生する可能性があります。
>>953 引用のつもりなら出自を明確に
あと、そのコピペじゃ何を言いたいのか全然分かんない
InProcで消えるパターンが他にもあるよと言いたいだけ?
>>952 それプロファイルプロバイダを利用した場合の長所って書いてあるだろ
本当にここはレベルが低いな
これはバグですか?
1.Visual Studio 2008 SP を起動
2.ファイル - 新しいプロジェクト - ASP.NET Webアプリケーション を選択して[OK]
.Net Framework 3.5 を設定
3.デザイン画面を表示
4.Panelコントロールを配置
5.panelコントロールの中にTextBoxコントロールを配置
6.TextBoxコントロールのプロパティウィンドウでTextプロパティに何か文字を入力し確定
7.そのままデバッグの開始
デフォルト表示されるはずの文字が表示されないのです。
ちなみにPanelに載せなければ正しく表示します。
3台のPCで試して3台とも再現しました。
>>955 セッション状態とプロファイルプロパティは別物だし>952のリンク先でも
別セクションにわけて解説してある
プロファイルプロパイダは後者のことで、>952は前者のことだぞ
ソース君必死(笑)
>>960 製品の不具合に起因することはインシデント返還される
暫定的な非公開hotfixと引き換えにすることもできる
バグが確定的なら無料の窓口でも対応してくれる
いきなりSRする必要はない
まずは無料サポートに問い合わせて対応させる
バグならその旨連絡来るし、そうじゃなさそうならSRをすすめられる
○A ○B ○AorB
_______
| |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
A|B |C
―――――
1|12|aaa
2|13|bbb
3|14|ccc
4|15|ddd
GridViewで作成した表に、ラジオボタンで選択した行をテキストボックスに
入力した文字列で検索した結果を、表示したいと考えています。
具体的には、ラジオボタンでAを選択した状態でテキストボックスに1と入れると、GridViewに
A|B |C
―――――
1|12|aaa
が表示され、ラジオボタンでAorBを選択した状態でテキストボックスに3と入れると、GridViewに
A|B |C
―――――
2|13|bbb
3|14|ccc
と表示したいのですが。
ご意見いただけないでしょうか。
GridView.Rows.Countになるまでグリグリ探してあれば
その行をVisible=Flaseで良いんじゃね?
ラジオボタンとテキストボックスから動的に条件組み立てて、
その条件で元データをフィルタする
俺なら動的にSQL組み立てるが、ポストバック間で元データのデータセットを
保持してるならRowFilter使うのもありかな
GridViewを使わない
どこにDB使ってると書いてあるんだ?w
俺なら動的にSQL組み立てるが
訂正
俺ならDB使って動的にSQL組み立てるが
処理タイミングで結構話が変わる気がする
「テキストボックスに3と入れると」ってのはクライアントサイドで完結して欲しいって意図も感じる
どこかに「絞り込み」ってボタンがあって、普通にポストバックしていいなら結構楽な話だけど、クライアントサイドで完結したいならこめんどう
Ajaxにしてグリッドだけサーバの結果で書き換えるって手もあると思う
970 :
963:2010/03/16(火) 17:22:59 ID:???
みんなごめん、いろいろ大切な情報が抜け過ぎだた
データはDBつかって管理していて、どれもvarcharだと思ってくれ
絞り込みボタンを設置して、ポストバックさせる予定
971 :
nobodyさん:2010/03/17(水) 08:27:50 ID:hGXHTczy
GridView.Rows[i].cell[j]でぐりぐり探せば?SQLだとSQLの管理もしなきゃいけないしめんどうじゃね、AorBorCの条件があるって事は複数の条件のSQLが出来上がるわけだし
ただ画面に表示されてないデータの情報がほしい場合にはどっかに保存してなきゃいけないけど
データ量との見合いでしょ
対象が例の通りの4件ならぐりぐりでいいけど、それなりの量を相手にするなら検索はDBに任せた方がいい
3つの条件受け取るストアド作っておけば呼び出し側はSqlDataSourceで簡単に対応できるし
たかが3条件でSQLが複雑とか言わないよね?
973 :
963:2010/03/17(水) 10:20:23 ID:???
結局、ボタンイベントでパラメータを切り替えて、値を入れることにしました
全部GUIでできないかなーと思ってたのですが、やっぱり無理か
>>973 ストアド使えばASP.NET側はGUIだけでできるよ
Framework1.1のシステムにAjaxを使いたくて Ajax.NET Professional を導入することにしました。
http://www.ajaxpro.info/ で、web.configの <system.web> 直下に
<httpHandlers>
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/>
</httpHandlers>
を設定しろとあるのでそうしたのですが、このweb.configには認証が必要なセクションがあり
<location path="search/protected" allowOverride="false">
<system.web>
<authorization>
<deny users="?" />
という設定になっています。ここの <system.web> 直下に
<httpHandlers>
<add verb="POST,GET" path="/ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/>
</httpHandlers>
と書いてみましたが、認証が必要なページだけweb.configのパスが見つからないというエラーが出ます。
ディレクトリ構造は
wwwroot
ajaxpro
search/protected
となっています。
パスの書き方が違うのだと思うのですが、いろいろ試してもうまくいきません。
どうか、ご教示くださいませ。
追記、さらに
別のアプリケーションとして登録してあるウェブサービスがあり
wwwroot
ws
に置いてあるんですが、wwwrootのweb.configを編集しているとウェブサービスもエラーを出してることに気がつきました。
もちろんwsディレクトリにもweb.configはあります。ここも<httpHandlers>を設定するとオブジェクト参照にインスタンスがありません。にメッセージが替わりました。
どうしたものでしょうか・・・
977 :
nobodyさん:2010/03/20(土) 12:26:33 ID:bKU/HHKK
あげときます
普通にjQuery使ったほうがいい
※このスレの現状
ソース厨がスレを荒らして、みんなスレからいなくなる
↓
ソース厨はAJAXわからない
↓
しかもソース厨はレベル超低い
↓
簡単な質問にもまともなレスがつかない
980 :
nobodyさん:2010/03/20(土) 20:49:51 ID:bKU/HHKK
それぞれにアセンブリを配置して参照設定したらとりあえずエラーは回避できました
この先どうなるかわかりませんが、とりあえずありがとうございました。
MSがオフィシャルで開発QA掲示板やってるのに2ちゃんで質問する意味がわかんねぇ
MVP様は実績積むために張り付いてるし、1日反応無いだけでMS社員が反応してくれる
そっちのがレベルもレスポンスも上なのにここで回答求める方がアホ
まあ、ここで質問したところでAJAX君が役に立たない回答返すだけだしなw
ASP.NETスレもPart6で終了か。
4辺りから見てるが、糞度は今と大してかわらんぞ。