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落ち?) あんまり需要ないのかもしれませんが。。。
436 名前:nobodyさん mailto:sage [2009/06/10(水) 18:17:32 ID:???] >>434 こういうこと? protected void Page_Load(object sender, EventArgs e) { this.Button1.Click += this.Button2_Click; this.Button1.Click += this.Button3_Click; } protected void Button2_Click(object sender, EventArgs e) { } protected void Button3_Click(object sender, EventArgs e) { }
437 名前:nobodyさん mailto:sage [2009/06/10(水) 18:42:20 ID:???] ヒント:オブザーバー
438 名前:nobodyさん mailto:sage [2009/06/10(水) 18:52:20 ID:???] デザインパターン使って自分で定義せんでも、.Clickに+=すればいいやんw
439 名前:nobodyさん mailto:sage [2009/06/10(水) 20:41:28 ID:???] >>435 , >>436 , やっぱそうなりますよね。 javascriptだと、onclick="hoge();piyo();" みたいな書き方が出来た気がするので、 そういう単純な方法無いかな〜と思ったんです^^; >>437 , >>438 , そいうデザパタがあるんですね〜勉強してみたいと思います。
440 名前:1/2 mailto:sage [2009/06/10(水) 21:06:01 ID:???] 質問です コードビハインドで組んでいるのですが、コンテナの使い方がいまいちわかりません csファイル1 public class Jouhou{ private int suuji; private string moji; public Jouhou(int suuji,string moji){ this.〜〜 } public setget〜〜〜 } CSファイル2 public class Dousa{ protected System〜〜.Repeater rpt; private void Page_Load(〜〜){ List<Jouhou> joho=new List<Jouhou>(); joho.add(〜〜); x3とか this.rpt.DataSource=joho; this.rpt.DataBind(); } protected string hoge(string moji){ return moji; } } ascxファイル <asp:Repeater〜ID="rpt"〜〜〜> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem, "moji") %>←正常にLiteralが作成されて、表示される <asp:Literal ID〜〜〜〜 Text="hoge(DataBinder.Eval(Container.DataItem, "moji"))">←エラーが出る(エラーは不明)
441 名前:2/2 mailto:sage [2009/06/10(水) 21:09:12 ID:???] つまりRepeaterにはきちんとデータはバインドされていて、mojiとかが正常に以降しているのに、 メソッドに値を送り込もうとすると失敗します。 例えば、 <asp:Literal ID〜〜〜〜 Text="hoge("aaaa")"> とすればきちんとaaaaが返ってきます やりたいことは、repeaterの中のデータを一旦検証メソッドに送って、その結果を返したいです。 どなたかアドバイス頂けないでしょうか?
442 名前:nobodyさん mailto:sage [2009/06/10(水) 23:18:50 ID:???] >>441 なんかこんなんつくってたわ 昔作ったから意味は忘れた <asp:TextBox ID="TextBox" Text='<%# this.GetColumnData(Container, "Data") %>' runat="server"></asp:TextBox> protected string GetColumnData(RepeaterItem repeaterItem, string columnName) { object columnData = DataBinder.Eval(repeaterItem.DataItem, columnName); string returnData = ""; if (columnData is string) returnData = (string)columnData; else if (columnData is int) returnData = ((int)columnData).ToString(); else if (columnData is decimal) returnData = ((decimal)columnData).ToString(); else if (columnData is DateTime) returnData = ((DateTime)columnData).ToString("yyyy/MM/dd"); return returnData; }
443 名前:nobodyさん mailto:sage [2009/06/10(水) 23:23:30 ID:???] >>442 ありがとうございます! さっそくそれを参考にいろいろ調べてみます
444 名前:nobodyさん mailto:sage [2009/06/12(金) 09:14:01 ID:???] すみません。初心者なのですが 皆さんのお知恵をお貸し下さい。 現在、ASP.NETでWEBアプリの勉強をしているのですが SQLサーバーに、バイナリー形式で保存してある 画像を加工してから出力したくて BITMAPクラスを使用すればいいことまでは分かったのですが データベースから取り出した、バイナリーデータを どうやってBITMAPクラスに入れればいいのか、分からず四苦八苦しています・・・ 分かる方からすれば、くだらないかも知れませんが、教えてください。>< Dim image As Bitmap Dim writeStream As Byte() = New Byte(record.Item(0).toByteArray.Length - 1) {} System.Buffer.BlockCopy(record.Item(0).toByteArray(), 0, writeStream, 0, record.Item(0).toByteArray.Length) image = New Bitmap(writeStream) これだとエラーになっちゃうんです><
445 名前:nobodyさん mailto:sage [2009/06/12(金) 17:26:51 ID:???] >>444 //MSSQLからバイナリデータの取得 varbinary(MAX) TestDataSetTableAdapters.TestTableTableAdapter tableAdapter = new TestWindowsForms2008.TestDataSetTableAdapters.TestTableTableAdapter(); TestDataSet.TestTableDataTable dataTable = new TestDataSet.TestTableDataTable(); tableAdapter.Fill(dataTable); //MemoryStresmにMSSQLから取得したbyte[]データを格納 行が無かった場合のチェックする必要あり MemoryStream ms = new MemoryStream(dataTable[0].BitmapData); //Bitmapのインスタンスを生成 Bitmap bitmap = new Bitmap(ms); //BitmapのインスタンスをImageプロパティに設定 this.pictureBox1.Image = bitmap;
446 名前:nobodyさん mailto:sage [2009/06/12(金) 17:29:16 ID:???] 格納する側 //Bitmapインスタンスの生成とbitmapデータの取得 Bitmap bitmap = new Bitmap("test.bmp"); //BitmapデータをMemoryStreamに読み込む MemoryStream ms = new MemoryStream(); bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp); //Bitmapデータを格納するTableのインスタンスの生成 TestDataSetTableAdapters.TestTableTableAdapter tableAdapter = new TestWindowsForms2008.TestDataSetTableAdapters.TestTableTableAdapter(); TestDataSet.TestTableDataTable dataTable = new TestDataSet.TestTableDataTable(); tableAdapter.Fill(dataTable); //新しい行の作成と、バイナリデータの設定 TestDataSet.TestTableRow row = dataTable.NewTestTableRow(); row.BitmapData = ms.ToArray(); dataTable.Rows.Add(row); //Tableの更新 tableAdapter.Update(dataTable);
447 名前:nobodyさん mailto:sage [2009/06/12(金) 18:11:28 ID:???] >> 445 ありがとうございます。 無事解決できました。 本当にありがとうございました
448 名前:nobodyさん mailto:sage [2009/06/14(日) 03:05:11 ID:???] ASPのころ、本当にVBSでできることぐらいしかできなくて苦労したけど ASP.NETになってから、画像も加工できるし、メールも送れるし、FTPも簡単だし、 FileSystemObjectも簡単になってるし、日付計算も簡単になってるしで、 本当に便利になったよね BASP21すげーーーーーーとかいって使ってたのを思い出したよ
449 名前:nobodyさん mailto:sage [2009/06/15(月) 15:22:19 ID:???] レイアウトの自由度のためだけに、一意なレコードしか選択されなくても Repeater使ってるんだけどおかしい? FormViewはHTMLに展開されるときにデフォルトでtableタグが生成されるのが いただけない。ちなみに.net framework2.0限定。 あとデザイナ画面でRepeaterコントロールがデフォで5行表示されるのもなんとか変更したい。 <HeaderTemplate>だけだとItemTemplateが無い場合、表示されないし・・
450 名前:nobodyさん mailto:sage [2009/06/15(月) 15:36:10 ID:???] >>449 そこまで文句言うならデザイナにでもパネル突っ込んでガリガリループでHTMLとかコントロール突っ込んでいけば?
451 名前:nobodyさん mailto:sage [2009/06/15(月) 19:19:29 ID:???] >>449 Item5個だけのクラスを新たに作って、リピーターに突っ込めばいいだけなんじゃないの?
452 名前:nobodyさん mailto:sage [2009/06/15(月) 21:15:04 ID:???] そんなの自由自在 ASP.NET サーバコントロールプロジェクトで自作でhtmlを生成して表示してもいいし、 ユーザコントロールにLiteralコントロールを設置して自分でhtml出力すればいい >あとデザイナ画面でRepeaterコントロールがデフォで5行表示されるのもなんとか変更したい。 何行表示されても構わないように設計(デザイン)する必要があるわけだから、 極端に言えば何行の表示でも別にいいでしょ <ItemTemplate>がなければ複数行の動的な生成が難しいんだから一般的には必要ないかと
453 名前:nobodyさん [2009/06/15(月) 21:32:48 ID:Ovw0FDNW] Visual Web Developer 2005 Express Edition質問です。 PlaceHolderの中にコントロールをドラッグ&ドロップしたいんですけど、 プレースホルダーを配置して、この上にドラッグドロップしてみたんだけど無理でした。 どうやるの?
454 名前:nobodyさん mailto:sage [2009/06/16(火) 02:03:02 ID:???] たぶんやりたいこととか目的とズレてるような気がするけど、 単にPlaveHolder内にタグを配置したいならデザインビューに切り替えて <asp:PlaceHolder ID="PlaceHolder2" runat="server"> ※ </asp:PlaceHolder> の※の部分にコントロールをポトペタすればコントロールが配置できる でも本来、PlaceHolderは実行時にコントロールを生成するコンテナとしての役割が大きいので、 単に配置するだけとか、配置して一斉に非表示にしたいとか目的なら Panelとか使ったほうがいいと思う。
455 名前:nobodyさん mailto:sage [2009/06/16(火) 20:27:08 ID:???] >>454 ありがとうございます!!!!!多謝です! デザインビュー上ではやっぱりできないのですね 自分のはFreeのツールだから禁止させられているのかと思いました。 やりたいことは、タブみたいに、ボタンをおしたら、違う画面になる(でも同じWebフォームで処理したい) みたいな事です。 なので、パネルでやります。 m(_ _)m
456 名前:nobodyさん mailto:sage [2009/06/16(火) 21:10:44 ID:???] >>455 ある特定の一部分だけ非表示にしたり、表示したりするならPanelでもいいけど、 ごっそり変えるなら、MultiViewとViewを使ったほうがわかりやすい 一つのaspxで、入力フォーム→入力確認ページ→実際に登録みたいなこともできるよ PostBackが仕様のASP.NETだと、そういうのに2枚のaspxが必要だと思ってる人もいるみたいだけど
457 名前:nobodyさん mailto:sage [2009/06/16(火) 21:45:59 ID:???] >>456 たびたびありがとうございます!!!!! さっそくMultiViewにします!
458 名前:nobodyさん mailto:sage [2009/06/21(日) 11:03:39 ID:???] 本番機と開発機でweb.configが違うんだけど、上手い管理の仕方無いかな。 いつか間違えてしまいそうで怖いんだが。
459 名前:nobodyさん mailto:sage [2009/06/21(日) 15:17:48 ID:???] >同じ名前 (Web.config) の複数の構成ファイルを、ASP.NET の >Web アプリケーション サーバーの複数のディレクトリに置くことができます。 >各 Web.config ファイル内の構成設定 (IIS 認証の設定など) は、 >それぞれのディレクトリ内のソース ファイルに適用されます。 >Web プロジェクトでは、既定の Web.config ファイルの設定に優先する、 >カスタムの構成ファイル (mysettings.config など) を作成できます。 >チーム開発環境では、カスタムのファイルを作成することが必要になる場合があります。 >カスタム構成ファイルの作成が必要となる状況、 >特に共有プロジェクト開発時の必要性の詳細については、 >「Web 参照、Web プロジェクト、およびソース管理の統合」を参照してください。 >Web プロジェクトの場合、ソース管理に追加する必要がある *.config ファイルは、Web.config だけです。 msdn.microsoft.com/ja-jp/library/aa290084.aspx とか?
460 名前:nobodyさん mailto:sage [2009/06/21(日) 15:19:15 ID:???] あとは、やったことないけど、 FTPとかでの更新ならweb.configだけ異なる権限にしておいて、 勝手に書き換えられないようにしておくとか、そんなんはできないのかな
461 名前:nobodyさん mailto:sage [2009/06/21(日) 15:35:33 ID:???] >>458 ウチの場合は、web.config.dev とか、web.config.release 等の名前で 複数の web.config を用意している。自動デプロイスクリプトを組んでる ので、その中でデプロイ先の環境を判別して web.config にコピってる。 まあ、普通だな。手作業はとにかく排除するのが基本じゃね。
462 名前:458 mailto:sage [2009/06/21(日) 23:22:51 ID:???] レスありがとう。 >>460 これはちょっと楽そうだ 読み取り専用属性つけて試してみる。 >>461 だね。ちょっと手を抜いて手作業でしてたけど、後々を考えると しっかりやった方がいいよね。 XCOPYでゴソってやって、最後にweb.configだけ上書きって 流れだけか。 思考停止してたけど、なんも考える事無かったな。 ありがとう。
463 名前:nobodyさん mailto:sage [2009/06/24(水) 19:17:16 ID:???] 俺は毎回コピーした後にweb.config手作業で書き換えてる たまに書き換え忘れることもあるがw web.configに設定する内容を、本番と開発で、全く同じにするか、 間違えると動かない設定にしてるので、書き換えないと本番が動かないようにしてる 一番困るのは、書き換え忘れで本番が変な設定で動くことだからな
464 名前:nobodyさん mailto:sage [2009/06/24(水) 21:51:34 ID:???] 開発環境と本番環境でweb.configが違うってのは、どういう場合とか? そういうときはディレクトリ分けして、ディレクトリごとにweb.configを統一しといたほうがいいと思うんだけど
465 名前:nobodyさん mailto:sage [2009/06/24(水) 22:53:08 ID:???] >>464 appSettings とか connectionStrings は結構違うでしょ。あとは認証、 ログ設定、例外発生時の挙動なんかも変えたくなると思うけど。
466 名前:nobodyさん mailto:sage [2009/06/24(水) 23:04:24 ID:???] >>464 は何か意図を勘違いしてると思うのだよ
467 名前:nobodyさん mailto:sage [2009/06/24(水) 23:58:39 ID:???] >>465 それってディレクトリごとにかえられになかったっけ?
468 名前:nobodyさん mailto:sage [2009/06/25(木) 01:32:47 ID:???] ディレクトリ毎にweb.configは設定できるはず(やったことない)だけど、 問題はその中身を書き換えなきゃいけない、ってことだと思うんだが。 >>465 が書いてる通りのものは結構書き換えなきゃいけない と思うんだけど。
469 名前:nobodyさん mailto:sage [2009/06/25(木) 17:13:04 ID:???] UpdatePanel の中にラベルとボタンがあります。 ボタンが押されたら、とある PDFファイル をクライアントに attachment として投げつけて ラベルの文字を「投げたお」と書き換えたいです。(UpdatePanelの更新) ですが、UpdatePanel の中では PDF をクライアントに投げつける、ということが出来ないみたいです。 何か良い策はないでしょうか。 インテルのWebサイトとかでは、ファイルの投げ付け&画面遷移を同時にやってるやつがありますが どんな仕組みなんでしょう・・・(そこにヒントがある気がしてます)
470 名前:nobodyさん mailto:sage [2009/06/25(木) 17:55:06 ID:???] ボタンクリックで新規ブラウザを立ち上げてPDFをダウンロードさせ、 UpdatePanelで表示してあげればいいんでね?
471 名前:nobodyさん mailto:sage [2009/06/25(木) 18:00:53 ID:???] >>468 これとか? social.msdn.microsoft.com/forums/ja-JP/aspnetja/thread/13d412a8-4416-429e-909e-0af88b528c16
472 名前:nobodyさん mailto:sage [2009/06/25(木) 21:32:10 ID:???] >>471 し、しらんかった・・・ これは便利そうだ。設定変えたいとこだけ全部外だし 出来そうだなー。 結論としては「ディレクトリ毎」っていうのが、実は 「configファイルを分割」っていう意味だったってこと? だから「web.config書き換えるっていつだよ?」みたいな 話になってたって事? まぁどっちでもいいが、良いこと知った。トンクス。
473 名前:nobodyさん mailto:sage [2009/06/26(金) 00:25:17 ID:???] configSourceはweb.configと同じく更新が即反映されるので 大抵のもんはappSettingに突っ込んで分離してる
474 名前:nobodyさん mailto:sage [2009/06/26(金) 05:38:12 ID:???] そして今度は外だししたファイルを上書きするわけですね
475 名前:nobodyさん mailto:sage [2009/06/26(金) 11:36:26 ID:???] >>474 これは? location 要素は、ASP.NET 構成 API を使用することによりプログラムから設定できます。また、ASP.NET MMC スナップインの [場所] タブを使用して設定することもできます。 msdn.microsoft.com/ja-jp/library/ms178692.aspx
476 名前:nobodyさん mailto:sage [2009/06/26(金) 17:43:41 ID:???] >>465 それはweb.configの指定を特定のパスに限る設定だろ 今問題になってるのは 環境を設定するファイルがあって、本番のそのファイルを開発環境のファイルで上書きすること で、>>471 の方法では、結局上書きする(=書き換える必要がでる)ファイルが web.configからconnection.config(とか任意のファイル)に変わるだけで 結局上書きしないようにするとか手作業で書き換えるとかする必要がでるんじゃないか、ってのが>>474 の主張 web.configから任意のファイルになるだけ判りにくくて混乱の元になる気がするぜ
477 名前:nobodyさん mailto:sage [2009/06/26(金) 19:00:22 ID:???] >>476 location要素をプログラムから設定できるんなら 環境(サーバ名とか)によって任意のファイルを指定できるんでないのかなと思って。
478 名前:nobodyさん mailto:sage [2009/06/29(月) 19:17:18 ID:???] お世話になります、自分で独自に作ったクラスをwebサービスの戻り値にするにはどのようにしたらよろしいでしょうか? イメージとしては class 個人情報(){ private string 氏名; private int 年齢; setget〜〜〜 } //個人情報クラスのリストを戻す [webmethod] class 個人情報[] 個人情報リスト(){ List<個人情報> aaa=new List<個人情報>(); aaa.add(new 個人情報(名無し,10)); aaa.add〜〜〜; return aaa; } このような感じで作ってもエラーが出てうまく行きません、独自クラスではなくintやstringといったものなら正常に返せます よろしくお願いします。
479 名前:nobodyさん [2009/06/29(月) 19:43:32 ID:uOZzkvvT] 以下について教えて下さい。 [やりたい事] 1)登録ボタン押下 2)DB検索 3)フォームの入力データとDB結果をチェック 4)重複データでない場合=「新規登録しますか?」ダイアログ表示 >OK=DB追加 >キャンセル=中止 重複データの場合=「重複してますが登録しますか?」ダイアログ表示 >OK=DB追加 >キャンセル=中止 このような処理を実施させるには、どのような制御を実装すれば良いのでしょうか? [聞きたい事] ・表示するメッセージを上記のように変動させて確認ダイアログを表示したい ・OK/キャンセルの戻り値を取りたい 登録ボタンのOnClientClickに「return confirm("登録しますか?");」を設定すれば 動作すると思ったのですが、上記1)の後に「登録しますか」ダイアログが出てしまい想定する動作になりませんでした。 不躾で申し訳ありませんが、ご教授の程よろしくお願い致します。 [環境] Microsoft Visual Studio 2008 Version 9.0.30729.1 SP Microsoft .NET Framework Version 3.5 SP1 Microsoft Visual Web Developer 2008 VBScript
480 名前:nobodyさん [2009/06/29(月) 20:51:34 ID:JEwwWVNF] すでにあるxlsファイルを更新したいんですが、どうすればいいのでしょうか? A*1に1を入れて保存とかそんな感じでお願いします
481 名前:nobodyさん mailto:sage [2009/06/29(月) 22:31:40 ID:???] >>480 すでにあるがサーバ上にあるのか、クライアント側にあるのかわからないけど、 サーバ側なら www.atmarkit.co.jp/fdotnet/dotnettips/717excelfile/excelfile.html で操作できるんでないかね。 Microsoft Excel 11.0 Object Libraryって奴で。 クライアント上にあるのならサーバにアップロードするなりしないといけないと思う
482 名前:nobodyさん mailto:sage [2009/06/29(月) 23:18:11 ID:???] >>479 JavaScriptでやりたいということだと、かなり特殊なことをしなくちゃいけないので面倒臭い。 なので、可能なら同じページに戻して、新規登録だけど登録していい?とか、重複してるけど登録していい? というメッセージを表示させて確認を求めるほうが楽。 AJAXを使えばJavaScriptでも簡単にできるかもしれないけど、 非AJAXでやるとしたらこんな感じかな。 他に簡単な方法のアイデアがあったら求む・・・ <form id="form1" runat="server"> <asp:HiddenField ID="HiddenField1" runat="server" Value="0" /> <asp:HiddenField ID="HiddenField2" runat="server" Value="0" /> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> <asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="Button" /> </form>
483 名前:nobodyさん mailto:sage [2009/06/29(月) 23:18:11 ID:???] >>479 OnClientClickだとポストバック前に実行しちゃうよ proshile.blog.drecom.jp/archive/14 でいけるけど、今ってもっと良い方法がないのかな? 普段1.1使っててわからん。
484 名前:nobodyさん mailto:sage [2009/06/29(月) 23:19:02 ID:???] >>479 つづき protected void Button2_Click(object sender, EventArgs e) { //ユーザによるボタンのクリック DB内を調査して表示する→2回目のボタンを押す if (this.HiddenField1.Value == "0") { //Value = 1でユーザによるclick Value = 2でJavaScriptによるクリック this.HiddenField1.Value = "1"; //データベース内のデータを確認する作業をここでする //もしyesが押されたらHiddenField2にtrueを、noならfalseを格納する ScriptManager.RegisterStartupScript(this, typeof(Page), "test", "if (confirm('')) { form1.HiddenField2.value = 'true'; } else {form1.HiddenField2.value = 'false';};form1.Button2.click();", true); } //JavaScriptによる2回目のクリック confirmの結果により動作を分ける else if (this.HiddenField1.Value == "1") { //もしyesを押された時の処理 if (this.HiddenField2.Value == "true") { //confirmでyesをclick時に行う動作 } //Value = 1でユーザによるclick Value = 2でJavaScriptによるクリック this.HiddenField1.Value = "0"; } }
485 名前:nobodyさん [2009/06/29(月) 23:19:21 ID:fVwdImLx] 全てのページに、URLにuserid=XXXX といった文字列を追加したいのですが アプリの本数が多くて、簡単に追加できる方法ないですかね?
486 名前:nobodyさん mailto:sage [2009/06/29(月) 23:30:27 ID:???] >>485 すべてのページでgetを受け取れるようにしたいのか、 すべてのページのハイパーリンクにgetのクエリを付与したいのか 詳しく書いてくれないと何とも言えない。 でもuseridが変更されるとこまると思うから常識的にはsessionを使うべきだと思う
487 名前:nobodyさん mailto:sage [2009/06/29(月) 23:35:02 ID:???] >>486 説明不足でした。getのクエリ文字列に追加したいのです。 sessionを使うのが普通なのは承知していますが 環境の都合上使用ができないのです。(クライアントのCOOKIEも)
488 名前:nobodyさん [2009/06/29(月) 23:42:59 ID:fVwdImLx] また、言葉足らず・・・ sessionを使用ができないのではなく、 sessionだけではなく、GETのクエリ文字列にもパラメータが必要ということでした。
489 名前:nobodyさん mailto:sage [2009/06/29(月) 23:49:37 ID:???] >>488 response.redirectでやると思うが、?userid=xxxxって追加する専用メソッドを入れたらいいんじゃない? 追加メソッド(string url){ return url+="?userid="+this.userid; } みたいな感じで、useridがどこにあるのか知らないけど どなたか>>478 もお願いしますm(_ _)m
490 名前:nobodyさん mailto:sage [2009/06/30(火) 00:00:00 ID:???] >>489 やはり、その方法しかないですかね? useridはIIS上で保持しています。 URLに付加された状態でProxyを通過させたいんですよね・・・ (言葉足らずで情報が小出しになってしまい申し訳ないです)
491 名前:nobodyさん mailto:sage [2009/06/30(火) 00:31:17 ID:???] プロクシを通過させると何か問題なの? 俺ならSystem.Web.UI.Pageを継承するクラスUserPageを作成して、 private int UserIDみたいなメンバ変数と public void Redirect(string url,)みたいなメソッドをを作成して urlとUserIDからRedirectさせるようにする んで、そのクラスを継承するページを設定するかな? public partial class Default : UserPage みたいな感じで そうすれば各ページでuseridを取得するルーチンを書かなくて済むし、 現状のresponse.redirectをUserPage.Regirect(string url)に置換するだけで済むし
492 名前:nobodyさん mailto:sage [2009/06/30(火) 01:25:00 ID:???] >>478 public class Person { private string name; public string Name { get { return this.name; } set { this.name = value; } } private int age; public int Age { get { return this.age; } set { this.age = value; } } } [WebMethod] public List<Person> GetPersonList() { List<Person> aaa = new List<Person>(); aaa.Add(new Person { Name = "Taro", Age=8 }); aaa.Add(new Person { Name = "Jiro", Age = 7 }); return aaa; } でとりあえず動いてるみたいなんだが、どんなエラーなんだ?
493 名前:nobodyさん mailto:sage [2009/06/30(火) 01:26:01 ID:???] 半角スペース消えるの忘れてた・・orzスマソ
494 名前:479 mailto:sage [2009/06/30(火) 09:14:08 ID:???] >>482 ,484 ご教授ありがとうございます。おおよその動きは理解出来ました。 >AJAXを使えばJavaScriptでも簡単にできるかもしれないけど、 AJAXは使っています。 その場合、提示された処理より簡単に実装出来るのでしょうか? 出来ればこちらのやり方も教授頂けると嬉しいです。 >>483 ご教授ありがとうございました。
495 名前:478 mailto:sage [2009/06/30(火) 10:15:56 ID:???] >>492 ありがとうございます、新しいページで作り直したら動きましたorz
496 名前:nobodyさん mailto:sage [2009/06/30(火) 16:05:45 ID:???] >>494 AJAXなら、フォームからフォーカスが外れるたびに入力内容をチェックしにいって、 重複か重複でないかをチェックして、ScriptManager.RegisterStartupScriptで JavaScriptで定義した変数にbool値を格納する 例 var isDuplicate = true; 登録ボタン押下時に、JavaScriptでisDuplicateの変数内容によって、 onSubmitで表示するconfirmの表示文字を変更させればいい。 cancel時にPostの処理を中止するのはどちらも同じだから。
497 名前:479 mailto:sage [2009/06/30(火) 17:26:30 ID:???] >>496 ご丁寧にありがとうございます。 482,484を実装し、期待する動作は確認出来ました。 作成しデバッグしている最中にASPの制御、と言うかスタンドアロン(VB)との違いが良く分かりました。 (それにより)496の内容もすぐに理解出来ました。応用させて頂きます。 ご教授頂いた事に感謝致します。 本当にありがとうございました。
498 名前:nobodyさん mailto:sage [2009/07/01(水) 17:57:52 ID:???] MSの開発技術大全のASP.NET編で、SQLDataAdapterコントロールが デザイナにD&Dできるみたいな記述になってるけど、VS2005や2008でも出来たっけ?
499 名前: [―{}@{}@{}-] nobodyさん mailto:sage [2009/07/01(水) 18:29:24 ID:???] >>498 SqlDataSourceとかObjectDataSourceコントロールの事じゃないか
500 名前:nobodyさん [2009/07/02(木) 20:39:30 ID:ZUKdZhY7] ASPでjavascriptを使わずにあるボタンを押したら、とあるテキストボックスに1を入力するっていう処理をやりたいのですが、 今まではポストバックさせてやっていたのですが、そうするといちいち画面が切り替わるのがうっとうしいので画面が切り替わらないで処理をやりたいです。 可能でしょうか?
501 名前:nobodyさん mailto:sage [2009/07/02(木) 20:54:55 ID:???] 不可
502 名前:nobodyさん [2009/07/02(木) 21:15:02 ID:ZUKdZhY7] >>501 ありがとうございます そうですか、あきらめてjavascript使うしかないですね
503 名前:nobodyさん mailto:sage [2009/07/02(木) 21:46:24 ID:???] 1って入力してもらう
504 名前:nobodyさん [2009/07/02(木) 21:51:06 ID:ZUKdZhY7] 目的は1を入力した状態にしたいのではなくて、テキストボックスをreadonlyにしたいのです。 javascriptで実装するにはどういうコードを書けばいいのでしょうか?
505 名前:nobodyさん mailto:sage [2009/07/02(木) 21:57:01 ID:???] マジレスすると、TextBox.Textに1を入れた後にTextBox.ReadOnlyにtrueを設定
506 名前:nobodyさん [2009/07/02(木) 21:59:45 ID:ZUKdZhY7] ポストバックさせたくないんですよ
507 名前:nobodyさん mailto:sage [2009/07/02(木) 23:41:47 ID:???] AJAX使いなよ ポストバックしてるけどしていないような感じで実現できるから
508 名前:nobodyさん [2009/07/02(木) 23:48:58 ID:ZUKdZhY7] 一番簡単に実装するには何がいいでしょうか? 当方VB、Cの経験しかありません
509 名前:nobodyさん mailto:sage [2009/07/02(木) 23:56:35 ID:???] そろそろスルーで
510 名前:nobodyさん mailto:sage [2009/07/03(金) 00:01:26 ID:???] WebアプリなのにJavaScriptもポストバックもだめとかそもそもが間違ってるよな。 スタンドアロンアプリでも作ってろよ
511 名前:nobodyさん [2009/07/03(金) 00:11:41 ID:WYeGS7LZ] しょうがないじゃん、最近はじめたんだから。 radiobutton_checkedイベントやdropdownlist_chengedindexイベントでいちいち画面がロードされるのうざいでしょ?
512 名前:nobodyさん mailto:sage [2009/07/03(金) 00:30:44 ID:???] >>499 いや、SqlDataAdapterだ。俺の目が腐ってなければ・・ ちなみにいまVS2008で試したがグレーアウトでデザイナにはドロップできない。 VS2005ではできるか試してもらえる人はいるだろうか。 グレーアウトになってるってことは使うなってことだよなぁ 手打ちでコーディングはできるんだから。
513 名前:nobodyさん mailto:sage [2009/07/03(金) 01:20:01 ID:???] silverlight使えよ。
514 名前:nobodyさん mailto:sage [2009/07/03(金) 01:41:25 ID:???] >>511 >しょうがないじゃん、最近はじめたんだから。 ブラウザは散々使っているんだろうから、その経験則から何が実現可能か不可能か判断できずに、 最近始めたばかりだと開き直るようじゃあ、あなたにWebアプリは向いてないよ。 ↓お好きなのドゾ Silverlight Flash Ajax ActiveX JavaApplet >>512 標準ではツールボックスにSqlDataAdapterの表示がないんだが、 どれを参照すれば表示されるん?
515 名前:nobodyさん mailto:sage [2009/07/03(金) 01:52:55 ID:???] >>514 コントロールツールボックスを→クリで「全て表示」とかなかったっけか
516 名前:nobodyさん mailto:sage [2009/07/03(金) 13:20:41 ID:???] >>512 2005は手元に無いからわからんが、2003なら出来るな データアダプタ構成ウィザードが立ち上がってきた
517 名前:500 [2009/07/04(土) 00:48:45 ID:gSOLs+sG] いろいろ調べた結果ユーザーコントロールを使用することにより実装することができました ここって結構無知が多いんだな
518 名前:nobodyさん mailto:sage [2009/07/04(土) 01:41:16 ID:???] PostbackもJavaSciptも使用せずに動的に変更なんてできませんよw
519 名前:nobodyさん mailto:sage [2009/07/04(土) 01:43:34 ID:???] だなぁ、多分ASP.NET自体を新しい概念で開発したんだろうなw その場合.NETって名前そのものが変わると思うけどw
520 名前:518 mailto:sage [2009/07/04(土) 01:50:28 ID:???] >>519 無知で結構だから、もし実現できるのなら教えてほしいよ 何を勘違いしたんだろうな。 ユーザコントロールつかってもポストバックはするし。 ユーザコントロールはJavaScriptの実装には不向きだから、 AJAXでも実装したんかな?
521 名前:nobodyさん mailto:sage [2009/07/04(土) 02:05:56 ID:???] ICallBackEventHandlerで勘違いしたに20000000000ジンバブエドル
522 名前:nobodyさん mailto:sage [2009/07/04(土) 02:19:19 ID:???] JavaScriptおもいっきしつかっとるやんw つか、それならAJAX使ったほうが楽でしょ
523 名前:nobodyさん mailto:sage [2009/07/04(土) 04:29:22 ID:???] 要は画面が切り替わったのに気付かなければいいんだろ? つ Page.SmartNavigation ASPとASP.NETは別物だからちゃんと区別して書こうな ホントにASP.NETじゃないASPの話だったらスレ違いだがなw
524 名前:nobodyさん mailto:sage [2009/07/04(土) 09:47:11 ID:???] >>517 UpdatePanelで勘違いしたに30000ペリカ
525 名前:nobodyさん mailto:sage [2009/07/04(土) 16:47:14 ID:???] >>523 聞いたことがないと思ったら2.0以降でDeprecatedか
526 名前:nobodyさん mailto:sage [2009/07/04(土) 17:25:28 ID:???] ここ最近みてると、 ASP.NET→JavaScriptの関数の実行(引数引き渡しも含む) JavaScript→ASP.NETのメソッドの実行(引数引き渡しも含む) という需要が多そうだな
527 名前:nobodyさん [2009/07/05(日) 11:58:29 ID:Km3uJP2Y] HTMLデザイナの表示をカスタマイズで カラムの幅を狭めると、 デー タバ イン ド みたいになって縦長になってウザイっす。。 なんで「データバインド」なんて意味のない文字列を表示させるのかな。 これを消したいです。なんか方法ありませんか????
528 名前:nobodyさん mailto:sage [2009/07/05(日) 14:08:13 ID:???] データバインドであることがわかるし、 縦長になるとデザイン上の狂いのあることが発見できることもある ウザイときもあるが表示のおかげでデザインの狂いを修正できたことが何度かあるよ 従って一長一短
529 名前:nobodyさん mailto:sage [2009/07/05(日) 14:18:45 ID:???] んなのMSに聞けばいいだろ? ここはお前のVSサポートセンターじゃねえ
530 名前:nobodyさん mailto:sage [2009/07/05(日) 14:22:06 ID:???] このスレの存在意義なくすなよカス
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かに搭載されているのですか?
632 名前:nobodyさん mailto:sage [2009/07/21(火) 20:30:30 ID:???] うろ覚えですまん MSSQLには定期実行するjobの機能がある。ただしExpress以上。 jobがなくても、SQLCMDだったかなで、別途ファイルに保存したクエリを実行できるから、 これをOSのタスクスケジューラーで実行するという方法もあったはず ストアドプロシージャでも、SQL/CLRを使えば、.NETが使えるから、 Linq To Entitiesも、ログを残すこともできるんでないかな。 .NET3.5でSQL/CLR使ったことないからよくわからん。
633 名前:627 mailto:sage [2009/07/21(火) 20:44:49 ID:???] >>632 ああ、SQL Serverにジョブを定期実行する仕組みがあるのですね…。 これは知りませんでした。勉強になりました。
634 名前:nobodyさん mailto:sage [2009/07/23(木) 06:02:37 ID:???] >>631 自分はストアド派だなぁ その「DBの掃除」がストアド化されていて 後で「ログを出力」という要件が追加になった場合、 ストアドの中だけ弄れば済む。 「後で要件追加(変更)」なんて設計者としては最初から織り込まないといけないと思う。 →ストアド内でログ出力するロジックを追加した方が総工数は下がる
635 名前:627 mailto:sage [2009/07/23(木) 13:07:42 ID:???] >>634 > →ストアド内でログ出力するロジックを追加した方が総工数は下がる それはストアドを駆使して書いてある場合の話であって、ASP.NETでの開発の場合、 ストアド使わずにLINQで殴り書きするほうがインテリセンスも使えて生産性が高いように思うのだが。
636 名前:nobodyさん mailto:sage [2009/07/23(木) 14:04:17 ID:???] つSQL CLR
637 名前:627 mailto:sage [2009/07/23(木) 14:25:10 ID:???] >>636 SQL CLRは技術的に見ても面白いテクノロジーですが、 LINQに比べると書きやすさがずいぶん劣るように思います。
638 名前:nobodyさん mailto:sage [2009/07/23(木) 15:01:03 ID:???] コーディングのし易さ、早さ、書きやすさを最大限に追求することで、 プロジェクト全体の保守を含めた生産性の高さが最大になる案件やシステムなら、 そうすればいいじゃんとしか言えない。
639 名前:627 mailto:sage [2009/07/23(木) 15:36:04 ID:???] >>638 ああ、ええ、まあ、そうですよね・・。 もう少し生産的な話として・・ LINQで書いたものはCLRに変換されてserver sideで実行されるのですから、 ストアドプロシージャがLINQで書ければ便利な気がするのですが、どうでしょう?
640 名前:nobodyさん mailto:sage [2009/07/23(木) 15:42:28 ID:???] データベーステクノロジの使い分けとかみたいなのが 赤間さんとかの対談の形で MSDN のページに載ってたんだけど 今探したら見あたらないな
641 名前:627 mailto:sage [2009/07/23(木) 15:49:30 ID:???] >>640 これのことですかね? msdn.microsoft.com/ja-jp/data/dd919164.aspx
642 名前:nobodyさん mailto:sage [2009/07/23(木) 16:03:33 ID:???] そうそう、それそれ。
643 名前:nobodyさん mailto:sage [2009/07/23(木) 16:11:21 ID:???] 分業が必要な規模のアプリの場合、 その複数のプログラマがみんな美しいSQL文を書けるわけじゃないし マニュアル等々で均一化するのも大変 1人のデータベーススペシャリストに 美しいSQL文でストアド作らせてた方が効率いいだろ、と感じる あと、ASPの場合、外部からのハックキングを想定せねばならず データベースへのアクセス権限としてテーブルへの直アクセスを許したくない
644 名前:nobodyさん mailto:sage [2009/07/23(木) 16:15:12 ID:???] 仕様変更でDBのフィールドが一つ増えるたびに、 関係するクライアントアプリやASP.NETに記述したlinqをすべて書き直すなら、それでもいいんじゃね? 単一クエリなら問題ないが、1行の操作が他のテーブルに影響を与えるなら、 ストアドプロシージャやビューをフルに活用したほうが、 処理をDB内にカプセル化できるから、仕様が変更されても、 アプリケーションを変更する必要がないし他でも簡単に使いまわすことができる。 その典型例がDBを掃除するコード。 引数が必要ないからアプリ側に影響を与えないし、 ループして複数の行に対して処理するだろうからストアドのほうが高速だし、 トランザクションも明示的に処理ができる。
645 名前:nobodyさん mailto:sage [2009/07/23(木) 16:16:25 ID:???] 一つのページで大量のクエリかけなきゃいけないときってどうしてるの? select * from a; select * from b; ... って感じでやって取り込むのがいいの?
646 名前:627 mailto:sage [2009/07/23(木) 16:25:09 ID:???] >>643-644 > 仕様変更でDBのフィールドが一つ増えるたびに、 > 関係するクライアントアプリやASP.NETに記述したlinqをすべて書き直すなら、それでもいいんじゃね? これについてですが、私の場合、DBにアクセスするコードは、サブのプロジェクトを作ってそこに集約させてあるので、 DBのフィールド1つごとに修正する箇所があちらこちらに発生するということはないです。 ただ、ストアドで処理をDB内にカプセル化するという発想やDBのスペシャリストにストアドを書かせるという発想は 私にはなかったので643,644は本当に参考になりました。ありがとうございます。
647 名前:nobodyさん mailto:sage [2009/07/23(木) 16:31:51 ID:???] >>645 取得したいデータによって、動的に取得したいテーブルが変化するとかへんな設計してなければ、 二つのテーブルから合計値を取得するとか、簡単なものなら クラスにクエリをたくさん記述して、各ページで再利用してる場合もある ただ、複雑な計算が必要だったり、テーブル数が多くなる場合には、 MSSQL側に、その計算式をまるごとビューとして登録するか、 テーブル値関数として登録してる。 プログラム側では、一つの表として取得できるのでそれを描画するだけ。
648 名前:nobodyさん [2009/07/23(木) 16:36:22 ID:FURNmJTN] VS2005(VB)で開発しています ドロップダウンリストを使用してデータを格納しているのですが 画面上からドロップダウンリストを操作した時に、表示される項目の向きが 常に下方向のみ表示できる方法はないでしょうか? ________ [_______]▼ 項目A 項目B 項目C このように表示したいのですが・・・。 現状だと▼ボタンを押して表示されるデータが、リストボックスの中央から 表示されているような状況です 宜しくお願い致します
649 名前:nobodyさん mailto:sage [2009/07/23(木) 16:36:55 ID:???] >>646 それだと、仮にクライアントアプリだと、修正されるたびに、すべてのPCにデプロイする必要があるから面倒 DBの掃除コードはコンソールアプリからだけの実行かもしれないが、 仮にコンソールアプリからでもASP.NETからでも利用したい機能が発生した場合、 一つのプロジェクト内のクラスが変更になれば、両方をデプロイなり発行しなくちゃいけない。 DBに登録すれば、それに関するストアドの修正だけで済むので、 クライアントもASP.NETもコードを変更する必要がないので。
650 名前:627 mailto:sage [2009/07/23(木) 17:04:52 ID:???] >>649 ああ、なるほど。クライアントアプリのときはそうでしょうね。
651 名前:nobodyさん mailto:sage [2009/07/23(木) 17:10:18 ID:???] あんまりストアドに頼ると、DBMSを変更しづらくなるのがやだなあ。 よほどの理由がない限り、DBMSへの機能依存を前提とした設計は 避けたほうが無難じゃね?
652 名前:nobodyさん mailto:sage [2009/07/23(木) 17:18:22 ID:???] >>650 コンソールとASPでやってて、SQLを別プロジェクトにしてる時点で、 同じDLLをASPとコンソールの二つからみてるわけだから同じじゃん 異なるバージョンのDLLで稼働してるのが気持ち悪くない人なら別にいいけど。 >>651 DBそのものの変更の可能性を考えるのなら、 使用言語が変更しづらくなる可能性も考慮しなきゃw ストアドなら、そこにアクセスして操作できる言語なら 言語に依存せずに利用することができるとも言えるw
653 名前:627 mailto:sage [2009/07/23(木) 17:25:10 ID:???] >>652 > 同じDLLをASPとコンソールの二つからみてるわけだから同じじゃん サーバーサイドだけならdeployする手間が、普通のクライアントアプリとは違うので >>649 の「それだと、仮にクライアントアプリだと、修正されるたびに、すべてのPCにデプロイする必要があるから面倒」 という問題は無いかな、と思いました。 > 異なるバージョンのDLLで稼働してるのが気持ち悪くない人なら別にいいけど。 この部分がいまひとつ理解できていないのですが、私の構成は次のようになっています。 コンソールプロジェクト = DBの掃除を行なうコードを書いたプロジェクト(A) + DBへアクセスするためのサブプロジェクト(B) ASP.NETのプロジェクト = 普通のASP.NETのプロジェクト(C) + DBへアクセスするためのサブプロジェクト(D) 上の B = D で、これはどちらも同じバージョンのDLLなのですが・・。
654 名前:nobodyさん mailto:sage [2009/07/23(木) 17:34:37 ID:???] >>653 別に、あなたのやり方を否定してるわけでも、自分のやり方を推奨してるわけじゃなくて、 相反する考え方があるという事なんで、あくまで一般論の話ね。 どんな想定かわからないけど、複数のものを変更しなくちゃいけない場合、 その時点で変更し忘れ等のミスが発生する可能性が高まるということ。 例えばwebサーバが複数あるとか。 >上の B = D で、これはどちらも同じバージョンのDLLなのですが・・。 ASP.NETのプロジェクトの開発で何か変更になったとき、 サブプロジェクトDのDLLを変更するのはいいけど、 その時点でBに反映させなければ、異なるバージョンの物でそれぞれが動作している という気持ち悪い状況になるでしょ。 そういうやり方をしてるなら、Dが変更されたら、変更されたDLLをBとして反映する 必要があるから、結果的に複数のものを変更する必要があるんじゃないの?という話。 BとDが異なるバージョンのDLLで動作しているのが気持ち悪くない人というのは そういう意味。
655 名前:627 mailto:sage [2009/07/23(木) 18:10:04 ID:???] >>654 ああ、なるほど。意味がわかりました。 > その時点でBに反映させなければ、異なるバージョンの物でそれぞれが動作している > という気持ち悪い状況になるでしょ。 確かにそれはそうですね。 私はdeployの作業自体はスクリプトを書いて自動化してあるのですが、そこに書き忘れたら、 というのはありますね。
656 名前:nobodyさん mailto:sage [2009/07/23(木) 18:33:32 ID:???] というか、Linq To SQLは終了の方向だから、 EntityFrameworkのほうで頑張るしかないな
657 名前:nobodyさん mailto:sage [2009/07/23(木) 21:15:25 ID:???] >652 DBMSは導入先の環境・都合で変わりうるでしょ。開発言語に関してはそれはまず有り得ない。 大体、「開発言語を変更しろ」なんてのは事実上「1から作り直せ」と同義なんだから、 ストアド部分だけ流用できたって、たいして嬉しくないよ。
658 名前:nobodyさん mailto:sage [2009/07/23(木) 21:33:24 ID:???] DBMSが具体的に何を差してるかわからんが、 データベースのソフト(MySQLたのOracleだのMSSQLだの)を差してるなら、 導入先の環境、都合でこれらがそんな頻繁に変わるか? データだって移行せにゃいかんし、 そもそもクエリだってデータベース間で関数名や、その引数なんかに違いがあるんだから、 言語が統一ならどんなDBであってもまったく変わらないなんて完全な錯誤だと思うんだけど。 あるシステムでデータベースを異なる製品に変更しろなんて要求があったら、 1から作り直すのと同じだと思うし、あまりの仕打ちにそれ以上に腹が立つわw
659 名前:nobodyさん mailto:sage [2009/07/23(木) 22:08:49 ID:???] いつだってフルスクラッチ大好きな俺は大歓迎だ! ただし、金と時間はくれよな!
660 名前:nobodyさん mailto:sage [2009/07/24(金) 12:02:04 ID:???] ASP.NETで開発しています。 JavaScriptで使っているデータを1日1回、DBから生成して .js ファイルとして書き出しておくことを考えています。 その .js ファイルを IIS7でホスティングすることになるのですが、 「DBから生成して .js ファイルとして書き出しておく」ときに、テンポラリに書き出して、 .NET FrameworkのFile.Copy(src , dst, overwrite = true)で前のファイルに上書きしようと考えています。 ところが、このファイルの書き出し中にこのファイルをクライアントブラウザから要求されて IIS7が読み込もうとしたとき、コピー中の中途半端なファイルがクライアントブラウザに渡されます。 この挙動は望むものではなくて、出来れば、コピー前の古いファイルか、コピー後の新しいファイルかの どちらかをクライアントブラウザに渡して欲しいのです。 これはIIS7の設定で解決するのでしょうか?それとも、File.Copyを使うのが良くないのでしょうか?
661 名前:nobodyさん mailto:sage [2009/07/24(金) 15:08:26 ID:???] rename してからコピーして rename コピー中はファイル存在せず
662 名前:nobodyさん mailto:sage [2009/07/24(金) 15:10:12 ID:???] いや、少し違うか hoge.new で予め作っておく hoge.js → hoge.bak にリネーム hoge.new → hoge.js にリネーム hoge.bak を削除
663 名前:nobodyさん mailto:sage [2009/07/24(金) 17:35:30 ID:???] >>660 javascriptって.jsしか無理なんだっけ? 自分なら.jsファイル(もしくは変更されるデータ)をデータベースから取得し、 アクセスがあるたびに動的に生成するな ファイルを作成するプログラムが、バッチ処理の役割も果たしていて、 日に1回の集計処理を行ってるとすると、若干厄介かもしれないけど
664 名前:660 mailto:sage [2009/07/24(金) 18:02:37 ID:???] >>661-662 それだと hoge.js → hoge.bakにrename中にアクセスされるとnot foundになるのが 嫌なのです。その2つのrenameは実際にはほぼatomicに行なわれるとは思うのですが。 >>663 確かにデータベースから流しても良いのですが、そのオーバーヘッドが嫌なのです。 (自己解決) NTFSは次のようにtransactionをサポートしているらしいので 面倒ですが、これを使うことにします..。 Enhance Your Apps With File System Transactions msdn.microsoft.com/en-us/magazine/cc163388.aspx
665 名前:nobodyさん mailto:sage [2009/07/24(金) 18:24:53 ID:???] おーNTFSでファイルのトランザクションができるのかw 同じ.jsだとIEでキャッシュ扱いされそうな気がするんだが、その辺はどうなんだろ レポート頼む
666 名前:660 mailto:sage [2009/07/24(金) 19:23:06 ID:???] >>665 > 同じ.jsだとIEでキャッシュ扱いされそうな気がするんだが、その辺はどうなんだろ それはIISのファイルのexpireの設定次第だと思います。
667 名前:nobodyさん mailto:sage [2009/07/24(金) 19:40:49 ID:???] へーその都度、生成されるaspxでも?
668 名前:660 mailto:sage [2009/07/24(金) 20:25:23 ID:???] >>667 forums.techarena.in/software-development/1193025.htm にサンプルがありますがファイルの拡張子ごとにexpireする時間を設定できるようです。 このうちjsのexpireを1hourぐらいに設定しておけば、>>665 の問題は解決するのではないかと。
669 名前:nobodyさん [2009/07/24(金) 22:19:14 ID:1HXeI2xc] 生成し終わったファイルをコピーして別のファイル上書きするだけなら そんな問題おきなさそうだけどなぁ。 ファイルシステム書き換えるだけでしょ。 Windows の Copy コマンドとか使えないのかな。
670 名前:660 mailto:sage [2009/07/24(金) 23:37:28 ID:???] >>669 > 生成し終わったファイルをコピーして別のファイル上書きするだけなら > そんな問題おきなさそうだけどなぁ。 起きます。System.IO.File.Copyでコピーした場合、ファイルコピーが開始されると 同時に、クライアントブラウザへの古いほうのファイルの転送が中断され、 結果として中途半端なファイルがクライアントブラウザに渡されます。 WindowsのCopyコマンドというのが何を指しているのかわかりませんが、 DOSプロンプトのcopyコマンドのことでしたら、これと同じ挙動のようです。
671 名前:nobodyさん [2009/07/25(土) 01:29:42 ID:WtyVOn10] >自分なら.jsファイル(もしくは変更されるデータ)をデータベースから取得し、 >アクセスがあるたびに動的に生成するな うわ、死んだ方がいいなこいつw
672 名前:nobodyさん mailto:sage [2009/07/25(土) 02:03:30 ID:???] >>671 なんで? それが駄目ならデータベースからデータを取得して、 動的に中身を生成するasp.netの全否定になると思うけど?
673 名前:nobodyさん mailto:sage [2009/07/25(土) 02:15:27 ID:???] ASP.NETの動作にDB接続が必須だったとは初耳だ
674 名前:nobodyさん mailto:sage [2009/07/25(土) 02:19:13 ID:???] ストアドってよく使われるもんなの? 個人的には全部ソースで作ればいいじゃんと思うんだけども。
675 名前:nobodyさん mailto:sage [2009/07/25(土) 02:27:23 ID:???] >>673 データベースからデータを取得してhtmlを生成する仕組みで動作してる aspx全般のことを言ってるのに、asp=db必須なんて言うのは論理のすり替え
676 名前:nobodyさん mailto:sage [2009/07/25(土) 03:11:46 ID:???] >>674 ストアドに限らず、viewやテーブル値関数、トリガーを含めてなら便利だし、結構使う 問題なく動作してるなら、別にソースからでもいいんじゃない? メリットはデータベースを一つのオブジェクトとみた場合、データの操作はデータに近いところで行うという、 可能な操作や状態のみ閲覧でき、実装を隠蔽できるOOPのメリットと併せて考えればわかりやすいと思うけど あとは複数クエリの実行なら、ストアドのほうが処理が速いということかな ASP.NETとはいえ、DBとWEBサーバは別だろうから、DB-WEB間のネットワークトラフィックを最低現にできるメリットもある
677 名前:nobodyさん mailto:sage [2009/07/25(土) 03:12:12 ID:???] >>675 んじゃーお前は何でもかんでもDBに突っ込んで毎回取りに逝けばいいよ。
678 名前:nobodyさん [2009/07/25(土) 08:21:37 ID:BV/bwvMa] 俺頭悪いから >>675 からなんで >>677 な意見が出るのか理解できない…。 >>673 はまぁ極端ではあるけど >>672 の文章自体誤解を受けかねない部分はあるからまぁ仕方ないのかなって気はするけど。 まぁでもなんかとにかくかみつきたくてかみついてるような印象はあるか。
679 名前:nobodyさん mailto:sage [2009/07/25(土) 11:37:23 ID:???] >>671 はjs「ファイルを動的に生成」ってところに 突っ込みたかったんだと思ったが…
680 名前:nobodyさん mailto:sage [2009/07/27(月) 09:33:53 ID:???] >>664 どこまで極めないといけないのか知らんが js ファイルを作成する都度、別ファイル名にして、 aspx 側で食わせる js ファイル名を動的に変更させたらどう?
681 名前:sage mailto:sage [2009/07/27(月) 10:06:33 ID:???] TextBoxにもLabelにもなるユーザコントロールって作れないんスかね? ReadOnlyのプロパーティをtrueにすればLabel、falseにすればTextBox、みたいな。 TextBoxを変更不可にするんじゃどうしても見た目的に駄目なケースがあるんで。
682 名前:nobodyさん [2009/07/27(月) 10:34:22 ID:lA2VJ4lQ] 動的にコントロール追加すればいいんじゃないの
683 名前:nobodyさん mailto:sage [2009/07/27(月) 14:43:15 ID:???] Repeaterでテキストボックスを動的に生成しています。 ボタンが押されたら内容をチェックして、何らかのエラーがあればエラーのあったテキスト ボックスの背景色を変えたいんですが、方法が分かりません。 テキストボックスは動的に生成しているので、 プロパティで変更することも出来ないみたいで。
684 名前:nobodyさん mailto:sage [2009/07/27(月) 15:31:56 ID:???] >>681 作れなくはないが、見た目だけならCSSで無理か? >>683 FindControl
685 名前:nobodyさん mailto:sage [2009/07/27(月) 15:33:45 ID:???] >>681 TextBoxとLabelを配置したUserControl作って、ReadOnlyプロパティとTextプロパティを作って、 TextBox.Visible = !ReadOnly Labe.Visible = ReadOnlyすればいいじゃない >>683 public List<TextBox> TextBoxList = new List<TextBox>(); protected void Page_Load(object sender, EventArgs e) { for (int i = 0; i < this.Repeater1.Items.Count; i++) { RepeaterItem ri1 = this.Repeater1.Items[i]; TextBox textBox = (TextBox)ri1.FindControl("TextBox1"); TextBoxList.Add(textBox); } } あとはお好きにどぞ
686 名前:nobodyさん mailto:sage [2009/07/27(月) 15:59:05 ID:???] >>685 683は、validationをclient-sideで行なって、かつ、TextBoxとLabelとの切り替えもclient-sideで 行ないたいということなんじゃない? まあJavaScriptで書くしかないわな・・。 ASP.NET、client-sideで処理するためのtool setが用意されていないので 何かとJavaScriptを書かないといけなくて面倒なんだな。
687 名前:nobodyさん mailto:sage [2009/07/27(月) 17:02:42 ID:???] このスレの>>200 近辺にあるjQueryを使えば大丈夫
688 名前:nobodyさん mailto:sage [2009/07/27(月) 17:09:31 ID:???] >>687 何がjQueryで大丈夫なのかは知らないが、 あまりにjQueryとの親和性が悪いので ASP.NET4.0ではjQueryを統合するとか何とか。
689 名前:nobodyさん mailto:sage [2009/07/27(月) 17:42:49 ID:???] ×あまりにjQueryとの親和性が悪いので ○ASP.NET AJAXがあまりにjQueryとの親和性が悪いので
690 名前:nobodyさん mailto:sage [2009/07/27(月) 20:19:11 ID:???] >>686 UserControl、ReadOnlyプロパティから考えるにサーバコントロールじゃないの? そもそもClientでValidationを行うのが間違いだし 超簡単にやるなら、こんなでいいんじゃない。 <%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Label ID="Label1" runat="server" Text="Label" Visible="False"></asp:Label> public partial class WebUserControl : System.Web.UI.UserControl { public bool ReadOnly { get { return this.Label1.Visible; } set { this.Label1.Visible = value; this.TextBox1.Visible = !value; } } public string Text { get { return this.Label1.Text; } set { this.Label1.Text = value; this.TextBox1.Text = value; } } }
691 名前:nobodyさん mailto:sage [2009/07/27(月) 21:07:41 ID:???] >>690 > そもそもClientでValidationを行うのが間違いだし 何故間違いなの?余計なトラフィック増やしたくないから、まずclient-sideで行なって、 サーバーはサーバーで再度validationを行なうのが常識でしょ。
692 名前:nobodyさん mailto:sage [2009/07/27(月) 21:20:16 ID:???] >>691 >何故間違いなの? ああ正確にはClient「だけ」だな 言葉足らずですまんかった >余計なトラフィック増やしたくないから、まずclient-sideで行なって、 >サーバーはサーバーで再度validationを行なうのが常識でしょ。 入力内容をポストしてValidateするのと、JavaScriptでチェックするのの、 どちらが容量が少ないかだけの観点なら、失敗される予想回数と、 Postされるデータの容量と、Validationに必要なJavaScriptの容量が関係するから、 一概にClientでチェック=トラフィックが低いとは言えないけどね
693 名前:nobodyさん mailto:sage [2009/07/27(月) 23:45:26 ID:???] >>692 > 一概にClientでチェック=トラフィックが低いとは言えないけどね ああ、なるほど。トラフィックという観点ではそうだね。 実際は、ASP.NET ajaxでも、アクセスされるごとにサーバー側では モデル等を再構築するのでアクセスごとのサーバーの負荷は並々ならぬものがあるので なるべくならclient-sideで、というのは信念としてあるわけだけど。
694 名前:nobodyさん mailto:sage [2009/07/27(月) 23:49:45 ID:???] >>671 動的生成したjsの内容をいキャッシュしとけばいいよ。 ってか良くやる方法だよ。 あんまりキャッシュとか活用されないことが多かったりするけどね。
695 名前:nobodyさん mailto:sage [2009/07/27(月) 23:52:13 ID:???] クライアントサイドの検証コードなんてほとんどキャッシュされるから、 実質的にはクライアントでも検証を行う方が有利なことが多いんじゃないかと思うけどね。
696 名前:nobodyさん mailto:sage [2009/07/27(月) 23:55:29 ID:???] >>694 の続き jsファイルでやりたいなら、ashxハンドラなどで、ファイルを読んでキャッシュして リクエスト時にはそれを返す方法でもいい。 ファイルの更新時刻を見て、例えば一秒以内程度なら前の結果を返すとか自由に制御できる。
697 名前:nobodyさん mailto:sage [2009/07/28(火) 00:30:07 ID:???] >>695 そこらへんまで行くと、完全に実装にかかるコストやなんやらとのトレードオフ ISDNとか56kモデム全盛の時代は帯域が狭いから、 トラフィックも考慮されてたけど、今じゃよほど特殊な環境やページでなければ トラフィックを気にして設計することなんかほとんどない その証拠に、画面を描画するcssも、よくあるライブラリを記述するjsも、 必要な部分だけincludeしてるわけじゃなく、サーバに対して1つだけを設定してるだけでしょ さらに言えば、今時、JavaScriptで入力チェックしてるサイトも少数派になってる どうせ両方に実装するのならJavaScriptのほうは不必要という考えもできるからね
698 名前:nobodyさん [2009/07/28(火) 02:26:18 ID:FCPdlHYK] ASP.NETのValidatorが自動生成するスクリプトでのチェックならいいが、 自力でScriptをゴリゴリ実装するのは後で他人が多大なる被害を被るのでやめてくれ。 んなもんサーバ側でやればいいだろーが。
699 名前:nobodyさん mailto:sage [2009/07/28(火) 08:13:31 ID:???] 前任者のソースに__doPostBackを 自前の関数から呼んでるのとかあったな
700 名前:nobodyさん mailto:sage [2009/07/28(火) 09:19:48 ID:???] つーか、client側にゴリゴリ処理を書くとか、むしろアリエネーとか思うんだが。 そんなの、いくらでもエンドユーザが改変可能じゃん。 原則は、全部のデータをサーバに丸投げして、あとはサーバ側でチェック。 仮にclient側のjavascriptでチェックしてても、全く同じチェックをサーバ 側でも再実施。だったら実装の手間隙考えて、微々たるトラヒックの事なん か気にしない。(=clientではチェックしない)
701 名前:nobodyさん mailto:sage [2009/07/28(火) 11:02:01 ID:???] なんでajaxが出てきたと思ってる ってまあ言いたいことは分かってるんだけどな
702 名前:Appri童貞 [2009/07/28(火) 17:08:04 ID:sYPKb5BW] エラー発生アプリケーション xxxxxxxxxxxx.exe、バージョン 1.0.0.0、 エラー発生モジュール kernel32.dll、バージョン 5.2.3790.4480、 エラー発生アドレス 0x0000bef7 こんなログ出た人いますか?
703 名前:nobodyさん mailto:sage [2009/07/28(火) 17:20:27 ID:???] >>702 聞く前にぐぐれ kernel32.dll 0x0000bef7 5.2.3790.4480 でぐぐったら、1つ目のリンクにSystem.OutOfMemoryExceptionがどうとか書いてあるぞ。
704 名前:Appri童貞 [2009/07/28(火) 17:33:53 ID:sYPKb5BW] ありがとう^^
705 名前:nobodyさん mailto:sage [2009/07/28(火) 19:06:55 ID:???] 死ね
706 名前:nobodyさん mailto:sage [2009/07/28(火) 19:48:08 ID:???] むしろ生きろ
707 名前:nobodyさん [2009/07/29(水) 03:14:53 ID:S6cUwBjX] >>699 ゴメン、今のプロジェクトで __doPostBack 書いてる。
708 名前:nobodyさん mailto:sage [2009/07/29(水) 03:30:54 ID:???] クライアントスクリプトからポストバックする方法って普通になかったっけ? 別に問題ないと思うけど
709 名前:nobodyさん mailto:sage [2009/07/29(水) 07:38:21 ID:???] ASP.NET2.0以降ならICallBackEventHandlerで出来るな。 しかしだからって、__doPostbackを自前で呼ぶことが許容できるかというと微妙。 十中八九、代替する方法があるだろうしな。
710 名前:nobodyさん mailto:sage [2009/07/29(水) 19:40:32 ID:???] リンクをcssで無効にして、Scriptでクリックすることにするという方法が簡単らしいね ClientScriptで動作させることが前提の非ビジュアルコンポを作ったら楽かもしれない つか、ICallBackEventHandler試したことないから、やってみようかな
711 名前:nobodyさん mailto:sage [2009/07/29(水) 20:30:18 ID:???] MaskedEditExtenderについて、教えて下さい。 <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <ajaxToolkit:MaskedEditExtender ID="MaskedEditExtender1" runat="server" InputDirection="RightToLeft" Mask="99,999" MaskType="Number" TargetControlID="TextBox1"> </ajaxToolkit:MaskedEditExtender> と設定されたテキストボックスに、1を入力してポストバックなりすると 100,000と変換?されてしまします。 Mask="9,999" でもダメでした(1,000になってしまう) しかし Mask="999999" やMask="9,999,999"では問題ありませんでした。 これは何かの制限でしょうか?
712 名前:nobodyさん [2009/07/30(木) 01:45:47 ID:6Jkou0XR] __doPostback実装してもいいじゃん。ダメな理由って何がある?
713 名前:nobodyさん mailto:sage [2009/07/30(木) 02:45:19 ID:???] ServerControlの配置と、自分で記述するClientScriptの相関関係がまったくなくなるのが問題と言えば問題
714 名前:nobodyさん mailto:sage [2009/07/30(木) 03:29:35 ID:???] まったくなくなるかどうかはクライアントスクリプトの実装次第だと思うが コールバックとポストバックは似て非なるものだから どうしてもポストバック使いたいときもあるだろう つか1.1まではそれしかなかったしな ダメな理由はない まあ、見通しが悪くなることが問題といえば問題 だがそれはコールバックでも同様
715 名前:nobodyさん mailto:sage [2009/07/30(木) 06:36:24 ID:???] コントロール名を変更しても、JavaScriptのほうまでは変更してくれないでしょ だから相関関係が無くなる
716 名前:nobodyさん mailto:sage [2009/07/30(木) 07:36:36 ID:???] それは最初からJavascriptが間違ってるだろ。
717 名前:nobodyさん mailto:sage [2009/07/30(木) 08:11:07 ID:???] >>712 もちろん最終的には開発者の自由なんで、あくまで俺の見解として。 まず、前にも書いたがそんなことをしなくても 十中八九、正攻法で解決できると予想される。 また、他に方法がなかったとしても、 果たして裏道を使ってまで解決する要件か疑問が残る。 次に、そのような組み方は「らしくない」と感じる。 極端な例えだが、Responce.WriteでHTML出力してたり、 GridViewに仕込まれた無数のhiddenを見ている気になる。 最後に、フレームワークを使っていて、 ハッキング(裏道の利用)に手を染めたら負けかなと思ってる。
718 名前:nobodyさん mailto:sage [2009/07/30(木) 14:41:52 ID:???] >>716 違う 最初は正しかったが、IDEでaspxの何かを変更をすることで、 結果的に間違ったものになったということ 基本的にIDEの機能や本来のやり方と無縁だからこうなる
719 名前:nobodyさん mailto:sage [2009/07/30(木) 18:15:21 ID:???] >>715 それはスクリプトでIDなんかをハードコーティングするから悪い スクリプトをサーバコントロールで動的に生成して出力するようにすれば サーバコントロールとの関係は崩れない。これがAPS.NET流じゃないかな まあ、__doPostback直接書くのはお勧めじゃない。GetPostBackEventReference使えと .aspx側(html側)にスクリプト書いたとしても、動的に変更する必要があるところは 実行時バインド式で書いとくのが通常
720 名前:nobodyさん mailto:sage [2009/07/30(木) 21:07:58 ID:???] >スクリプトをサーバコントロールで動的に生成して出力するようにすれば これが読みにくくて判読しにくいんだよな そもそもサーバサイドスクリプトがcsに書かれてるのも違和感だし うまく解決できないものか
721 名前:nobodyさん mailto:sage [2009/07/30(木) 21:46:45 ID:???] aspx側に書けばいいじゃん。
722 名前:nobodyさん mailto:sage [2009/07/30(木) 22:11:19 ID:???] ASP.net 2.0 なんですが、GirdViewの「編集」(正確には「更新」)のイベントハンドラを独自に記述する方法はあるでしょうか? GridViewによるマスタメンテを実装しているのですが、GridViewはEnableViewStateをfalseにしないと更新が出来ないそうですね。 現在、ロジック側でConnectionStringを設定するつくりになっているので、EnableViewStateがtrueでないと動かないのです。 ということで%一行目%しかないかと思ったのですが、どこか参考になるURLなどご存知の方がいらっしゃれば、ご教授いただければ幸いです。 よろしくお願いします。
723 名前:nobodyさん mailto:sage [2009/07/30(木) 22:18:30 ID:???] >GridViewはEnableViewStateをfalseにしないと更新が出来ないそうですね。 そうなの?初めて聞いた。 >ロジック側でConnectionStringを設定するつくりになっているので、EnableViewStateがtrueでないと動かないのです。 そうなの?これも初めて聞いた。
724 名前:nobodyさん mailto:sage [2009/07/30(木) 22:21:01 ID:???] ゴメン、意味が分からない。 同じ環境でGridViewから更新処理してるが、EnableViewstateはTrueのままだぞ。 あと編集処理は通常CommandNameがEditであって、 更新はUpdateだから同じものでも無いはずなんだが。 まぁイベントハンドラならOnCommand辺りでフックすればいいんじゃないか。 と、ここまで書いて思い付いたが、 もしかしてObjectDataSource等をかまさずに 直接DataSourceにオブジェクトを割り当ててるとか?
725 名前:nobodyさん mailto:sage [2009/07/30(木) 22:26:48 ID:???] 今テストしたけど、GridViewのEnableViewState=trueで更新できるな VS2008+MSSQL2005
726 名前:nobodyさん mailto:sage [2009/07/30(木) 22:41:33 ID:???] エスパーすると IsPostBackがtrueの時にDataBindするとイベントが発生しないということと、 ポストバックしてEnableViewStateがtrueの時だと、 取得時のデータと異なる可能性があるというデータの整合性や楽観的ロックの 関係とごっちゃになってるような気がする。
727 名前:722 mailto:sage [2009/07/30(木) 23:43:56 ID:???] >>723-726 というと、これはガゼ? ttp://bbs.wankuma.com/index.cgi?mode=al2&namber=6830&KLOG=17 ttp://yaplog.jp/iamcat/archive/23 (1)削除は出来る (2)更新も、少なくともSQLは流れてる ※UpdateCommandのSQL文弄るとエラーになるので から、画面から入力した内容がUPDATE文に流れていないのだと判断したのですが・・・。 >>723 >>ロジック側でConnectionStringを設定するつくりになっているので、EnableViewStateがtrueでないと動かないのです。 >そうなの?これも初めて聞いた 初回は動くんですが、ポストバックするとConnectionStringが元に戻ってしまうらしいんですよ。 Page_loadで毎回代入してるはずなんですけどね・・・。
728 名前:nobodyさん mailto:sage [2009/07/30(木) 23:58:28 ID:???] >>727 >というと、これはガゼ? それは、GridViewにデータをバインドした後に、誰かがデータを変更した場合の話 初回アクセス時にデータを取得し、それ以降はサーバとブラウザの間でポストバックして、 データを持ち回りしているので、その間にデータベースのデータが変更されても、 変更されたデータとして反映されないということ。 >初回は動くんですが、ポストバックするとConnectionStringが元に戻ってしまうらしいんですよ。 そう考えるとConnectionStringが元に戻るんじゃなくて、表示されるデータが戻ってるだけでは? ConnectionStringをLabelなどに表示してみて、本当に変わっているかどうかチェックしてみたほうがいい
729 名前:728 mailto:sage [2009/07/31(金) 00:08:52 ID:???] ああ、ごめん上のレスは却下 System.ArgumentException: 無効なポストバックまたはコールバック引数です。 の理由にはならないね ただ、ポストバックで特殊なことをしてなければそんなエラーはでないから普通は関係ないはず
730 名前:nobodyさん [2009/07/31(金) 00:14:03 ID:dsR5PDEA] ASPでデバッグモードの時のみコードを実行させることってできます? C#でウインドウアプリ作るときはプロジェクトの設定して Conditional属性つければ、デバッグ時のみコードを実行させることが できますが、同じようなことをASPでできないものでしょうか? #if DEBUGでの切り分けはあんまり使いたくないなぁということで・・・ 属性じゃなくても、似たようなことができる方法教えてもらえると助かります。
731 名前:730 [2009/07/31(金) 00:16:46 ID:dsR5PDEA] あ、失礼しました ASP.NETです 言語はC#です
732 名前:nobodyさん mailto:sage [2009/07/31(金) 02:18:59 ID:???] >>720 >そもそもサーバサイドスクリプトがcsに書かれてるのも違和感だし クライアントサイドの間違いじゃないのか? サーバサイドのスクリプト(プログラム)が.csに書いてあるのは普通だろう そのために.aspxと.aspx.csに分離してあるんだから まあ、サーバサイドとクライアントサイドのコードが混在すると 読みにくくて判読しにくいのは同意するが、これはWEBアプリの宿命的な部分もあるしな ASP.NETな開発で考えると、そこはコントロールの作成者が苦労すれば、 その利用者は何も考えなくてよい、ってことなんだが...最大の成功例はAjaxToolkitか 実際はカスタムコントロールなんて作らんとページロジックに書く場合がほとんどだろうし 作ってもコントロール利用者=コントロール作成者な場合が多いからなw
733 名前:nobodyさん mailto:sage [2009/07/31(金) 19:40:32 ID:???] VS2008SP1のセキュリティがあたらねぇ WindowsUpdateはクソだな
734 名前:nobodyさん [2009/08/01(土) 09:06:35 ID:7MJE4N/J] ASP.NET MVC 2 Preview 1 www.microsoft.com/downloads/details.aspx?FamilyID=d34f9eaa-fcbe-4e20-b2fd-a9a03de7d6dd&DisplayLang=en
735 名前:nobodyさん mailto:sage [2009/08/01(土) 11:34:44 ID:???] mvcは要らない子
736 名前:nobodyさん mailto:sage [2009/08/01(土) 11:58:07 ID:???] 海外ではMVCに移行してきてると思うけど 携帯向けのことも考えるとMVC以外あり得ん
737 名前:nobodyさん mailto:sage [2009/08/01(土) 13:47:25 ID:???] ASP.NET for Mobilesはやれば出来る子
738 名前:nobodyさん mailto:sage [2009/08/01(土) 15:10:04 ID:???] ASP.NET MVCちょっと使ってみて、やべー、使いやすい! って俺は思ったんだが。 他のフレームワークでのMVC開発全くやったことなかったし。
739 名前:nobodyさん mailto:sage [2009/08/01(土) 15:45:55 ID:???] コードビハインドで事足りる MVCならResponse.Writeで全部はき出すのとそんなに変わらん
740 名前:nobodyさん mailto:sage [2009/08/01(土) 15:56:50 ID:???] 今更Web Forms vs MVCみたいなこと言ってんのかよ
741 名前:nobodyさん mailto:sage [2009/08/01(土) 16:01:59 ID:???] ASP.NET MVCはLAMP対策。 それ以上でもそれ以下でもない。
742 名前:nobodyさん mailto:sage [2009/08/01(土) 16:07:10 ID:???] 使いやすい云々よりjQueryフレンドリーなのが大きい
743 名前:nobodyさん mailto:sage [2009/08/01(土) 16:12:12 ID:???] 苦肉の策って奴だなLAMP方式
744 名前:nobodyさん [2009/08/01(土) 22:28:24 ID:Xxdx6Cb4] ASP.NET MVCは単テがしやすいとか聞いたがそうなの? 今までのASP.NETでは、まともに単体テストやろうとしたらかなり面倒だよね。
745 名前:nobodyさん mailto:sage [2009/08/01(土) 23:07:40 ID:???] つVisual Studio Team Edition for Software Testers
746 名前:nobodyさん [2009/08/02(日) 16:46:34 ID:Ql7mD23J] ttp://www.netdive.jp/asp.html
747 名前:nobodyさん mailto:sage [2009/08/02(日) 21:54:48 ID:???] ↑ これは便利だね
748 名前:nobodyさん mailto:sage [2009/08/02(日) 22:00:36 ID:???] 昔のASP?
749 名前:nobodyさん mailto:sage [2009/08/03(月) 00:39:33 ID:???] っつーかマルウェア検出されるんだけど
750 名前:nobodyさん mailto:sage [2009/08/04(火) 10:35:52 ID:???] 画面が重いとかクレーム付けられてンだけど、画面上にLabelとTextboxが5マンコも載ってりゃ 当然だろ常考。こっちは設計書に忠実に実装してるだけですが何か。 ページ切り替えとかの実装を要求されるンかなぁ。 更新系の画面でページ切り替えとか、考えることが増えてマジウザイんだけど。
751 名前:nobodyさん mailto:sage [2009/08/04(火) 10:41:59 ID:???] >>750 初心者乙
752 名前:nobodyさん mailto:sage [2009/08/04(火) 14:09:01 ID:???] 5万項目も入力&入力チェックする人間も大変だな
753 名前:nobodyさん mailto:sage [2009/08/04(火) 19:43:51 ID:???] Label+Textbox合わせて最大5マンコ位なんで、Textboxだけなら2マンコ位です。 横方向にTextBoxが40×Repeaterで500ループ、なので入力チェックの実装はそれほど大変では ないのですが、、、 実際に運用した際の入力の手間については考えていません。
754 名前:nobodyさん mailto:sage [2009/08/04(火) 20:38:23 ID:???] そういうのはグリッドで設計すべき
755 名前:nobodyさん mailto:sage [2009/08/04(火) 20:45:22 ID:???] text二万個分のViewStateやらポストやらとか考えたくもない でも設計に口出ししなかったんだから仕方ないな
756 名前:nobodyさん mailto:sage [2009/08/04(火) 21:24:45 ID:???] ちなみに何を入力させてんの? それがわからないと最適解はわからんよね NDAとかで具体的に話せないなら、似たような事例で
757 名前:nobodyさん mailto:sage [2009/08/04(火) 22:30:19 ID:???] >>754 グリードってGridView?あんまりGridViewを用いるメリットが思いつかない・・・ ちなみに、サンプルに良くある「行毎にある編集ボタンを押して編集モード、編集が終ったら行ごとの更新ボタ ン押下で再び参照モード」 って挙動は駄目なんで。 ユーザはあくまでExcelへの入力のごときフィーリングを求めてるみたい。 >>755 詳細設計から参加だから、もうどうしようもなかった。 ポストは、xmlに定義した内容を見て、Request.Paramsを分解してDataSetに突っ込むっていう部品を作っ たんであまり気にしてません。VIEWSTATEは・・・Sessionに突っ込んでるけど、恐ろしいサイズになってそう。 >>756 顧客情報。 1営業担当あたり500人程度を想定してるんで。
758 名前:nobodyさん mailto:sage [2009/08/04(火) 22:36:00 ID:???] わかりにくかったらすみません repeater全体にlinkbuttonつけたんですが、 そのどこかの行をクリックするとその行だけ詳細パネルが開いて、他の行もそのまま表示ってしようとしたところ、 パネルは開いたのですが元々あった一覧行が消えてしまいます 何が原因だと思いますか?
759 名前:nobodyさん mailto:sage [2009/08/04(火) 23:01:36 ID:???] Excelのごとき入力をしたい画面をWebでつくるという腐った提案ナイスだな。 Excelでいいじゃんって言ったらしばかれそうだなw
760 名前:nobodyさん mailto:sage [2009/08/04(火) 23:02:09 ID:???] >>757 どういう契約関係かわからんが仕様書段階で忠告があってしかるべき仕様だよな 仕様通りつくって運用上の問題が発生したのなら、当然、別料金で作り直しでしょ 仕様の設計者が社内の人間なら、泣く泣く作り直すしかないね。 設計者に飯でもおごってもらえw それはともかく、初めからマトリクス状に500行あるってこと? それともユーザを追加していくうちに最大で500行まで増えそうってこと? 前者なら設計が最悪、後者なら20行ごとにページングするしかないね。 各行ごとに編集や削除ボタンを設置しておけば、表全体に対して入力チェック する必要ないし、PostBackの容量も少なくて済むし。
761 名前:nobodyさん mailto:sage [2009/08/04(火) 23:07:32 ID:???] >>758 >repeater全体にlinkbuttonつけたんですが、 各行に1個のボタンを付けて、それをクリックすると行の詳細が、 パネル(パネルってなに?)に表示されるってことかな? んで、クリックするとなぜかそのクリックした行のデータだけ repeaterから削除されてるってこと? いまいちどういう動作をしてるからわからんので、 記述したプログラムをどこかにupもしくは 操作している最中の動きをスクショでとってどこかにup
762 名前:nobodyさん mailto:sage [2009/08/05(水) 00:32:56 ID:???] 能力の無い馬鹿ほど最初に予防線を張りたがるよねw 大抵が、パフォーマンスが出ないのは作りがしょぼいだけ。それを仕方ないと言い訳する屑。 googlemapみたいにアジャックスつかって、見えてる部分だけデータを拾ってくるようにして、スク ロールインした部分は随時データを拾ってくるようにすればいい。 これなら、画面上に見えてるコントロールの数はずっと少なく出来るし、レスポンスも工場する。
763 名前:nobodyさん mailto:sage [2009/08/05(水) 01:14:20 ID:???] 何いってんだか意味ワカンネ
764 名前:nobodyさん mailto:sage [2009/08/05(水) 01:27:35 ID:???] >アジャックス
765 名前:nobodyさん mailto:sage [2009/08/05(水) 01:41:38 ID:???] TextBox20000個より阿呆がいる
766 名前:nobodyさん mailto:sage [2009/08/05(水) 01:44:50 ID:???] >>762 やってみろよ。 見せてくれ。 作りがしょぼいだけってんだから簡単にできるんだろ。
767 名前:nobodyさん mailto:sage [2009/08/05(水) 01:49:29 ID:???] まもっとも、できるできないより問題はどんだけコストをかけるのかなんだけどな。
768 名前:nobodyさん mailto:sage [2009/08/05(水) 02:01:41 ID:???] 一方ロシアはページング機能を搭載したRepeaterコントロールを ASP.NET AJAXを使って実装した
769 名前:nobodyさん mailto:sage [2009/08/05(水) 02:39:30 ID:???] >>762 要件勝手に変えて何いってんだか
770 名前: [―{}@{}@{}-] nobodyさん mailto:sage [2009/08/05(水) 09:24:53 ID:???] >>758 ポストバックして一覧再描画してないって落ちじゃね?
771 名前:nobodyさん mailto:sage [2009/08/05(水) 11:29:00 ID:???] SharePoint Server Excel Services...
772 名前:nobodyさん mailto:sage [2009/08/05(水) 13:09:46 ID:???] >757 普通、OWC考えないか?
773 名前:nobodyさん mailto:sage [2009/08/05(水) 21:03:42 ID:???] >>757 つ jqGrid(JQuery Grid Plugin) つ UltraWebGrid(NetAdvantage)
774 名前:762 mailto:sage [2009/08/06(木) 00:52:33 ID:???] >>769 ハァ? 要件は全然変わってないだろ。馬鹿ですか?w
775 名前:nobodyさん mailto:sage [2009/08/06(木) 01:01:32 ID:???] >見えてる部分だけデータを拾ってくるようにして、スクロールインした部分は随時データを拾ってくるように って書いてなければ、勝手にそんな機能を実装してるわけで要件は変わってる
776 名前:762 mailto:sage [2009/08/06(木) 01:16:17 ID:???] 要件の定義と機能の設計の違いが分からない馬鹿しかいないの?
777 名前:nobodyさん mailto:sage [2009/08/06(木) 01:23:02 ID:???] 検索した時のスナップショットってのが必要かも知れんがな。 まあそれはおいといて早く作って見せてくれよ。 実装イメージでもいいぞ。
778 名前:nobodyさん mailto:sage [2009/08/06(木) 01:34:52 ID:???] 「要件」という言葉を、「(システム開発の)要件定義」のことだと、勝手に論理のすり替えして楽しい? >>757 は 「詳細設計から参加だから、もうどうしようもなかった。」って記述してるんだから、 すでに詳細設計書が存在してるわけで、この場合の「要件」とは、 その詳細設計書を実現するのに必要な条件のことでしょうよ。 >よう‐けん〔エウ‐〕【要件】 >1 大切な用事。「―のみ記す」 >2 必要な条件。「教育者としての―を満たす」
779 名前:nobodyさん mailto:sage [2009/08/06(木) 01:47:15 ID:???] そもそも、ブラウザの画面をスクロールさせて、コントロールが表示エリアに入ったことをフックできるイベントなんてあったっけ? 仮に出来たとしても、cssで非表示させてるだけならhtmlのファイルサイズの削減にはならないから軽くならないし、 ポストするデータサイズも同じだし、むしろスクロールする度にJavaScriptのイベントが発生するから、 ベタに表示させるより重くなるんじゃね? ASP.NET AJAXでスクロールするたびに動的にコントロールを生成するのなら、 初期に表示されるコントロールが少ないからhtmlのファイルサイズの削減にはなるけど、 スクロールさせるたびにサーバに問合わせてコントロールを表示させてデータを表示させるなんて、 物凄く遅くなるんでないかな。 さらにデータが変更されたテキストボックスが表示エリアから消えた場合、 それを復元する術がないから、非表示になったテキストボックスのデータも いちいちサーバにポストバックして保存しないといけない。 そんなことするなら、ベタに5万個のテキストボックスを表示させたほうが軽くないか?
780 名前:nobodyさん mailto:sage [2009/08/06(木) 02:03:42 ID:???] 簡単に実装するなら <iframe> を縦に並べてスクロールインしたときにページ単位でロードするだけでいい。 お前にも作れるよ。
781 名前:nobodyさん mailto:sage [2009/08/06(木) 02:16:18 ID:???] 複数行にまたがって変更する場合どうすんの?
782 名前:nobodyさん mailto:sage [2009/08/06(木) 02:21:31 ID:???] でそれはべたに作るより速いのかね?
783 名前:nobodyさん mailto:sage [2009/08/06(木) 02:30:15 ID:???] 50ページに分割したら最初にロードするのは1000個だけですむ。 遅くなる理由が見つからない。
784 名前:nobodyさん mailto:sage [2009/08/06(木) 02:31:02 ID:???] onscrollでスクロールされたイベントは発生するが、 どのコントロールが表示状態になったかは取得できないな 従って、絵に描いた餅 Flashかsilverlightなら可能だと思うが
785 名前:nobodyさん mailto:sage [2009/08/06(木) 02:35:15 ID:???] >>783 単にページ分けでいいじゃん
786 名前:nobodyさん mailto:sage [2009/08/06(木) 02:43:39 ID:???] 全件表示か、ページ分けしての表示なら問題ないが 1つのページに複数のページが表示されるのは機能的に問題 データはいつ削除されるか追加されるかわからないんだから、 最悪の場合、50ページすべての行に同じデータが表示される可能性がある そして後からデータが追加されて51ページ目が発生した場合にも対応できない。
787 名前:nobodyさん mailto:sage [2009/08/06(木) 05:47:17 ID:???] ページ分割というか、まあ1画面に表示する項目を絞れば早くはなるだろうな 後はAJAXなりで適当にスクロールしてるように見せかければいい >>786 そういったことを防ぐために排他制御って考え方があるんだが 機能的に問題かどうかは、ロックがどうなってるかによる 普通のWEBアプリに見られるような楽観的ロックなら問題かもしれないが 適切なロックがあれば問題ない そう考えると元の設計は、もしかするとロックするから 全項目を1画面に表示したいのかも知れない...と思ってみたがたぶん違うなw
788 名前:nobodyさん mailto:sage [2009/08/06(木) 08:19:08 ID:???] 楽観的排他制御じゃないロックなんて普通は最後の手段に近いけどな。 まずはセッションとかでどうにかならないか考えるだろ。 あと数を絞れば速くなるに決まってるなんて言ってるのがいるが、 ホントに試してみたのかい?
789 名前:nobodyさん mailto:sage [2009/08/06(木) 08:21:18 ID:???] 例えば一気に端から端までスクロールしてもまともに動くのか、 実は最初から全部読んだ方がスムーズだったなんてことはないのか。
790 名前:762 mailto:sage [2009/08/06(木) 09:46:36 ID:???] >>778 詳細設計から参加、つーたら、普通は詳細設計書を書くところから参加という意味だろ。 馬鹿なの?死ぬの?
791 名前:nobodyさん mailto:sage [2009/08/06(木) 13:11:14 ID:???] いいこと思いついた。スクーロルバーは標準のスクーロルバーじゃなくて、ボタンか何かを 配置して、画面上には常に固定のコントロールを配置。 で、スクーロル下をボタンをクリックしたら txtbox2の内容をtxtbox1に txtbox3の内容をtxtbox2に txtbox4の内容をtxtbox3に txtbox5には新規にDBから取得した内容を新規にセット ってやれば、画面上には常に一定数のコントロールしか表示されないし、PostBackerの処理 も簡単で一石二鳥じゃね?
792 名前:nobodyさん mailto:sage [2009/08/06(木) 14:01:14 ID:???] >>790 突っ込まれると思ったw 詳細設計時に存在するには内部設計書だな。すまんかった。 つーかいちいちプログラムと関係ないところのツッコミしかできないのかよ? 吐いた唾を飲み込むの?死ぬの? 唾飲み込むぐらいじゃしなねーけどwww
793 名前:nobodyさん mailto:sage [2009/08/06(木) 14:14:19 ID:???] >>787 Webアプリで1画面表示する間、ずっとデータベースをロックしろとでも? この場合、いつ最下部のページを表示する画面にスクロールかわからないから、 ページをみてる間はずっとロックかけてる必要がでてくるわけだが。 他人が使う可能性や、ブラウザのページの切り替わりの 可能性なんて考えたら、そんなロックは実用上不可能だろ。 結局、重複させない、または表示途中で削除されたデータに対応するには クライアント側(ポストバックかクッキー)かサーバ(セッション)でデータを持ち続け、 最終的に楽観的ロックで確認するしかない。 >>791 2万行あったら最下部までたどり付くのに2万回クリックすんの?ww そうなると100行単位とかのページ単位で切り替わるほうがいいんじゃね? それでも200回クリックじゃつらいから、10ページ前に戻る、10ページ後に進む的な ページングのボタンを設置したほうがいいんじゃね? そうなると>>768 で答えは既にでてる。
794 名前: [―{}@{}@{}-] nobodyさん mailto:sage [2009/08/06(木) 15:33:22 ID:???] ま、作る前にワーニング出さなかった君の負けだよ。 Ajax、XBAP、Silverlight、Flashなんでもいいから ユーザビリティーの良いのに作り直す事だね。
795 名前:nobodyさん mailto:sage [2009/08/06(木) 15:40:39 ID:???] キミちゃんと最初から読んでる?
796 名前: [―{}@{}@{}-] nobodyさん mailto:sage [2009/08/06(木) 15:51:43 ID:???] >>795 ああ、読んでるよ。 設計書通りに作ったんだろ。 設計書見た段階でこりゃ動かんわってわかってたんなら その段階で何かするべきなんだよ。 ちゃんとせんから余計な後戻りが発生するんだ。