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落ち?) あんまり需要ないのかもしれませんが。。。
190 名前:nobodyさん mailto:sage [2009/05/05(火) 00:47:31 ID:???] >>186 JQuery詳しく知らないが、普通の一般的なスクリプトのライブラリじゃないの? JQuery使うとIDに依存しない実装できるってんなら話は別だが 今問題にしてるのは、クライアントに出力されるIDをどうするか、って話で サーバ側の制御の問題なんだが
191 名前:nobodyさん mailto:sage [2009/05/05(火) 12:09:59 ID:???] >>190 いま見てみたんだが、だいぶいろんなことが可能そう MSDNによれば、 >他のコントロール内でレンダリングされたコントロールの参照 >子コントロールをページにレンダリングするコントロールには、 >GridView、DetailsView、FormView、DataList、Repeater の >各コントロールなどのデータ リスト コントロール、ユーザー コントロール、 >および Web パーツ コントロールが含まれます。 これらは行が動的に生成されるので、 操作した行にあるコントロールを操作するとか、 同じ列の同じコントロールを全部参照するとかは行うけど ある特定行(ID)をピンポイントで操作するというのはあまりないと思うんだが、 そうすると ・$(".className") 特定のクラスを持つタグにアクセスする ・$(tagName, base) 要素を検索する ・$("tagName > tagName") 特定の階層条件を満たすタグにアクセスする でほぼクリアできそうだ。
192 名前:nobodyさん mailto:sage [2009/05/05(火) 14:03:29 ID:???] 久しぶりにいじると楽しいjavascript jQueryでscriptを記述 <script type="text/javascript" src="jquery-1.3.2.js"></script> <script type="text/javascript"> function culc() { var sum = 0; for (var i = 0; i < $(".calcSelect").size(); i++) { sum += parseInt($(".calcSelect").get(i).value); } alert(sum); } function getrow(clientid) { var object = $("#" + clientid); alert($("select", object).get(0).value); } </script>
193 名前:nobodyさん mailto:sage [2009/05/05(火) 14:04:24 ID:???] Repeaterでdropdownlistを配置して <form id="form1" runat="server"> <div> <asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate> <div id = "<%# Container.ClientID %>"> <select id="Select1" class="calcSelect"> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> </select> <input id="Button1" type="button" value="button" onclick="getrow('<%# Container.ClientID %>');"/> </div> </ItemTemplate> </asp:Repeater> <input id="Button2" type="button" value="button" onclick="culc();" /> </div> </form> リピータに適当にバインドする this.Repeater1.DataSource = new int[] { 1, 2, 3, 4, 5 }; this.Repeater1.DataBind();
194 名前:nobodyさん mailto:sage [2009/05/05(火) 14:08:38 ID:???] 行のobjectを取得する方法はいろいろあると思うけど、 今回はContainer.CliendIDで行ごとに一意の名前を付けて、 そこから目的とするobjectを取得してみた 列の集計は集計するobjectに同じclass名を設定すれば 配列で取得できるのでそこから合計値を求めることができる クライアント側だけで何かをしようと思うのなら割と便利かもしれない
195 名前:nobodyさん mailto:sage [2009/05/05(火) 14:38:08 ID:???] >>191 同じクラスの要素や、同じタグの要素をID使わないでどうやって識別するんだ? 繰り返し系のコントロールはまあ仕方ないにしても マスターページやUpdatePanelでもID変わるのがなぁ
196 名前:nobodyさん mailto:sage [2009/05/05(火) 14:43:33 ID:???] >>195 >>192-194 で試してるように、極端な話、一意の名前を持ったclassのdivで囲めば直接アクセスできる
197 名前:nobodyさん mailto:sage [2009/05/05(火) 14:59:57 ID:???] >>194 細かい突っ込みだがな、 >今回はContainer.CliendIDで行ごとに一意の名前を付けて、 正確には、システムが自動的に生成した一意の名前を指定して、だな システムが生成したIDを実行時バインドでスクリプト中に埋め込んでるんで、 これは実行時にスクリプト書き換えてる で、このID生成ロジックだが、>>185 が書いてある通り >子コントロールに対して一意の ID を生成する式は変更されることがあります。 だから、それなら自分で実装できないかと思ったんだよ これができれば、マスターページ使うページはIDは そのまま出力させる、ってことが可能じゃないかと思ったんだ いま1.1でマスターページ使ってないシステムあるんだが、試しに マスターページつかって2.0(3.5)に移行してみたら、クライアントスクリプト周りが全滅したんでなw
198 名前:nobodyさん mailto:sage [2009/05/05(火) 15:16:49 ID:???] >>197 いや、だから>>192-194 を読んでる? 今回は一意の名前としてContainer.CliendIDを利用しただけで、 それを自分の用意したものに変更すればいいだけでしょ? そうすりゃ自分で生成したIDで実装しているのと同じじゃない。 例えば private int _count = 0; public string GetID(bool canAdd) return canAdd ? "ctrl" + (this._count++).ToString() : "ctrl" + this._count.ToString(); を実装して、Container.ClientIDの代わりに実行時バインドしてあげればいい。
199 名前:nobodyさん mailto:sage [2009/05/05(火) 16:03:29 ID:???] >>198 実行時バインドで動的に書き換えるならどうとでもなるだろ そもそもの問題はな、ASP.NETのコントロール使うと 自分で指定したIDと、実行時に出力されるIDが違う(ことがある)、ってことなんだよ これはデータバインドするような繰り返し系のコントロールに限らないんだ で、このルールが制御できない ルール決め打ちでも実用上問題ないかもしれないが、自分でルール決めれたら 実行時バインドに頼らなくても(クライアントスクリプトだけで)ID生成できるだろ サーバコントロールじゃないhtml要素に実行時にID振るなら、自分で制御できるかもしれんな webコントロールじゃなくてhtmlコントロールだと動作変わるのか? あとで実験してみるが、たとえばdivに(実行時バインドで)ctrl1,2,3...ってID振るようにしても、 runat="server"つけたらID変わると思うんだ
200 名前:nobodyさん mailto:sage [2009/05/05(火) 16:57:12 ID:???] そもそもrunat="server"つけると、解析エラーになった サーバコントロールのIDにバインド式は書けない模様
201 名前:nobodyさん mailto:sage [2009/05/05(火) 22:49:02 ID:???] >>165 念のため言っとくが、アプリケーションプールのリサイクルとは別に アプリケーション自体の再起動(アプリケーションドメインの再起動)もあるぞ。 まあありがちなのは、binフォルダにログ書くとかあほなことやってるパターンだな。
202 名前:nobodyさん mailto:sage [2009/05/06(水) 03:19:58 ID:???] >>199 >実行時バインドで動的に書き換えるならどうとでもなるだろ IDは書き換えられないでしょ >マスターページやUpdatePanelでもID変わるのがなぁ こちらのテストではASP.NET AJAXフォームに設置したUpdatePanel内に コントロール配置してもIDは変化しないよ(Repeater等は除く)? >自分で指定したIDと、実行時に出力されるIDが違う(ことがある)、ってことなんだよ まったくソースをみてくれてないんだなぁ。 誰もIDの話なんかしていないんだけど。 >そもそもrunat="server"つけると、解析エラーになったサーバコントロールのIDにバインド式は書けない模様 だからID名を実行時にバインドしろなんて言っていないし、 >>192-194 でもそんなことしてないんだが。 なんで>>192-194 のソースを見て何をしているか理解しようとしてくれないのか理解に苦しむ。
203 名前:nobodyさん mailto:sage [2009/05/06(水) 06:54:06 ID:???] >>202 >IDは書き換えられないでしょ サーバコントロールじゃないhtml要素なら書き換えられる >こちらのテストではASP.NET AJAXフォームに設置したUpdatePanel内に >コントロール配置してもIDは変化しないよ(Repeater等は除く)? これ、サーバコントロールでも? 後日検証してみる >まったくソースをみてくれてないんだなぁ。 >誰もIDの話なんかしていないんだけど。 >>176 ,183 あたりの流れから話してるんだと思ったが、そうじゃなかったのか じゃあお前に絡んだ俺が悪かった >だからID名を実行時にバインドしろなんて言っていないし、 >>192-194 でもそんなことしてないんだが。 >>193 の <div id = "<%# Container.ClientID %>"> は、IDを実行時にバインドしてるのじゃないのかね? まあ、IDがどうこうを主眼にしてないなら、>>192-194 について これ以上俺が言いたいことはない 話がかみ合わないのも当然で、あやまっておく
204 名前:nobodyさん mailto:sage [2009/05/06(水) 09:13:30 ID:???] >>164 >>201 ご返答ありがとうございます。 リスタートの条件はこれくらいかな。 ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=28589&forum=7&start=8 仮想ディレクトリ下のファイル・ディレクトリをいじってるので、 これが怪しい気がしてきた。 aspx等のみ対象だったら無関係だけど。 ttp://support.microsoft.com/default.aspx?scid=kb%3Bja%3B319947 なんにせよリスタートしているか確認して出直してきます。
205 名前:nobodyさん mailto:sage [2009/05/06(水) 10:44:48 ID:???] >仮想ディレクトリ下のファイル・ディレクトリをいじってるので、 どういじってる? 例えばフォルダ作ったりしたら強制再起動だった気がするぞ、詳細は覚えてないが。
206 名前:nobodyさん mailto:sage [2009/05/06(水) 10:49:18 ID:???] 基本的にアプリからいじっていいのは、 App_Data配下のみだと思っておいた方がいい。
207 名前:nobodyさん mailto:sage [2009/05/06(水) 11:16:35 ID:???] 以外と良いスレだな。
208 名前:nobodyさん mailto:sage [2009/05/06(水) 11:46:30 ID:???] >>203 何がしたいんだ? 反論のための反論か?
209 名前:BASP21でメール送信の際 503エラーが起こっています。1 [2009/05/06(水) 13:07:40 ID:rRUTbrry] この質問をご覧いただきましてありがとうございます。 普段、Linux系のサーバを使っていますが、臨時でwindows + ASPのトラブルに当っています。 ASPサイトにて、BASP21で問題無くメール送信をしていたのですが、つい1週間程前から503エラーとなり、原因が判らず困っております。 コードは Set ObjBasp = Server.CreateObject("basp21") rc = ObjBasp.SendMail(メールサーバ,メールto,メールfrom,サブジェクト,mbody,"") Set ObjBasp = Nothing となっていて、1週間前まで送信に問題はありませんでした。 エラー戻り値は 503 This mail server requires authentication when attempting to send to a non-l となっています。 認証が必要なのかと思ったのですが、全く同じソースの、別のページでは 503エラーは出るものの、メールは送信できています。 逆に、メールが全く送信できないページがあり、そこの対処で四苦八苦しております。
210 名前:BASP21でメール送信の際 503エラーが起こっています。2 [2009/05/06(水) 13:14:29 ID:rRUTbrry] サーバはwindows2003です。 サーバ管理者に問い合わせたところ、 > > 要求情報: > > 要求 URL: www.xxxxxx.co.jp/WebResource.axd?d=2dXuOoZJYqjHKODUjwMZpPRcN5cMzka2nYnKY2l5s1&t=6337110551241250 > > 要求パス: /WebResource.axd > > イベント コード: 3005 > > イベント メッセージ: An unhandled exception has occurred. > > 例外情報: > > 例外の種類: CryptographicException > > 例外メッセージ: パディングは無効なので、削除できません。 との返答が帰ってきましたが、 サーバに /WebResource.axd というファイルは無く、 この返答がよく判っていない状況です。 ご指導いただければ幸いです。
211 名前:nobodyさん mailto:sage [2009/05/06(水) 14:39:29 ID:???] WebResource.axd要求してるということは、ASP.NETだと思うんだが まず、ASP.NETなのか旧aspなのか?
212 名前:BASP21でメール送信の際 503エラーが起こっています。 [2009/05/06(水) 16:30:05 ID:rRUTbrry] お返事感謝致します。 本当に不慣れでお恥ずかしい限りですが、 .NETでは無いと思われます。 下記が、ルートにある Default.aspx の頭の部分です <%@ Page Language="VB" MasterPageFile="~/xxxxe.master" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" title="xxxxxxx" %> <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
213 名前:nobodyさん mailto:sage [2009/05/06(水) 16:53:20 ID:???] .aspxってのは普通ASP.NETの拡張子なんだがな .aspxのなかでServer.CreateObject("basp21") やってるのか?
214 名前:BASP21でメール送信の際 503エラーが起こっています。 [2009/05/06(水) 17:37:24 ID:rRUTbrry] お返事遅れて申し訳ありません。 Set ObjBasp = Server.CreateObject("basp21") 自体は、単体のdefault.aspで行っております。
215 名前:nobodyさん mailto:sage [2009/05/06(水) 19:22:43 ID:???] >>203 いやだからだな・・・ サーバコントロールはRepeaterなどで配置するとIDが変わる ↓ jQueryを使えばいいじゃない ↓ jQuery使ったことないけどID直接指定(ID変わるから)できないから無意味では? ↓ jQueryでサーバコントロールに指定したclass名で直接的にオブジェクト取得できるし jQueryで<div id=''></div>で囲めばid名で直接的にオブジェクト取得できるよ (class名は変わらないし、<div>のタグはサーバコントロールではないのでID変わらないから) という流れで話しているのに、 >>197 >だから、それなら自分で実装できないかと思ったんだよ→だから代替方法を説明してるんですが・・ >>199 >実行時バインドで動的に書き換えるならどうとでもなるだろ→サーバコントロールはできないです >>203 >は、IDを実行時にバインドしてるのじゃないのかね?→サーバコントロールできないからIDかわらんdivで代替してるんです と、かみ合ってないのは、あなたとほうだと思う
216 名前:nobodyさん mailto:sage [2009/05/06(水) 19:26:54 ID:???] だから>>192-194 を実際に動作させて、少しソースをいじってくれれば、 Repeaterコントロール内に設置された、 ASP.NETによって長いIDが勝手に付けられてしまうコントロールでも オブジェクトを取得できるということを示していることがわかると思ううんだが、 なんで試してくれないの? MasterPageでも同様の手法で、長いIDに変わってしまうコントロールを 取得できるから、わりと便利だと思うんだが。
217 名前:nobodyさん mailto:sage [2009/05/06(水) 19:42:52 ID:???] >>209 www.kotaete-net.net/Default.aspx?pgid=14&qid=140640416076
218 名前:nobodyさん mailto:sage [2009/05/06(水) 21:11:31 ID:???] >>216 ためしてるし、お前が示している範囲ではおまえの言うとおりだ
219 名前:nobodyさん mailto:sage [2009/05/06(水) 21:43:45 ID:???] ASPかASP.NETかどっちなんだよw
220 名前:nobodyさん mailto:sage [2009/05/06(水) 22:39:19 ID:???] >>215 >>203 が馬鹿なんだから、ほっとけ
221 名前:nobodyさん mailto:sage [2009/05/07(木) 00:48:26 ID:???] ASP.NET AJAX + jQueryで適当にやってると酷いことになるよね ASP.NET + jQueryかASP.NET AJAXオンリーにするかで分けた方がいいと思う
222 名前:nobodyさん mailto:sage [2009/05/07(木) 03:13:36 ID:???] >>214 Server.CreateObject("basp21") やってるソースがあるファイルの拡張子は .aspxじゃなくて.aspなのか? まあ、単にメールサーバーがSMTP認証要求してるだけの気がするが
223 名前:BASP21でメール送信の際 503エラーが起こっています。 [2009/05/07(木) 11:20:52 ID:eAkk+1Gw] 皆さん、お忙しい中ご返答感謝いたします。 確認したところ、ASP.NETでした。 >>222 様 Server.CreateObject("basp21") やってるソースがあるファイルの拡張子は asp です。 >まあ、単にメールサーバーがSMTP認証要求してるだけの気がするが 私も、今はその線が強いと感じて現在テスト中です。 今まで、問題がありませんでしたので、なぜ急に・・・と思っているのですが。 しかもメール自体は送信されているので・・・ サポートからの/WebResource.axd が問題という所でASP系資料ひっくり返したり、 孤軍奮闘でしたので、お返事大変心強いです。感謝致します。
224 名前:nobodyさん mailto:sage [2009/05/07(木) 12:21:41 ID:???] >>223 マルチポストしてんじゃねーよ 失礼だろ www.kotaete-net.net/Default.aspx?pgid=14&qid=140640416076
225 名前:BASP21でメール送信の際 503エラーが起こっています。 [2009/05/07(木) 12:38:46 ID:eAkk+1Gw] >>223 様 失礼がありましたこと、お詫び申し上げます。
226 名前:nobodyさん mailto:sage [2009/05/07(木) 21:14:30 ID:???] /WebResource.axdはASP.NET特有。 だが問題のページはaspだという。 だが確認してみればASP.NETだという。
227 名前:BASP21でメール送信の際 503エラーが起こっています。 [2009/05/07(木) 23:08:17 ID:o/J6ITqf] 本当に門外漢ですみません・・・サイト自体は全く知らない人間が作ったものでして・・・ サポートの続報では、 認証は必要無いそうです。 メールは送れてるので、 default.asp内のObjBasp.SendMail 自体は動いていて、 何か他の部分でしくじってて、それが ObjBasp.SendMailの戻り値503と/WebResource.axdのエラーとしてでてるのだろうと。 しかし、ObjBasp.SendMailの戻り値と/WebResource.axdの関連性がイマイチわかりません。 メールが送れてるにも関わらず、503の戻り値があり、 そのエラーのヒントは /WebResource.axd だということなのですが・・・
228 名前:nobodyさん mailto:sage [2009/05/07(木) 23:53:45 ID:???] ヒントってなんだよw ヒントもらってるなら正解も教えてもらえw aspならWebResource.axdは直接関係ないよ ObjBasp.SendMailの戻り値503 って何をどうやって何を確認してるんだ
229 名前:nobodyさん mailto:sage [2009/05/08(金) 00:08:57 ID:???] マルチポスト野郎は消えてくれよ 誰も教えないだろこんな状況じゃ 本当に失礼だと思うならこっちでも詫びいれてるはずだよな? www.kotaete-net.net/Default.aspx?pgid=14&qid=140640416076
230 名前:nobodyさん mailto:sage [2009/05/08(金) 00:58:30 ID:???] ヒントとか・・・ 何となくわかってるけど解決してないとかそういうもんじゃねぇのかw 調べる時間を得るために
231 名前:nobodyさん mailto:sage [2009/05/08(金) 01:46:47 ID:???] ascxファイルとcsファイルを作ったんだが、上手く値が渡されない(Labelとか) aspxのときは問題なくいったんだが、ascxにした途端、宣言したlabelはnullがなんとかとかいって、 値がうまく共有?出来ない どなたが打開のヒント頂けませんか?
232 名前:nobodyさん mailto:sage [2009/05/08(金) 01:55:36 ID:???] ソースをうぷしれ
233 名前:nobodyさん mailto:sage [2009/05/08(金) 12:01:02 ID:???] >>231 UserControl1.Findcontrol("Label1").text = "hage" //キャスト省略
234 名前:nobodyさん mailto:sage [2009/05/08(金) 18:05:34 ID:???] >>233 は教えてあげる目的でそういう記述してくれてると思うけど、 実際にはLabelオブジェクトをプロパティで公開するか Label.Textを公開してあげればいいんじゃないかと思われる
235 名前:231 mailto:sage [2009/05/09(土) 00:26:29 ID:???] ごめんなさい、非常に強い睡魔で寝てしまいました >>232-234 俺の勘違いでイベント発生してないだけでした 本当にバカでした
236 名前:nobodyさん mailto:sage [2009/05/09(土) 09:51:49 ID:???] (#^ω^)…
237 名前:nobodyさん mailto:sage [2009/05/09(土) 13:10:10 ID:???] それでもlabelobjectがnullな状態ってのがよくわかんないね
238 名前:nobodyさん mailto:sage [2009/05/09(土) 23:37:56 ID:???] くっそー いままでprototypeだったけどjquery結構便利だな なんか和んだ( ´ー`)フゥー...
239 名前: [―{}@{}@{}-] nobodyさん mailto:sage [2009/05/11(月) 09:16:40 ID:???] >>238 VS2008SP1からだったか、jqueryは標準サポートだしな
240 名前:nobodyさん mailto:sage [2009/05/12(火) 00:01:12 ID:???] VS2005でなんとかしてjQuery使えないかな IntelliSenseは無くてもいいから
241 名前:163 mailto:sage [2009/05/12(火) 01:28:31 ID:???] >>204 の続きです。 以下のイベントログが出力されており、 AppPoolが再起動している為、 セッション情報が消えてるぽいです。 クラッシュダンプで調べるしかないでしょうか? 他に調査方法があればご教授お願い致します。 ・イベントログ アプリケーション プール 'xxx' を提供しているプロセスは、 World Wide Web 発行サービスで致命的な通信エラーを検出しました。 イベントID 1011
242 名前:nobodyさん mailto:sage [2009/05/12(火) 01:37:48 ID:???] >>240 普通にJQueryいれりゃいんじゃないか?
243 名前:nobodyさん [2009/05/12(火) 05:14:26 ID:U71Iyk1V] 旧ASPでPDFファイルを作成したいのですが、どんな方法があるでしょうか。 PDFは表形式で、グリッドの高さは可変で、行の途中にページの境目が来る ようならその行の前に改ページしなくてはなりません。 サーバー側の処理でPDFファイル化したいです。 よろしくお願いします。
244 名前:nobodyさん mailto:sage [2009/05/12(火) 06:58:22 ID:???] 安心したまえ。PDFだってテキスト直うちで書けるんだ。 つまり、FileSystemObjectでテキストファイルを生成して、 後はPDFの仕様通り文字列を吐き出せばいいだけだよ。簡単でしょ。 マジレスすると、無理だから別途そういうパッケージソフトを買う。 ビジネスソフト板で帳票作成ソフトというと、まぁ数は限られるから調べてみるといい。
245 名前: [―{}@{}@{}-] nobodyさん mailto:sage [2009/05/12(火) 09:09:04 ID:???] >>241 本質的な解決ではないけど、session維持したいなら stateserverモードを使うとかどうよ?
246 名前:nobodyさん mailto:sage [2009/05/12(火) 10:47:32 ID:???] ClassicASPでPDFって言うと何があるのかね ASP.NETならActiveReport一押しなんだけど
247 名前:243 [2009/05/12(火) 11:35:40 ID:U71Iyk1V] >>246 ActiveReportって定型のフォーマットしかできないイメージなんですが、 グリッドの高さ変えたりページはみだす前に改行したりできますか?
248 名前:nobodyさん mailto:sage [2009/05/12(火) 12:00:02 ID:???] >>247 フリーハンドで描画できるだろ。
249 名前:nobodyさん mailto:sage [2009/05/12(火) 12:03:03 ID:???] >>247 CanGrowとかCanShrinkとか まぁ・・・簡単な動的〜FORMATイベントとか駆使して複雑な動的ってのもできるっちゃぁ出来ると思うけど たいがいの案件はこなせてきた 一回体験ばん入れて使ってみればどうかな?
250 名前:249 mailto:sage [2009/05/12(火) 12:03:47 ID:???] だめだ・・・日本語が支離滅裂だ… 疲れてんのかな・・・
251 名前:nobodyさん mailto:sage [2009/05/12(火) 13:08:49 ID:???] >>247 >グリッドの高さ変えたりページはみだす前に改行したりできますか? 設計が悪いだけじゃない? 改行したら自動的に2行分に伸長してくれて描画してくれるとか余裕だと思うけど おおよその要求には応えてくれたけど、できないこともあるかもしれない 例えば1行に記述できず2行に伸長してくれたとき、 それがページの最下行だったら改ページして次ページの最上行にしてくれるとか、 もしくはそのまま印刷してくれるを選択できるとか、フッターの表示の関係とか。 グリッドの高さについては、サンプルのCreating and Modifying Report Layouts at Run Time にあるように実行時調整してしまえば、可能と思われる(英語版ですまん) >The format event allows the properties of report sections and controls >to be modified including height, visibility, and other visual properties. //フォーマットイベントでは、レポートセクションやコントロールの高さや表示/非表示などを含む //表示に関するプロパティを変更することができる
252 名前:nobodyさん mailto:sage [2009/05/12(火) 13:13:33 ID:???] ↑ すまん上の「できない例」は想像の話。 グループヘッダーとか、レポートのフッターの改行とか伸長とか、改ページごとに表示するとかは 帳票によってクセがあったり得手不得手があるもんなので、試してみるしかないね。
253 名前:nobodyさん mailto:sage [2009/05/12(火) 13:26:34 ID:???] >>251 ActiveReportsならASP.NETのも基本的に変わらないけど >改行したら自動的に2行分に伸長してくれて描画してくれるとか余裕 CanGrowプロパティだったかな? で伸縮させるように出来る >それがページの最下行だったら改ページして次ページの最上行にしてくれるとか、 >もしくはそのまま印刷してくれるを選択できるとか プロパティいじるだけでそうなるはず。 KeepTogetherかなんか忘れたけど 高さ操作は処理中にしようと思うと基本的にFormatイベントでのみしか推奨されていないけどいける 中途半端な知識なんで勘違い多いかも知れんが
254 名前:nobodyさん mailto:sage [2009/05/13(水) 10:29:56 ID:???] CustomValidatorを継承したコントロールを作ったんだけど、 ページ内のValidationSummaryがErrorMessageを拾ってくれない。 isValidやErrorMessageは正しくセットされていることは確認した。 カスタムコントロールのは拾ってくれないのかな?
255 名前:nobodyさん mailto:sage [2009/05/13(水) 11:41:36 ID:???] 継承って文字通り継承? それともユーザコントロール?
256 名前:nobodyさん mailto:sage [2009/05/13(水) 13:01:18 ID:???] 文字通りの継承。 検証失敗時にTextが表示されるし、 ValidationGroupも検知して検証してくれている。 ただ、なぜかValidationSummaryに反映されない。 もちろんPage.IsValidもfalseになってる。
257 名前:nobodyさん mailto:sage [2009/05/13(水) 14:31:56 ID:???] Page.GetValidators()を調べてみたんだが、 単にメンバに持ってるValidatorCollentionをsingletonで返してるだけなんだな どうやってValidatorCollentionにValidator(BaseValidator)をaddしてるのかよくわからん ValidatorCollentionの中身も単なるIEnumerableを実装したリストクラスに見えるし
258 名前:sage mailto:sage [2009/05/13(水) 15:35:29 ID:???] チラ裏 今更ながらIIS+ASP.NET+SQLiteでゴニョゴニョしてみたけど、手軽で良いわこれ。 要IIS(monoっつー手もあるけど保留)な点さえクリア出来るなら、ちょっとしたページ作成なら これでいいや。
259 名前:nobodyさん mailto:sage [2009/05/13(水) 15:38:24 ID:???] オレもこれやりたくてmono入れようとしてるけどSolarisだときっついな まあ時間取れるまでWinサーバ使うか・・・
260 名前:nobodyさん [2009/05/13(水) 19:23:50 ID:EB+s12M/] .NET Framework 3.0のPage.PreviousPage.FindControlについて教えてください。 トップページにある「発言ボックス」に入力した文字列を、表示ページにて表示したいのですが テキストボックスを参照できなくて困っています。 マスターテンプレート(Template.master) ┗トップページ (Default.aspx) ┗ユーザコントロール(Hatsugen.ascx ID=hatsu) ・テキストボックス コントロール(ID=moshi) ・ボタン コントロール(botan) マスターテンプレート(Template.master) ┗表示ページ (showhatsugen.aspx) という2つのページ(階層)があるのですが、トップページ側のボタンコントロールで PostBackUrl="showhatsugen.aspx" としています。 showhatsugen.aspx側で、@ITの記事を参考にテキストボックス(moshi)を参照しているのですが nullが返ってきてしまいます。 ■試したこと @@ITの記事のまんま試してみた。 TextBox a = (TextBox)Page.PreviousPage.FindControl("moshi"); Aユーザコントロールも参照しないとだめかもと試してみた。 TextBox a = (TextBox)Page.PreviousPage.FindControl("hatsu").FindControl("moshi"); Bテンプレートもいれないとだめかもと思って試してみた。 TextBox a = (TextBox)Page.PreviousPage.Master.FindControl("hatsu").FindControl("moshi"); 上記のような階層の場合、どのように値を参照できるか教えてください。 ■参考にした@ITの記事 ttp://www.atmarkit.co.jp/fdotnet/dotnettips/406asppostback1/asppostback1.html
261 名前:nobodyさん [2009/05/13(水) 19:37:56 ID:EB+s12M/] あ、できました。Bで。
262 名前:nobodyさん mailto:sage [2009/05/13(水) 19:45:55 ID:???] PostBackは原則的に同一ページにするのが望ましいというのはわかってて、 あえてそれをやってるんだよね?
263 名前:nobodyさん mailto:sage [2009/05/13(水) 20:05:04 ID:???] はぁ? 馬鹿じゃね。しねよ
264 名前:nobodyさん mailto:sage [2009/05/13(水) 20:21:45 ID:???] そこらの本読むとPostbackUrlやServer.Transferの方が Response.Redirectよりよく思えるんだよな。 いやまぁ実際メリットもあるけど。
265 名前:nobodyさん mailto:sage [2009/05/13(水) 22:50:11 ID:???] ASP.NET MVCのほうが良いよ。
266 名前:nobodyさん mailto:sage [2009/05/13(水) 23:01:05 ID:???] PostbackUrlが良いと言ってるやつは実践してみてないやつ。 ASP.NETの各種仕組みと相性が悪い。 Server.Transferはいいんだけど。URLが紛らわしくなるため敬遠されることが多い。
267 名前:nobodyさん mailto:sage [2009/05/13(水) 23:49:01 ID:???] 一つの画面に収まる機能は一つのページに記述して 異なるページに遷移するときはsessionだのcookieだの使用したほうがわかりやすいよね asp.netの場合は1ページが1クラスだから、 クラス内の処理は、なるべくクラス内に責任もって記述してあげるのが オブジェクト指向の観点からもわかりやすい気がする 各ページのクラスにCookieやSessionを扱う、 ICookieや、ISessionみたいなインターフェースを実装して、 Serializableなデータを保持するクラスを、 ページ間でやりとりできるようにしたら面白いのになと思ったり。
268 名前:nobodyさん mailto:sage [2009/05/14(木) 00:02:25 ID:???] >>267 うちはページ継承してベースページを作成して 各機能ページはそれを継承して処理ってる セッション管理とかログインしているいないとかのチェックはベースページ側でやってたり インターフェイスもいいけどなんか使いどころが難しくってさ・・・ 各ページで実装もセにゃいかんし レベルが低いだけだとは思うが
269 名前:nobodyさん mailto:sage [2009/05/14(木) 00:15:25 ID:???] やたらとインターフェイス使いたがるのもどうかしてる
270 名前:sage [2009/05/14(木) 11:53:07 ID:W6V8lEeJ] はじめまして。 現在vs2008、.NET FrameWork3.5にてASPのシステムを作成しています。 セッションが切れた場合の処理としてテストしているのですが global.asaxでsession_startでセッションが切れた場合にエラー画面へ リダイレクトする処理を入れているのですが そこを通った後またsession_startに来てしまいリダイレクトしてくれません。 ログをみてもその関数が終わったらすぐにその関数というようになっています。 原因を知っている方お願いいたします。 If Me.Request.RawUrl.IndexOf("XXX.aspx") < 0 Then If Session("UserId") = "" Then Response.Redirect("XXXXX/ERRGAMEN.aspx ") End If End If
271 名前:nobodyさん mailto:sage [2009/05/14(木) 12:33:07 ID:???] これかな? エラーページにResponse.Redirectで遷移すると 設定したSessionが消えてしまうことがあるらしい ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=10653&forum=7 ログやそれに似た用途ならglobal.asaxでもいいけど 認証ならフォルダごとにWeb.configでやったほうがいいかも
272 名前:270 mailto:sage [2009/05/14(木) 13:26:27 ID:???] >>271 的確なアドバイスありがとうございます。 リダイレクトをtransferにすることで対処できました。
273 名前:nobodyさん mailto:sage [2009/05/14(木) 15:08:04 ID:???] ここASP.NETだけど・・・
274 名前:nobodyさん mailto:sage [2009/05/14(木) 15:18:31 ID:???] WebフォームにCalendarコントロールを貼って ・日付が変更される毎にカウンターCcountを1増加させて表示(Label1) ・選択されたカレンダーの日付を表示(Label2) ・PageLoadされる毎にカウンターPcountを1増加させて表示(Label3) させたい。 Partial Class _Default Inherits System.Web.UI.Page Public Shared Pcount As Integer Private Ccount As Integer Protected Sub Calendar1_SelectionChanged(ByVal sender As Object, ByVal e As _ System.EventArgs) Handles Calendar1.SelectionChanged Ccount = Ccount + 1 Label1.Text = Ccount.ToString 'Calendarの日付が変更された回数を表示 'カレンダーの日付を選択したら、カレンダーの値を表示する Label2.Text = Calendar1.SelectedDate.ToShortDateString End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Load Pcount = Pcount + 1 Label3.Text = Pcount.ToString 'PageLoadされた回数を表示 End Sub End Class カウンターの定義で、上記のように Public Shared ではなく Private にすると 数値が初回+1しただけで、それ以上増分されません。 何がいけないのでしょうか?
275 名前:nobodyさん mailto:sage [2009/05/14(木) 15:38:57 ID:???] >>274 public shared PcountはASP.NET全体で利用するアプリケーション変数(グローバル変数)的なものだったと思う privateにすると、そのPageのメンバ変数になるので、ポストバックすると新しいPageのインスタンスが生成されるから、 Pcountも新しいインスタンスの異なるメンバ変数扱いになってポストバック前のデータを保持しない そう考えるとpublic sharedは便利と思うかもしれないけど、 複数の人が同時にそのページを利用すると、使用した人の数だけPcount++されてしまって 思ったような動作はしないと思うよ Aさんが日付選択→Pcount → 1 Bさんが日付選択→Pcount → 2 Aさんが日付選択→Pcount → 3 Aさん2回目の使用でPcount==2のはずなのに途中でBさん使ったのでなぜかPcount==3 なんでPcountの値をセッションやクッキー、ViewStateに保存して Page_Loadで復元するような処理を書く必要がある この場合同じページへのPostBackだしセキュリティにも大きな影響を与えなさそうなので、 ViewStateがいいと思う
276 名前:nobodyさん mailto:sage [2009/05/14(木) 16:02:31 ID:???] 早速のレスありがとうございます。 >privateにすると、そのPageのメンバ変数になるので、 >ポストバックすると新しいPageのインスタンスが生成されるから、 >Pcountも新しいインスタンスの異なるメンバ変数扱いになって >ポストバック前のデータを保持しない ということですね、理解しました。 データの保持の違いとか、処理タイミングとか、実行順とかまだ整理できて無くて そのために簡単なサンプルフォームを作って、カウンター表示を仕込んで試しているのですが 条件が変わると自分の狙った内容と実行結果が違ってたりして、・・・頑張ります!
277 名前:nobodyさん mailto:sage [2009/05/15(金) 19:06:29 ID:???] Web開発の初期に、よくはまる道だ がんばれ
278 名前:nobodyさん mailto:sage [2009/05/15(金) 21:06:17 ID:???] JavaScriptで好き勝手やって、ViewStateの内容と 同期しなくなるとか昔はまったな。 挙句、不正な操作扱いされたりとか。
279 名前:nobodyさん mailto:sage [2009/05/15(金) 21:07:23 ID:???] 肝心なのはPublicかPrivateかじゃなくて Sharedかそうじゃないかなんだが、大丈夫か
280 名前:nobodyさん mailto:sage [2009/05/16(土) 00:33:16 ID:???] 最近VB.NETでのレスをよく見かけるが、実業務のasp.netでもVBって多いのか? 言語の優劣を語る気はないがなんとなく気になったC#使い。
281 名前:nobodyさん mailto:sage [2009/05/16(土) 02:18:45 ID:???] もともとのASPがVBだから、その流れでVBが多いんじゃない? 業務系もVB6の流れを汲むところは、今でもVB.NETが多いし 新しい言語に切り替えるって難しいよね 新しいテクノロジに理解があるところばかりじゃないし 過去の資産に縛られたりして
282 名前:nobodyさん mailto:sage [2009/05/16(土) 03:21:32 ID:???] で旧VBで下手に培われてしまった悪しき習慣が.NETにも浸食するんだぜ。 VBの頃はネットが普及したせいで、ばかみたいなコードや習慣が広がりすぎた。 でその悪しき習慣をASP.NETとかにまでそのまま持ってくるもんだからとんでもないことに。
283 名前:nobodyさん mailto:sage [2009/05/16(土) 03:24:32 ID:???] >>280 俺はC#だ VBなんて見ただけで寒気がする
284 名前:nobodyさん mailto:sage [2009/05/16(土) 04:40:23 ID:???] 質問 1.Global.asaxはシングルトンか? 2.Global.asaxにインスタンス変数を定義して、HttpContextのようにリクエストに関する情報を保持するのは問題ないか? 3.BeginRequestイベントとHTTPハンドラ(ページインスタンスなど)は常に同一スレッドで実行されるか? 4.ViewStateUserKeyはCSRF対策に利用できるか? 5.Global.asaxにインスタンス変数を定義して、グローバル変数として使えるか? 6.汎用ハンドラ(ashx)でIsReusableがtrueを返すように実装すると、そのハンドラは基本的に再利用されるものと期待できるか? 7.グローバル変数が必要な時Applicationオブジェクトを定義するのは望ましい方法か? 8.サーバを分散していない場合、ApplicationオブジェクトはそのWebアプリケーション内で完全に一つとみなしてよいか? 9.ViewStateは基本的に改ざん防止策がほどこさえているので、ViewStateの値は基本的に信用してよいか? 10.Webガーデンを使用していないのに、そのアプリケーションプール用のワーカープロセスが複数同時に動作することはあり得るか? 11.認証チケットはデフォルトで暗号化されているため、HTTPSでなくても安全か? 12.フォーム認証でログアウトすると、その認証チケットでは二度とアクセスできなくなるか? 13.SQLインジェクションは、Webアプリケーション特有の脆弱性か?
285 名前:284 mailto:sage [2009/05/16(土) 12:15:07 ID:???] ちなみに俺はリアルモンク属性だからはやく答えないと病院食を食うことになる
286 名前:nobodyさん mailto:sage [2009/05/16(土) 12:23:16 ID:???] 自分で調べろって感じだな
287 名前:284 mailto:sage [2009/05/16(土) 12:36:25 ID:???] 実は理解度クイズだよ。 正答率は自称詳しい人でも結構低かったりもする。 >>285 誰だよおまえはw
288 名前:284 mailto:sage [2009/05/16(土) 12:38:15 ID:???] とでも書けば、誰かが答えてくれるに違いない
289 名前:nobodyさん mailto:sage [2009/05/16(土) 12:44:04 ID:???] いやいやクイズという限り、いつか出題者が回答するから問題ない
290 名前:nobodyさん mailto:sage [2009/05/16(土) 12:46:21 ID:???] まあ言われてみれば誤解さえれそうだが、ほんとにクイズだよ。 俺がさっきちょっと考えてみただけの。 テストや宿題じゃなくて(っていうか中身見りゃわかるだろうけど、そういうレベルの問題じゃない) 正解は○がって数書こうと思ったけど、結構偏ってるな、疑うなら書くが。 問題のニュアンスはわりと詳しいつもりやつが理解してないことが多かったもの。 その前に内容がマニアックに偏ってるけどな。