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落ち?) あんまり需要ないのかもしれませんが。。。
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クラスになってて、 ページ名がクラス名になってるんだけど、 リネームしてもそのクラス名は変更されないから リネームしたことでページ名が重複しちゃったんじゃね?