1 名前:nobodyさん mailto:sage [2009/01/23(金) 09:46:51 ID:???] ●過去ログ Part1 - 【質問】 ASP.NETスレ 【議論】 pc5.2ch.net/php/kako/1040/10406/1040698263.html 【質問】ASP.NETスレ Part2【議論】 pc8.2ch.net/test/read.cgi/php/1111480331/ 【質問】ASP.NETスレ Part3【議論】 pc11.2ch.net/test/read.cgi/php/1160355849/ 【質問】ASP.NETスレ Part4【議論】 pc11.2ch.net/test/read.cgi/php/1184683786/ (dat落ち?) あんまり需要ないのかもしれませんが。。。
531 名前:nobodyさん mailto:sage [2009/07/05(日) 14:33:29 ID:???] 2chで煽るのが僕のレーゾンデートルですw
532 名前:nobodyさん mailto:sage [2009/07/05(日) 15:11:29 ID:???] >>528 なるほど。そういう物だと理解します。
533 名前:nobodyさん [2009/07/05(日) 15:32:32 ID:Km3uJP2Y] GridViewのHyperLinkFieldに対して、2個のSQLのカラムを使って、DataTextFormatStringを作りたいです。 以下のSQLで抽出した2個のカラムを結合した文字列をハイパーリンクに表示させたいです。 select fig_name, fig_number from figure これで抽出できるのはおのおの、 ・fig_name: '図'と'表'のいずれか ・fig_number: 図表番号。数字。 とします。 そしてハイパーリンクにはこの2個をくっつけて “図1”とか、“表2”とかにしたいです。 とりあえず、以下のようにやったけどだめでした。。 DataTextField="fig_name,fig_number" DataTextFormatString="{0}{1}" どなたか、ヒントでも結構ですのでよろしくお願いします。。
534 名前:nobodyさん mailto:sage [2009/07/05(日) 17:32:49 ID:???] >>533 簡単に思いつくのは、TemplateFieldで自前で追加
535 名前:nobodyさん mailto:sage [2009/07/05(日) 17:55:40 ID:???] SQLのクエリで自前で合成したフィールドを作ればいいんでないの SELECT (Table.fig_name + Table._number) AS fig_fullname FROM Table とか。 でもこれだとSQLDataSourceが使えなかったり、 GridViewの編集や削除が使えない可能性があるから嫌われそうだけど。 >>534 のTemplaterFieldにしても編集とかできなさげ。 んで、結局、編集、削除、追加は自前で実装して、 どうせ実装するならRepeaterでいいじゃんということに落ち着く流れになりそう。
536 名前:nobodyさん mailto:sage [2009/07/05(日) 21:51:56 ID:???] >>534 ,535さん ありがとうございます。 RowCreateでデータベースから抽出された結果にアクセスできたので、 そこで文字列をつくって、ハイパーリンクに貼り付けました。 やりかたはダサイかもしれませんが、まぁまだ素人なので。。
537 名前:nobodyさん mailto:sage [2009/07/06(月) 00:03:42 ID:???] ユーザーコントロールのIDを取得したいのですが、どうすればいいのでしょうか?
538 名前:nobodyさん mailto:sage [2009/07/06(月) 00:41:21 ID:???] ClientID
539 名前:nobodyさん [2009/07/06(月) 01:25:51 ID:bdwzJZ3p] UpdatePanel凄すぎワロタ。やっぱMSはすげーなぁ。
540 名前:nobodyさん mailto:sage [2009/07/06(月) 06:49:00 ID:???] >>524 おめでとう どうやら君が真のエスパーだったようだ
541 名前:nobodyさん mailto:sage [2009/07/06(月) 10:36:39 ID:???] 開発技術大全って.net 3.5以降とかのは出版されてる? >>516 とかみるとかなり古そうだが。。
542 名前:nobodyさん mailto:sage [2009/07/06(月) 12:44:03 ID:???] 開発技術大全は記述されてるフレームワーク関連は古いが、 それ以前のASP.NETのアーキテクチャに関する仕組みを知りたいということなら そんなに色あせないで見ることが出来る。 データベース関連ならADO.NETとLink To Entitiesの本を買うべきだし、 コントロールの使い方ならもっと別の本を買うべき。 それに、どうせいろいろやりたくなると、 DataSet+Repeaterコントロールに落ち着くことになるからね
543 名前:nobodyさん [2009/07/06(月) 18:51:33 ID:/VP1pSJi] テキストボックスのIDをascxからaspxに持ってきたいんだけど、string型になっちゃうのは仕様なんですが? textbox型で持ってくることは出来ないのでしょうか? ctypeで変換しようとするとstring型はtextbox型へ変換できませんってでます
544 名前:nobodyさん mailto:sage [2009/07/06(月) 19:01:42 ID:???] 無知な俺らに聞いても無駄だと思うが ユーザコントロールを作るということは、新しいクラスを設計するということ。 ユーザコントロールにサーバコントロールを配置するということは、 そのクラスのメンバ変数にサーバコントロール型のオブジェクトを privateのスコープで持つということと同じなので、 ユーザコントロール側で、そのテキストボックスのインスタンスを公開するプロパティを宣言すればいい。 そうすれば、ユーザコントロールに配置したテキストボックスのIDは知る必要がない。 でもそれだと隠蔽の意味がなくなってしまうので、 外からでも変更可能なプロパティだけを ユーザコントロールのプロパティとして再定義して公開するのが普通のやり方。
545 名前:nobodyさん [2009/07/06(月) 19:11:22 ID:/VP1pSJi] >>544 つまりどういうことですか? コードで書いて教えてください ・user.ascx protected sub name () as textbox get return txtname.clientID end get end sub ・main.aspx dim TextName as textbox = name TextBox.text="Test" 今はこんな感じで書いていてだめになっています
546 名前:nobodyさん mailto:sage [2009/07/06(月) 19:32:14 ID:???] 無知だからVBはわからないがC#だと public string Text { get { this.TextBox.Text = value; } }
547 名前:nobodyさん mailto:sage [2009/07/06(月) 19:35:52 ID:???] ああget→setかな すまん無知で
548 名前:nobodyさん mailto:sage [2009/07/06(月) 19:37:50 ID:???] Protected ReadOnly Property name() as TextBox Get Return txtname End Get End Property でいいんちゃうか。
549 名前:nobodyさん [2009/07/06(月) 19:41:53 ID:/VP1pSJi] >>548 txtnameだけでIDを送ることができるんですね。 ありがとうございました。
550 名前:nobodyさん mailto:sage [2009/07/06(月) 19:43:38 ID:???] >>548 少なくともユーザコントロールで、所有してるオブジェクトをそのままプロパティで公開するのは止めたほうがいいよ
551 名前:nobodyさん mailto:sage [2009/07/06(月) 19:57:47 ID:???] それは分かってるがID:/VP1pSJiが何をしたいか分からんことには。。
552 名前:nobodyさん [2009/07/06(月) 20:16:06 ID:/VP1pSJi] すいません>>545 がちょっとまちがっていました ・user.ascx protected sub name () as textbox get return txtname.clientID end get end sub ・main.aspx dim TextName as textbox = name TextName.text="Test" つまりユーザーコントロールにあるコントロールをaspx側で操作したいというこです
553 名前:nobodyさん mailto:sage [2009/07/06(月) 20:19:06 ID:???] だからコントロールのプロパティをUserControlのプロパティとして公開しなさいっての
554 名前:nobodyさん [2009/07/06(月) 20:21:29 ID:/VP1pSJi] >>553 どうやるんですか?
555 名前:nobodyさん mailto:sage [2009/07/06(月) 20:57:29 ID:???] >>554 >>546-547
556 名前:nobodyさん [2009/07/06(月) 22:05:11 ID:Igs6oFx6] 質問させてぇ〜 「無効なポストバックまたはコールバック引数です。 イベントの検証は、構成の <pages enableEventValidation="true"/>、 またはページの <%@ Page EnableEventValidation="true" %> を使用して・・・」 っていう糞長いエラーが。。 状況はMultiViewの中のViewのなかのGridViewのなかに配置したTemplateField(イメージボタン) に、 CommandName="delete" OnClientClick="return confirm('削除してよろしいですか?');" ってプロパティ設定をして、ゴミ箱のイメージボタンをおしたら削除されるようにしたわけ。 で、さらにこのGridViewのイベントハンドラを以下のようにしてるわけ。 OnRowCommand = "GridViewMeans_RowCommand" で、このイメージボタンを雄と件のエラーが発生します。。。 そもそもこのエラーって何を意味するの? 「ぽすとばっくやコールバックのイベントが、それをレンダリングしたサーバコントロールから由来するとだめ」 しかもセキュリティの理由から?? 意味が分からない。 意味が分からないから対処方法も想像できない。単にenableEventValidation="false"にすればいいよ、とか 意味も分からず闇雲にトライエラーしたくないし。 だれか、ずばっと、こういうパラダイムがあるから、それを解決するためにこういうセキュリティ上の配慮が必要で、そのために チェックしてるんだ!!!とか男らしい回答求む。
557 名前:nobodyさん mailto:sage [2009/07/06(月) 22:24:58 ID:???] >>556 techbank.jp/Community/blogs/mymio/archive/2008/03/28/381.aspx
558 名前:nobodyさん mailto:sage [2009/07/06(月) 22:53:47 ID:???] >>557 ご回答ありがとうございます。 するってぇと、何でImageButtonをViewStateに保存しちゃまずいんですかね? そういうモノだから??
559 名前:nobodyさん mailto:sage [2009/07/06(月) 22:56:34 ID:???] とりあえず試してみました。 変わりませんでした。。 やはりあの、、原理を。。
560 名前:nobodyさん mailto:sage [2009/07/06(月) 23:10:21 ID:???] 例えばRepeaterやGridViewコントロールなどのように、 動的に行が生成されるコントロールで、 さらに動的にRepeaterやGridViewなどのような動的に行を生成するコントロールを作成し、 その中でClickイベントを実装すると、その問題が発生するということだったはず。 ページによって存在するかどうかわからないイベントの発生元が存在した場合に、 それを検証する術がないのでエラーになるという感じだったような気がする。 例えばRepeaterの中のLiteralコントロールに、サニタイズをせずに文字列を表示させてしまい、 擬似的にポストバックされるコードを記述されてしまうのを検知するのと区別が付かないとかなんとか。 記事のありかは忘れた。
561 名前:nobodyさん mailto:sage [2009/07/06(月) 23:23:44 ID:???] >>560 おお〜。なるほど!ありがとうございます 分かりません! でも自分の頭じゃ理解できないってことだけは分かりました。 まぁMFCなんかでもダイアログボックスを表示中に他のタイマーとかのイベントがくると ダイアログボックスのなかのメッセージポンプがそれを処理しちゃって、 その辺を考えて作らないといけないとか、そんな苦労を思い出します。 要は凝ったフレームワークにありがちな落とし穴って事ですかね。 うーん。困ったw
562 名前:nobodyさん mailto:sage [2009/07/06(月) 23:35:38 ID:???] >>554 ・main.aspx dim TextName as textbox = CType(ユーザコントロールのID.FindControl("txtName"), TextBox) これでお前のやりたいことはたぶんできるだろう これをやるべきじゃないとか何とかいろいろあるんだが、 まあそれは勉強してくれと言うしかない
563 名前:561 mailto:sage [2009/07/07(火) 00:48:14 ID:???] いろいろ試行錯誤した結果、TemplateFieldのItemTemplateの中身がLinkButtonだと削除機能は全く問題ないけど、 ImageButtonだとだめみたいです。 ImageButtonにしてEnableViewStateをFALSEにしてもだめみたいです。 なんか、ImageButtonがだめのかねぇ。 もう寝ます。
564 名前:561 mailto:sage [2009/07/07(火) 21:59:56 ID:???] 海外のサイトあさって回答を見つけたよ。 なんでもGridViewのサーバーサイドのイベントが2回以上起こると発生するらしい。 自分の場合は最初に(書いてなかったけど)RowCreateイベントを使ってる。 そして2回目はボタンをクリックしたときに発生する。 この2回のポストバックにおいて、RowがもってるID(つまりe.Row.ID)が食い違っていると この検証に引っかかるらしい。 (ただのMSのバグじゃねーの??) 自分の場合、最初はRowCreateで、この時点ではe.Row.IDはNULL、たぶんボタンをクリックしたときはなんか値が入ってるんだろうね。 それが食い違っているからだめ〜ってこと。 なんで最初にユニークな値を突っ込んでおけばいいらしい。 つまり RowCreate() { e.Row.ID=Guid.NewGuid().ToString(); } これでOKだった。でもなぜLinkボタンならよいのかは不明。Linkボタンはポストバックじゃないからかな。
565 名前:nobodyさん mailto:sage [2009/07/07(火) 22:06:15 ID:???] 1ページに対してイベントは1回だから別に間違ってないだろ それこそ、故意にイベントを発生するタグを挿入される危険性を排除するのが目的なんだから
566 名前:nobodyさん mailto:sage [2009/07/07(火) 22:10:13 ID:???] なんだ、兄さんよく知ってる感じだな。 もっと早く出てきて教えてくれよ。
567 名前:nobodyさん mailto:sage [2009/07/07(火) 22:27:17 ID:???] IDが変わるような操作したあと、databindし直すのが正しい操作じゃないのか?
568 名前:nobodyさん mailto:sage [2009/07/07(火) 22:58:50 ID:???] >>567 たぶんあなたの言っていることは正しい。
569 名前:nobodyさん mailto:sage [2009/07/07(火) 23:52:10 ID:???] javascriptどうすれば簡単に覚えられますか? VBに浸りすぎてぜんぜんわからん
570 名前:nobodyさん [2009/07/07(火) 23:57:57 ID:ID58Jon/] .NETではなくASPなのですが、スレがないのでこちらに書き込みます。 DBテーブル上にBASE64エンコードされた画像データ(テキスト)が格納されています。 これをデコードしてresponseで出力したいのですが。。 エンコードはBASP21のBASE64関数を使い、ファイル経由で行いました。 デコードはファイル経由にしたくないので、なんとか直接出力したいのですが。 ちなみにBASP21でデコードすると Dim o_buf o_buf = objBASP.BASE64(rsRecord.Fields("Field_name").value, 1) Response.BinaryWrite o_buf Response.End のような感じになりますが、o_bufにバイナリイメージの先頭数byteしか入ってこなかったので、 BASP21は使えないと考えています。 「これぞ王道」のような方法があればお教えください。 いまさらながらASPでプログラムを作成する案件がでてきて、慣れない中苦戦しているもので。。 よろしくお願いします。
571 名前:nobodyさん mailto:sage [2009/07/08(水) 00:10:09 ID:???] >>570 >エンコードはBASP21のBASE64関数を使い、ファイル経由で行いました。 直接デコードしたら表示できる? >デコードはファイル経由にしたくないので、なんとか直接出力したいのですが。 ファイル経由にしたらデコードできる? >o_bufにバイナリイメージの先頭数byteしか入ってこなかったので なんで入ってこないの? >「これぞ王道」のような方法があればお教えください。 バイナリのままデータベースに保存できないの?
572 名前:nobodyさん mailto:sage [2009/07/08(水) 00:19:39 ID:???] >>569 VBを窓から投げ捨てる
573 名前:nobodyさん [2009/07/08(水) 01:35:13 ID:ZNTcUj46] レスありがとうございました。 >>エンコードはBASP21のBASE64関数を使い、ファイル経由で行いました。 >直接デコードしたら表示できる? >>デコードはファイル経由にしたくないので、なんとか直接出力したいのですが。 >ファイル経由にしたらデコードできる? ファイル経由でのデコードはできています。(BASP21利用で) このファイルをビューアで見ることもできます。 サーバ負荷が高くなりそうなので、ファイル経由は避けたいと思っています。 >o_bufにバイナリイメージの先頭数byteしか入ってこなかったので なんで入ってこないの? BASP21の関数利用の結果がそうなっていました。 ここは理由はよくわかりません。。 >「これぞ王道」のような方法があればお教えください。 バイナリのままデータベースに保存できないの? バイナリのまま保存する方法も現在調査中です。 エンコードする方法と、両方を調べている最中です。 どうぞよろしくお願いします。
574 名前:nobodyさん mailto:sage [2009/07/08(水) 09:09:29 ID:???] >>573 モード6と7が対なのはわかるんだけど、 それと、その他のモードに互換性があるのかな 他のは、いわゆるwidestringだけに対応してて、バイナリには対応してないんじゃないのかな。 異なるモード間で互換性がないと意味がないから、 ファイルをエンコードするのに、FSOでファイルを読み込んで、 一度変数に入れてから6と7以外のモードで変換してみたらできるのかな?
575 名前:nobodyさん mailto:sage [2009/07/08(水) 18:32:48 ID:???] aspの質問ですらなく、BASP21の話じゃないか、それ BASP21って専用のスレとかないのか? それか、サポート付きの有償版みたいなのなかったか? BASE64ってそんなに難しい規格じゃないから、 自分でデコードする関数書いたらどうだね
576 名前:nobodyさん mailto:sage [2009/07/09(木) 00:56:21 ID:???] このスレ的には、 FCL使えって感じだけどな
577 名前:nobodyさん mailto:sage [2009/07/09(木) 17:08:52 ID:???] Framework Class LibraryってClassicASPにも存在するの?
578 名前:nobodyさん mailto:sage [2009/07/09(木) 22:37:40 ID:???] ページの名前変えたらものすごい変なエラーが出るようになった。。
579 名前:nobodyさん mailto:sage [2009/07/09(木) 22:59:29 ID:???] ASP.NETは一つ一つのページがpertialクラスになってて、 ページ名がクラス名になってるんだけど、 リネームしてもそのクラス名は変更されないから リネームしたことでページ名が重複しちゃったんじゃね?
580 名前:nobodyさん mailto:sage [2009/07/09(木) 23:02:18 ID:???] >>579 まぁ変え方がまずかったんだと思う。いま一生懸命直してます。
581 名前:nobodyさん mailto:sage [2009/07/09(木) 23:11:57 ID:???] 1日1回はローカルでもいいから、別のトコにバックアップとったほうがいいよ データベースがらみとか、アドオンの帳票がらみでわけわからん具合になること結構あるから
582 名前:nobodyさん mailto:sage [2009/07/11(土) 14:43:11 ID:???] よくも悪くもバッドノウハウの固まり
583 名前:nobodyさん mailto:sage [2009/07/13(月) 00:21:32 ID:???] 画面上に100個位コントロール(TextBox)が並んでて、Postされた時に一々値を拾うのが めんどくさいんですが。なんか上手い方法無いですかね? 特に、Repeaterで自動生成されたTextBoxとか、IDもサーバで勝手に振られるのでどうして いいのか分かりません。 やりたいこと:Postされた値をなんか上手い方法でDataSetに入れてしまいたい。 DataBindって参照しか出来ないEvalじゃなくて、双方向更新も可能なメッソドもあるとか?
584 名前:nobodyさん mailto:sage [2009/07/13(月) 01:18:02 ID:???] >>583 具体的には忘れたけど、こんな感じ ■Repeaterの場合 for (int i = 0; i < this.Repeater1.Items.Count; i++) { RepeaterItem ri1 = this.Repeater1.Items[i]; TextBox textBox = (TextBox)ri1.FindControl("textBox"); } ■ページにポトペタした場合 Control control = this.Page.FindControl("controlName"); でID名でコントロールが取得できるので、連番で名付けてループさせて取得すればいい DataSetに格納したい行をClassか、structで宣言して、 ループする度にインスタンスを生成し、IList<T>に格納していけばいい。 別途IList<T>からデータを取得してDataSetに格納するクラスを別途作成す。。
585 名前:nobodyさん mailto:sage [2009/07/13(月) 02:12:46 ID:???] >>583 >DataBindって参照しか出来ないEvalじゃなくて、双方向更新も可能なメッソドもあるとか? 使い勝手があれだから、きっと絶対必ず役に立たんがBindというのはある。 例えばObjectDataSourceのConflictDetectionを設定してやれば、 UPDATEやDELETEで指定したメソッドに対して、 変更後の値と変更前の値を自動で放り投げてくれる。
586 名前:nobodyさん mailto:sage [2009/07/13(月) 16:29:19 ID:???] VS2005 + IIS6.0 + IE6.0 or 7.0で開発しております。 DataGrid(GridViewではありません)のヘッダー固定に関しての質問です。 DataGridのヘッダー行を固定しようと思い、ネット上でサンプルを参考にして 浮いているように見えるのですが、とりあえずヘッダー行の固定を実装しました。 参考URL:jsajax.com/aspGridView/Chapter1/ch1-03.aspx ですが、この固定しているヘッダー行が常に最前列に出ているようで 画面上のメニューバーから展開されるサブメニュー項目が、ヘッダーの後ろに表示されてしまいます。 メニューバーはJQueryで作成しています。 参考URL:css-tricks.com/examples/SimplejQueryDropdowns/ JQueryで作成している箇所は、DBから動的に項目を取得して メニュー自体をHTMLで作成しているので、JQueryをはずすことはできません。 ヘッダー行かメニュー項目のZ-INDEXで解決するかと思ったのですが、 どうも効いてないようで解決方法の糸口が見つかりません。 どなたか詳しい方いらっしゃいませんでしょうか?
587 名前:nobodyさん mailto:sage [2009/07/13(月) 16:53:47 ID:???] jquery.dropdownPlain.jsでz-index記述してみたら
588 名前:nobodyさん mailto:sage [2009/07/13(月) 18:05:58 ID:???] >>587 やってみましたが結果は変わらずでした 固定しているヘッダー行が浮いたような状態になり、 DataGridよりも若干右にズレているのも気になります。 これが問題なんでしょうか・・
589 名前:nobodyさん mailto:sage [2009/07/13(月) 18:25:38 ID:???] メニューを表示させなければうまくいくのか? あと改行してメニューが干渉しない位置にヘッダーを表示させて場合はうまくいくのか? うまくいくのならメニューを表示させたことで、メニューのスタイルシートが、 ヘッダのスタイルシートに悪影響を及ぼしてるんだろうから、 メニューの何が悪さをしてるのか、一つ一つスタイルを削って試して見るしかない
590 名前:nobodyさん [2009/07/14(火) 21:55:30 ID:s5DuVBkc] VS2008、C#でASP.netという構成ですが・・・すいません、ビルドの後、プリコンパイルされたDLLというのは何処に格納されるのでしょうか? ASP.net 2.0の、しかもCodeBehind属性を使っているレガシーなアプリをメンテナンスしているのですが、CodeBehindに指定されている.csの内容を修正してもそれが反映されません。 (aspxの内容を修正した場合は反映されています) ビルドしてプリコンパイルすればいいかと思ったのですが、ビルドしても\binに格納されているDLLが更新されないのです。 おそらくどこかに設定があると思うのですが、見つけることが出来ませんでした。 よろしければアドバイスをお願いします。 ちなみに、Webサイトのプロパティの「MSBuildオプション」→「出力フォルダ」は、修正してみましたが特に変化はありませんでした。
591 名前:nobodyさん mailto:sage [2009/07/14(火) 22:00:55 ID:???] プロジェクトフォルダ-releaseフォルダの中かな もしくはdebugフォルダ
592 名前:590 mailto:sage [2009/07/14(火) 22:44:54 ID:???] >>591 早速のお返事、ありがとうございます。 が・・・ありませんねぇ、どちらも。 もしかしてプリコンパイルは関係ないのかな? でも、今参照しているbinの中のdll、参照外すと動かなくなるしなぁ・・・。
593 名前:nobodyさん mailto:sage [2009/07/15(水) 01:38:50 ID:???] VS2008のASP.NET2.0ということは、Webアプリでなく、Webサイトだと思うけど、 参照設定で、他のDLLを参照する設定になってない? 普通、通常に使用しているだけなら、Webサイトで作成していてbin以下にdllが 作られることはないと思う。 だからビルドしても、外部参照のdllは更新されるはずがないような気がする。 webアプリだったら、あまり詳しくしらないのでよくわからん。
594 名前:nobodyさん mailto:sage [2009/07/15(水) 05:36:31 ID:???] CodeBehindならWEBアプリな予感 だったらビルドしたらbinディレクトリにあるはずだが WEBサイトならビルドしてもDLLは(見えるところには)作成されない プリコンパイルってVSからできたっけ? というか、参照してるDLLってなんのこと言ってるんだ? そのプロジェクト以外のDLLをBinに入れて参照してるなら、 そんなもんはそのプロジェクトいくらビルドしても変わるわけないぞ
595 名前:nobodyさん mailto:sage [2009/07/15(水) 05:56:10 ID:???] >>594 IDEからプリコンパイルできると書いてあるね msdn.microsoft.com/ja-jp/library/bb398860.aspx Webサイトでもコードビハインドだし、 「プリ」ってわざわざ付けるということは、webサイトなんじゃないかと思うんだけど。
596 名前:nobodyさん mailto:sage [2009/07/15(水) 11:45:02 ID:???] エスパー解答 実はプリコンパイルは関係なくて、 >CodeBehindに指定されている.csの内容を修正してもそれが反映されません。 >(aspxの内容を修正した場合は反映されています) のあたりを詳しく聞く必要があるとみた! .csの内容を修正しても反映されないって、例えば画面の初期化処理だとか、 ポストバック時の処理を変えたりしてみても以前のロジックが走る、 ってことかな? .csを削除してみるだとか、新しいページ追加して確認してみるとかはどうでしょう? プリコンパイルとかWebサイトとかの話はよく分からないので、分かる方お願いします。
597 名前:590 mailto:sage [2009/07/15(水) 11:55:15 ID:???] >>593-595 失礼、「Webサイト」でしたね。が・・・。 >WEBサイトならビルドしてもDLLは(見えるところには)作成されない あれ? もらってきたソース一式に、\binディレクトリがありますけど・・・? えっと、binにアプリケーション名.dllを放り込むと、VSの方で勝手にそのdllへの参照設定をします。 その参照設定を外すとdllが削除され、「型 '(アプリケーション名).Global'が読み込めませんでした」ってコンパイルすら通らなくなります。 (当然、「デバッグ」→「デバッグ開始」でも動きません) それで、「ああ、ビルドしてdllを作り直せば、.csへの修正が反映されるのね」と思ったのですが、 「ビルド」→「Webサイトのビルド」ではDLLが作られない/更新されない・・・おや? というところで詰まっているのです。 うーん・・・別に、開発してるときはプリコンパイルなんてしてくれないくていいのになぁ。
598 名前:590 mailto:sage [2009/07/15(水) 11:57:39 ID:???] >>596 おっと、すれ違い失礼。ええ、問題になっているところはソコですね。 ただ、>>597 のような考えで「プリコンパイルされたDLLが更新されないのが問題だよね?」と思ったのですよ。 ちょっとやってみましょう>新しいページを追加
599 名前:590 mailto:sage [2009/07/15(水) 12:23:54 ID:???] >>598 ダメですね。「型'アプリケーション名.hogehoge'を読み込めません」となります。 .csを無視してDLLを見に行ってるような感じです。
600 名前:590 mailto:sage [2009/07/15(水) 19:32:14 ID:???] お騒がせしました。 結局、.net 2.0を明示的に指定して最初からソリューションを作り直し、そこにソースをコピーして再ビルドをかけました。 何が悪かったんだろう・・・。 ※ツリー部にドラッグ&ドロップでコピー可能、しかも関連ファイルまで根こそぎ持っていくのにはちょっと感心しました>VS2008 とりあえず.csの修正は反映されるようになりましたが、やはりリビルドはしないとダメですね。
601 名前:nobodyさん mailto:sage [2009/07/15(水) 19:37:54 ID:???] >>600 ソースファイルのタイムスタンプがおかしくなってるとか、マシンの時刻がおかしくなっているとか プロジェクトの何かのファイルのタイムスタンプがおかしくなっているとか…。
602 名前:nobodyさん mailto:sage [2009/07/15(水) 19:55:28 ID:???] たぶん、webアプリケーションと間違えてないか? それか一つのソリューションに、webサイトプロジェクトと、他のプロジェクトがあって、 webサイトプロジェクトから、他のプロジェクトへの参照設定がされてる。 dllは、他のプロジェクトで作成したクラスのdllだからASP.NETの.csを変更してビルドしても 何の変化もないので不思議がってる。 こんなところだろ
603 名前:nobodyさん mailto:sage [2009/07/16(木) 01:59:14 ID:???] 現在Visual Studio 2008(VB.net)を使用しMasterPageの中に <div></div>ブロックで囲んだGridViewを配置し、 ヘッダー行を固定しようと、.Freezingのお決まりのCSSを書き GrdiViewHeaderのCSSにそのFeeezingのCSSを指定したところ、 ヘッダー行は正常に固定する事が出来たのですが、 <div>ブロックで正常に width:450pxと指定しているにも関わらずGridViewのヘッダー行(だけ)が その<div>ブロックの幅を右横に突き抜けて表示されてしまいます。 一体何が原因なのでしょうか? ※IE7 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 指名 | 年齢 | 趣味 | 経験年数 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A 15 || ↑ヘッダー部分だけが突き抜けてしまう。(ここで趣味・経験年数) B 15 || C 15 || 〜〜〜〜〜〜〜〜〜 〜〜〜〜〜〜〜〜〜|
604 名前:nobodyさん mailto:sage [2009/07/16(木) 03:01:51 ID:???] スタイルシートはdivで指定しても、その内側のタグのスタイルの指定で 表現してくれないことがあるから、そのヘッダー行に直接スタイルを適用してみたら? というか、そういう時は、生成されたhtmlのソースをローカルなどにコピペしてブラウザで表示させるなどして、 関係ないhtmlタグを次々と消していって、目的とするタグだけで確認したほうがいいよ。 まったく関係無いと思われるスタイルが影響している場合があるから。 その目的とする表示を構成しているタグだけを残して他のタグをすべて消去し、 それでも問題が発生するかどうか確認するなどして、 他の要素が影響を及ぼしてる可能性をなるべく排除すべき。
605 名前:nobodyさん mailto:sage [2009/07/16(木) 03:18:17 ID:???] >>604 ありがとうございます。 今日会社で試してみます。
606 名前:nobodyさん mailto:sage [2009/07/16(木) 09:29:33 ID:???] >>600 レガシーなって、もともとはどのバージョンで作ってあったんだ? それはWEBアプリで作ってあったのか、WEBサイトでつくってあったのか? >>602 俺がエスパーするに、元がWEBアプリだったのを、今はWEBサイトで修正しようとしてる 今修正した部分はWEBサイトなんで、アプリケーション.DLLに反映されない 既存部分はWEBアプリなんで、アプリケーション.DLLへの参照がないと動かない ソース全部コピーしたってことは、今全部WEBサイトになったんで動いてる ま、こんなとこだろう
607 名前:590 mailto:sage [2009/07/16(木) 16:43:13 ID:???] >>606 そうですね。*.slnファイルも貰ったのでそのまま開いたのですが、こちらで空のwebサイト、webアプリを作成して比較してみると、webサイトの*.slnのようです。 これで開発してる、って言ってたんだけどなぁ・・・。
608 名前:nobodyさん mailto:sage [2009/07/16(木) 19:05:01 ID:???] >>606 その可能性が高そうだね つかwebアプリをwebサイトに移植しても、そのままで動作するんだな
609 名前:nobodyさん mailto:sage [2009/07/16(木) 22:19:36 ID:???] VS2005は知らんが、VS2008でWebサイトを作成してビルドすると 勝手にbinフォルダが作成されてる。その中にaspxに付随する.csやAPP_CODE配下のクラスファイルが コンパイルされたdllが放り込まれる。aspxのヘッダはこのbinフォルダのdllを見に行くように全て書き換えられる。 別にビルドしなくても、.csのソース付きaspxをWebサーバに配置しても IISとASP.NETは普通に解釈してくれる(まぁビルドするのと同じことしてるんだろけど) 正式リリース時は速度&セキュリティを考えてビルド方式にしたほうがいいよな。。
610 名前:nobodyさん mailto:sage [2009/07/16(木) 22:25:32 ID:???] VS2008のWebサイトで、ビルドしても、リビルドしても、binフォルダもできないし、dllもできないぞ?
611 名前:nobodyさん mailto:sage [2009/07/16(木) 23:25:29 ID:???] >>609 お前の言うWebサイトとは、VSでのプロジェクトの種類としてのWebサイトか? 一般的な意味でのWebサイトか? 一般的な意味でのWebサイトやWebアプリって言葉と VSでプロジェクトの種類としてのWebサイトとWebアプリってのは別の話だぞ binフォルダにDLL作るのはWebアプリだ。ソース修正したらビルドしないとDLLに反映されない WebサイトではDLLは通常見えるところには作られてない。ソース修正したら自動的にコンパイルされ反映される これを任意のタイミングで指定したところにDLL作らせるのがプリコンパイル 実際のところはWebアプリかWebサイトかは、VSが.ASPXのページディレクティブをどうするかだけで ASP.NETは各ページの指定通りに動く。なので混在してても動く
612 名前:nobodyさん mailto:sage [2009/07/16(木) 23:35:34 ID:???] >>610 悪かった。ビルド→Webサイトの発行でやってみてくれ >>611 VSのプロジェクトのWebサイトですよ
613 名前:nobodyさん mailto:sage [2009/07/17(金) 00:38:13 ID:???] それは発行するとプリコンパイルされるだけの話
614 名前:nobodyさん mailto:sage [2009/07/17(金) 00:40:18 ID:???] それぞれのメリット ・Web サイトの発行ユーティリティを使用する利点 プリコンパイル プロセスにより、コンパイル時エラー、および Web.config ファイルと他の非コード ファイル内の潜在的なエラーを検出できます。 ソース コードは、.aspx ファイル内のマークアップを含め、Web サイトから削除されます。 これにより、知的財産を保護でき、第三者がサイトのソース コードにアクセスしにくい状況を作ることができます。 サイト内のページが既にコンパイルされているため、最初の要求時にページを動的にコンパイルする必要がありません。 これにより、ページの初期応答時間を短縮できます。ただし、ページが動的にコンパイルされる場合でも、以降の要求についてはその出力はキャッシュされます。 ・Web サイトの発行ユーティリティを使用する欠点 指定する発行オプションによっては、サイトを変更する際、再コンパイルが必要になる場合があります。 したがって、サイトの開発中、頻繁に変更を加えるような場合にWeb サイトの発行ユーティリティを使用することは実用的ではありません。 Web サイトの発行ユーティリティでは、コンパイル済みサイトをリモート サーバーに配置することはできません。 ローカル コンピュータまたはローカル エリア ネットワーク上の別のコンピュータにのみコピーできます。
615 名前:nobodyさん mailto:sage [2009/07/17(金) 01:10:21 ID:???] >>614 それはMSのコメントなのか? >Web サイトの発行ユーティリティでは、コンパイル済みサイトをリモート サーバーに配置することはできません。 発行ユーティリティでFTP経由を指定できるんだが、これはリモートサーバとはいわないのか
616 名前:nobodyさん mailto:sage [2009/07/17(金) 01:15:08 ID:???] すまんVWDの話な
617 名前:nobodyさん mailto:sage [2009/07/17(金) 01:30:49 ID:???] 説明がめんどいからURLだけ msdn.microsoft.com/ja-jp/library/bb398992.aspx VWDじゃなくても、発行ユーティリティを使用した欠点に、 >Web サイトの発行ユーティリティでは、コンパイル済みサイトをリモート サーバーに配置することはできません。 >ローカル コンピュータまたはローカル エリア ネットワーク上の別のコンピュータにのみコピーできます。 の記述はあるな FTPの利用は、Webサイトのコピーツールのほうらしいなぁ
618 名前:nobodyさん mailto:sage [2009/07/19(日) 17:06:01 ID:???] 「検索」ボタンを押されたときにSQLを実行して実行結果をGridViewに描画させたいです。 SQLは、ユーザが指定した検索条件でいろいろ動的に変えたいので SqlDataSourceのSelectCommandでは対処できないのかな?と思ってます。 そこで、「検索」ボタン押下されたときにポストバック処理の流れで GridViewのDataSouceにArrayとかそんなようなオブジェクトを渡して描画させたいです。 そんなようなやり方でいいんですかね?
619 名前:nobodyさん mailto:sage [2009/07/19(日) 19:03:15 ID:???] >>618 基本的にはそれでいいが、SQL Injectionには気をつけろ
620 名前:nobodyさん mailto:sage [2009/07/19(日) 19:04:33 ID:???] ありがとん
621 名前:nobodyさん mailto:sage [2009/07/19(日) 19:30:24 ID:???] 単に検索条件変えるだけでSQL文の構造が変わる訳じゃないのなあら SqlCommand の Parameter 使うとか。
622 名前:nobodyさん mailto:sage [2009/07/19(日) 23:37:25 ID:???] 面倒かもしれないけど、自前のクエリ実装と、Repeaterの組み合わせのほうがいいと思うんだけどなぁ
623 名前:nobodyさん mailto:sage [2009/07/20(月) 01:35:00 ID:???] >>622 そんなんわかるほどスキルないもん。 ヒントだけでもいいから教えてください。
624 名前:nobodyさん mailto:sage [2009/07/20(月) 16:03:44 ID:???] >>623 プロジェクトのデータセットを追加して、GridViewにBindするだけ 何かを選択させて条件で表示させたいなら、DataTable.Select("Query")を利用すればいい
625 名前:nobodyさん mailto:sage [2009/07/20(月) 16:45:16 ID:???] >>624 ありがとうございます。 キーワードが増えたのでそれで勉強してみます
626 名前:nobodyさん mailto:sage [2009/07/20(月) 23:36:16 ID:???] >>624 SqlDataSourceなりObjectDataSourceなり データソースを使わせた方がいいと思うが…。 ページングができませんだの、編集ボタンでエラーが出ますだの言われかねんぞ。
627 名前:nobodyさん mailto:sage [2009/07/21(火) 13:52:20 ID:???] ASP.NETのプロジェクトを作成して、そのなかでSQL ServerのDBに対して「ADO.NET Entities Data Model」 LINQでアクセスしています。 このDBを定期的に掃除するコードを実行したいので、タスクスケジューラから実行できる、 コンソールアプリのプロジェクトを作成しました。このプロジェクトから、↑のASP.NETのプロジェクトを プロジェクト参照した場合、 new XXXXDatabaseEntities() のところで、TypeInitializationExceptionが発生します。 ASP.NET側のプロジェクトのWeb.Configにあった接続文字列をこのコンソールアプリのプロジェクトの App.Configにコピペしてきたのですが、それでは不十分なのでしょうか?
628 名前:nobodyさん mailto:sage [2009/07/21(火) 17:13:29 ID:???] >>627 いま気づいたが、ひょっとしてDLL側にconfigを用意してそこに接続文字列を書かないといけないのか・・。
629 名前:627 mailto:sage [2009/07/21(火) 18:40:41 ID:???] 解決しました。 ・DllのConfigは書いても無駄 ・App.Configの内容がXXX.exe.configにビルド時にコピーされる この2つを理解していなかったのが原因でした。
630 名前:nobodyさん mailto:sage [2009/07/21(火) 19:36:42 ID:???] >このDBを定期的に掃除するコードを実行したいので、タスクスケジューラから実行できる、 >コンソールアプリのプロジェクトを作成しました。 ストアドプロシージャで作成してSQLのjobから実行したほうがいいんでないの?
631 名前:627 mailto:sage [2009/07/21(火) 20:01:58 ID:???] >>630 ストアドプロシージャは書くのが面倒&書き慣れていないので、LINQで書きたいのです。 また、ログをDBに出力するメソッドなどは既に用意してあるので、 出来ればそのメソッドを用いて、DBの掃除をしたときにログを出力したいのです。 ところで、SQLのjobなら定期的に実行する仕組みがIISかSQL Serverかに搭載されているのですか?