1 名前:nobodyさん [2007/07/17(火) 23:49:46 ID:pyJr9yIy] ●過去ログ 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/
156 名前:nobodyさん mailto:sage [2007/09/25(火) 18:01:48 ID:???] >>155 単なるコンパイルエラーだと思うけど。 HelloWorldの中身の"("付近を見直してみれば。
157 名前:155 mailto:sage [2007/09/25(火) 18:24:50 ID:???] >>156 さん 反応どうもです [WebMethod] public string HelloWorld() { return "Hello World"; } これがWebMethodのコピペです, 間違ってはないと思うのですが MyServiceを参照する際, MyS まで入力して「Ctrl+Space」を押すと候補一覧に「MyService」が表示されるのですが. MyService ms = new MyService(); をした後 m まで入力して候補を探しても 「ms」 は見つかりませんでした. もちろん ms まで入力して「.」を押してもメソッド一覧が表示されませ. しかしオブジェクトブラウザでMyServiceを見たらHelloWorldメソッドが登録されているので, なんだかもうわからない状態です...
158 名前:nobodyさん mailto:sage [2007/09/25(火) 20:54:14 ID:???] localhost/MyService/Service1.asmx の場合 localhost.MyService ms = new localhost.MyService(); のように指定した気が
159 名前:153 mailto:sage [2007/09/25(火) 21:00:40 ID:???] >>154 サンクスです。 GetNameで取れました。
160 名前:155 mailto:sage [2007/09/25(火) 21:24:54 ID:???] >>158 さん はんのうありがとうです. usingを指定して,すでに名前空間は解決しているつもりでした. 名前空間と言えば [WebService(Namespace = "kaigen.org/" )] WebServiceで記述されているこれは使用するのでしょうか?
161 名前:155 mailto:sage [2007/09/26(水) 03:15:18 ID:???] 自己解決?しました WebServiceクラスを呼び出しているところを 普通のクラスファイルじゃなくて, Windowsフォームテンプレートを用いで作成したクラスからなら 呼び出せることがわかりました. 原因は不明ですが,とりあえずこれで動くので, これで作成しようと思います.
162 名前:nobodyさん mailto:sage [2007/09/26(水) 15:32:27 ID:???] 継承しているクラスくらい見ろよな
163 名前:nobodyさん [2007/09/26(水) 21:02:25 ID:yYWQHXI+] 次のようなイメージでTreeViewのノードを動的に追加できるASP.NET2.0 Webアプリを 作成したいと思っています(使用言語C#)。 ブラウザの左側にTreeviewを表示(例menu.aspx)し、上位ノードを右クリック して「新規作成」をクリックすると、新たなノードを作成するために必要な パラメタの入力を促すウィザードまたは入力可能なダイアログを表示する。 新たなノードを作成する際にパラメタとして、ノード名、DB名、Table名程度を 入力し(それ以外はシステムで決まっている値とする)、サブノードが出来上がる というかんじです。右側はGridViewでDBのテーブルを表示します。 左側(menu.aspx)をどうすればよいか悩んでいます。 参考になるサイトがあれば教えてください。またご存知であればご教授ください。 よろしくお願いします。
164 名前:nobodyさん mailto:sage [2007/09/26(水) 22:57:49 ID:???] >>163 技術が無いんなら「自分でできる」所までまずは 作りましょう。それから出来ない点のみを質問しましょう。 改造は必要だがこの辺を参考にしてください。 ttp://www.codeproject.com/aspnet/xtreeview.asp 自作するなら、Treeviewを表示→(右クリック→メニュ)→(ダイアログ)→ポストバック →Treeviewを更新で括弧以外簡単だと思うが。 リンクの右クリックメニューはライブラリあたりで、右クリック時にノード情報退避して、 ダイアログは別ウインドウかレイヤ(<div>タグにstyleでPOSITION:absolute)あたりで 表示させれば良いと思います。 面倒なら商用が色々とありますので購入してください。 ttp://www.componentsource.co.jp/products/telerik-rad-treeview/index.html
165 名前:nobodyさん mailto:sage [2007/09/26(水) 23:27:43 ID:???] >164 うわっ!スゴイ!!十分に参考になります。 codeproject.comは知っていましたが、辿り着けなかった・・・。 商用のものはすごいですね。資金がないため購入はできませんが とても参考になります。本当にありがとうございました。
166 名前:nobodyさん [2007/09/27(木) 05:38:58 ID:7u8fuvQl] テキストボックス内でキーボードのEnterを押したら、ボタンが押下されたようにしたいです。 テキストボックスのonkeypressでEnterを捕捉し、ボタンが押下されたときのサーバ側のイベントを呼ぶように クライアントスクリプトを書こうと思ったのですが、よく分かりません。 - サーバ側のイベント void btnExecute(object sender, EventArgs e){ //proc } - テキストボックスでEnerキーが押されたときにコントロールを指定してポストバックする <asp:TextBox 。。。 onkeypress="if(エンターキーが押された)__doPostBack('btnExecute');"></asp:TextBox> のようにすればいいのかな。と思ったのですがうまくいきませんでした。 クライアントコールバックではなく、単純にボタンを押されたときと同じにしたいのですが どのようにすればよいのでしょうか?
167 名前:nobodyさん mailto:sage [2007/09/27(木) 10:41:16 ID:???] >>166 <asp:Button>はUseSubmitBehavior="False"でない時、 HTML上は<input type="submit">で出力されますがこの場合 他のコントロールと異なり直接「__doPostBack」は呼ばれずに formのSu・・・・・・・・・めんどくせ。 興味があるんなら自分で調べてみてください。 で、UseSubmitBehavior="False"にして__doPostBackするなり ASP.NETのjavascriptのイベント処理で解決する事も可能だが 一番簡単なのはコントロールを直接クリックすればいいだけ。 .Net側 text.Attributes("onkeypress") に "aaa('"+ Button.ClientID "+)" javascript function aaa(objName) { if(エンターキーが押された) document.getElementById(objName).click(); } .Net側はHTML上のボタンのID名を取得の為に処理しているだけなので、 aspxの<asp:TextBox onkeypress="ここ"だけに入力したいとか言われそうだが それも可能なので調べてみてください。
168 名前:166 [2007/09/27(木) 22:07:24 ID:7u8fuvQl] 詳細な説明ありがとうございます。 ClientID=エレメントのIDなページ構成なので asp:TextBoxに onkeypress="if(エンターキーが押された) document.getElementById(''btnExecute').click();" で対応できました。 サーバ側でプログラムでJavaScriptを書くのってTry&Errorし辛くて不便ですよね スクリプト内部もタイプセーフ(JavaScriptセーフ?)に書ければいいのに。と思った。
169 名前:nobodyさん mailto:sage [2007/10/02(火) 00:54:30 ID:???] ASP.net2.0+AJAX.net2.0+C#で開発しています。 TreeViewについて質問させてください。 [質問内容] UpdatePanel内にTreeViewを配置した時にTreeViewのPopulateイベント で同一UpdatePanel内の別のコントロールに値をセットできません。 ViewStateも利用できない状態です。 他に、Populateイベントを有効にするとTreeNode以外のボタン押下時 イベントも同時に動いてしまうのも悩みです。 どなたか同じような問題を解決した方がいましたらご教示ください。 宜しくおねがいいたします。
170 名前:nobodyさん mailto:sage [2007/10/02(火) 20:58:52 ID:???] >>169 同一UpdatePanel内のPopulateイベントで Me.TextBox1.Text = e.Node.Text で試してみたがセットできるんだが。 まぁ、そもそも ttp://cs.gogo-asp.net/blogs/naoki/archive/2007/01/24/UpdatePanel-_B330F330C830ED30FC30EB300A4E67302952287567304D306A304430B330F330C830ED30FC30EB30_.aspx と言うように正確な情報も無ければ、解決には様々な要因が絡むパターンなので 関連する部分のソースでも無い限り答えるのは無理だけどね。 リンク先の対応策をよく理解してから自分で調べるといいと思います。
171 名前:nobodyさん mailto:sage [2007/10/02(火) 23:20:01 ID:???] >>170 ありがとうございます。 単純な事でしたが、EnableClientScriptがtrueになっている事が原因でした。 EnableClientScriptをfalseにする事でコントロールに値をセットする事や ViewStateに値をセットする事ができました。 今回はPopulateイベントで別のコントロールに値をセットするという仕様 でしたが、一度展開したノードではPopulateイベントが発生しなく なるため、2度目以降のノード選択時に別のコントロールに値をセット できなくなってしまったので、Expandedイベントを利用しました。 PopulateイベントからノードのPopulateOnDemandプロパティにtrueを 設定しても一度展開された扱いになってしまい現象変わらず。 (該当ノードを削除して再度同じノードを作成すればいいかも知れま せんが次にコードを見た人がつら過ぎるコードになるので実装せず)
172 名前:nobodyさん [2007/10/04(木) 14:17:51 ID:HVPnYgkb] PHPしかやったことないのですがASPをやろうと思ってます PHPユーザにお勧めの言語があれば教えてください UNIXが優位だったからPHPをはじめたのにいつのまにかWINDOWSに抜かれてるなんてorz
173 名前:nobodyさん mailto:sage [2007/10/04(木) 17:55:01 ID:???] PHPしかやったことが無い とか関係あるか分からないけど ASP.NETなら C#とJavaScriptやっとけばいいんじゃない?
174 名前:nobodyさん mailto:sage [2007/10/04(木) 22:00:36 ID:???] C#が解説とサンプル多くていいと思うよ。 VB.NETも同じくらい多いけど、言語的にはC#のほうがPHPに近い。
175 名前:nobodyさん mailto:sage [2007/10/05(金) 05:43:34 ID:???] PHP ≒ Java ≒ C♯ VB糞
176 名前:172 mailto:sage [2007/10/05(金) 15:38:56 ID:???] レスおそくなってすみません >>173-175 レスどうもありがとうございます C#のほうが近いとのことなのでC#でいきたいと思います 帰ったら開発環境とIISインストールして早速遊ぼうと思います
177 名前:nobodyさん mailto:sage [2007/10/06(土) 03:15:56 ID:???] パラメータソースとしてWebUserControlのプロパティを使いたいんだけど バインド画面のリストに表示するようにするには、どうしたらいい? 属性?それともインターフェイス?
178 名前:nobodyさん mailto:sage [2007/10/06(土) 11:40:13 ID:???] >>177 質問の意図が「プロパティを使いたい」のか「リストに表示したい」のか 分からんけどControlParameterのPropertyNameで選択したリストに 表示されなくても直接UserControlで作成したプロパティ名を入力すれば 使えたはず。 リストに表示したいと言うのも出来たはず。 おれは動的にControlParameterを発生させるので、ど忘れして思い出せない。 って、事でこのスレの詳しい人に任せます。
179 名前:177 mailto:sage [2007/10/06(土) 22:11:06 ID:???] >178 thxです。コレ手書きOKなのね。 さらにリストから選択できれば言うことないので、誰かヒントお願いします。 ちなみに Control にしたとき、下記のようにコントロール名が2行づつ表示されるのは常識なんですか? GridView1 GridView1
180 名前:nobodyさん mailto:sage [2007/10/06(土) 23:14:35 ID:???] WebUserControlのイベントってデザイナで指定できないのですか?
181 名前:nobodyさん mailto:sage [2007/10/07(日) 00:39:00 ID:???] だれかエスパーを
182 名前:nobodyさん mailto:sage [2007/10/07(日) 02:05:08 ID:???] >>180 プロパティウィンドウの使い方が分かってないんじぇね? プロパティウィンドウ最上部の雷マークで切り替えてイベント追加できるから
183 名前:nobodyさん mailto:sage [2007/10/07(日) 23:25:26 ID:???] WebUserControl使ったことあるやつなら >>180 が言ってることわかるだろ。 ちなみにC#な。
184 名前:nobodyさん mailto:sage [2007/10/07(日) 23:30:53 ID:???] わかるんなら答えてやれよw
185 名前:180 mailto:sage [2007/10/07(日) 23:47:37 ID:???] >>181 >>182 説明がわるくてすみません。 自作のWebUserControlをWebFormに貼り付けると、イベント・プロパティとも プロパティウィンドウに表示されません。(雷ボタンも表示されない) ちゃんとpublicプロパティやイベントは書いてます。 >>183 ということはC#ではできないのですかね?
186 名前:nobodyさん mailto:sage [2007/10/08(月) 03:27:19 ID:???] ああ、ユーザーコントロールの枠で選択されちゃって、個々のコントロールが操作できないやつね。 あれはだな、・・・
187 名前:nobodyさん mailto:sage [2007/10/08(月) 16:21:04 ID:???] ↑なんか概念的に間違ってるぞおまえ
188 名前:nobodyさん [2007/10/13(土) 12:20:47 ID:cIDXI8N9] 初歩的な箇所で申し訳ないのですが質問させてください ASP1.0でフォーム認証を試そうとして↓をWeb.Configに <authentication mode="Forms" > <forms loginUrl = "login.aspx" /> </authentication> <location path="checkout.aspx"> <system.web> <authorization> <deny users="?" /> </authorization> </system.web> </location> を追加したのですが”構成セクションlocationを認識できません”とエラーになります 何が原因でしょうか
189 名前:nobodyさん mailto:sage [2007/10/13(土) 15:53:32 ID:???] >>188 単純に、locationが認識できないと言う時のエラーだから、 location要素の書く位置間違ってるんじゃねーの? configurationの直下に書いてるか? とりあえずは、Web.Configを省略せずに書いてもらわんと分からん。
190 名前:nobodyさん [2007/10/13(土) 20:41:18 ID:cIDXI8N9] >>189 Web.ConfigのXML自体あまり理解できていないと思うので答えが曖昧かもしれませんが 一応<configuration>のステートメント内には収まっていると思います <?xml version="1.0" encoding="utf-8" ?> <configuration> <system.web> <compilation defaultLanguage="c#" debug="true" /> <customErrors mode="RemoteOnly" /> <authentication mode="Forms" > <forms loginUrl = "login.aspx" /> </authentication> <location path="checkout.aspx"> <system.web> <authorization> <deny users="?" /> </authorization> </system.web> </location>
191 名前:190続き [2007/10/13(土) 20:45:39 ID:cIDXI8N9] <trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" /> <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;user id=sa;password=" cookieless="false" timeout="20" /> <globalization requestEncoding="utf-8" responseEncoding="utf-8" /> </system.web> </configuration>
192 名前:188 [2007/10/13(土) 20:53:54 ID:cIDXI8N9] >>189 できました! 本当にconfiguration”直下”なんですね ご教示有難うございます。 どちらにしても、このXML自体あまり理解できていないようなので 勉強しなおしてみます。
193 名前:nobodyさん mailto:sage [2007/10/13(土) 21:04:39 ID:???] >>190 <?xml version="1.0" encoding="utf-8" ?> <configuration> <system.web> <compilation defaultLanguage="c#" debug="true" /> <customErrors mode="RemoteOnly" /> <authentication mode="Forms" > <forms loginUrl = "login.aspx" /> </authentication> <trace ・・・ /> <sessionState ・・・ /> <globalization ・・・ /> </system.web> <location path="checkout.aspx"> <system.web> <authorization> <deny users="?" /> </authorization> </system.web> </location> </configuration> VS2005だから.net2.0でしか確認できんけど、で、いけると思う。 locationの配下に無い<system.web>はサイトルートを含む全ての ファイルとフォルダに対する指定だから<location path="ルートパス">が 指定されてる意味になるから、その中に<locationが入れ子されると 意味不明な指定になる。
194 名前:nobodyさん mailto:sage [2007/10/13(土) 21:06:25 ID:???] 更新していなくて余計なレスしちまった。
195 名前:195 [2007/10/15(月) 04:26:21 ID:1vOjoM00] 環境は以下です。 VS2005 VB.net ASP2.0(だと思います) なぜか*.aspxの他に自分で追加した*.vb内のClass内で"テスト"のように「""」で括った文字列が 文字化けの状態で変数に格納されてしまい困っています。 ファイル名:Class1.vb Imports Microsoft.VisualBasic Public Class Class1 Public Function func() As String Return "テスト" End Function End Class ファイル名:default.aspx Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim s As String s = "テスト" Diagnostics.Debug.WriteLine(s) Dim cls As Class1 = New Class1 Diagnostics.Debug.WriteLine(cls.func()) End Sub 出力内容 テスト ?e?X?g
196 名前:195 [2007/10/15(月) 04:27:11 ID:1vOjoM00] 「?e?X?g」が文字化けでなぜか「テスト」と表示されないので悩んでいます。 前提条件としてDBにアクセスするためDataSet1.xsdがプロジェクトに追加してあります これに付随してweb.configに以下の内容を追加してあります 追加内容:<globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8"/> 理由:DataSet1.xsdを作成するとコンパイルエラーが発生したため コンパイルエラーの内容:エラー 1 入力 xml ファイルの内容を DataSet に変換できません。名前の先頭に '0' (16 進数値 0x30) を使用することはできません。 行 32、位置 168 です。 C:\Users\***** プロジェクトからDataSet1.xsdを削除し、関連コードを削除し実行すると文字化けはなくなりますが、 DBを使用するためそれはできないです。 また、default.aspx内にClass1の定義を貼り付けたら問題なく表示されますが、 なぜか別ファイルに分離(Class1.vb)すると文字化けします。 まとめますと上記のサンプルコードは単体では再現せず、 DataSet1.xsdにテーブル定義を追加し、コンパイルエラー回避のためglobalizationを追加すると再現するようになります。 この状態ですと自分で追加した*.vb内でDim s As String="テスト"をすると sに文字化けしたものが格納されます。 1週間ほど悩みましたが全く進展がなく暗礁に乗り上げました。 ご存じの方お教えいただけませんか? よろしくお願いします。
197 名前:nobodyさん mailto:sage [2007/10/15(月) 06:28:13 ID:???] fileEncoding="shift_jis" にすると解消するというオチでは。。。 globalization requestEncoding="utf-8" でググったら最初に出て来た。
198 名前:nobodyさん mailto:sage [2007/10/15(月) 12:31:20 ID:???] >>195 なにも理解せずにデータセット「.xsd」の不具合対策を入れたんだろうな。 <globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8"/> VB.NETの場合、.aspxや.aspx.vbは(デフォルトなら)HTMLをUTF-8で出力する 関係上、文字コード「UTF-8 BOM付き」で保存されるんだが、「新しい項目の追加-クラス」で 追加された「Class1.vb」は、文字コード「Shift-JIS」で保存されます。 (「新しい項目の追加-クラス」の「Shift-JIS」はVSのバグっぽいが) このように.aspx.vb「UTF-8 BOM付き」、Class1.vb「Shift-JIS」と文字コードが混在していても 通常は動作する時に文字コードを自動判別するので問題は起きないのですが、 <globalization fileEncoding="utf-8"/>を追加すると、プロジェクト内の全てのファイルを「utf-8」 で読もうとする為、当然「Shift-JIS」で保存されているClass1.vbの2バイト文字は化けます。 余談だが、レコードセット「.xsd」の不具合の方もこれに若干似ていて、「UTF-8 BOM無し」で保存 されるから日本語のフィールドやテーブル名があると起きる。 上記から導き出せる解決策 1.globalizationで「.xsd」の不具合修正を追加したまま「Class1.vb」を「UTF-8 BOM付き」にする。 2.globalizationを削除して、「.xsd」を「UTF-8 BOM付き」で保存する。 3.globalizationを削除して、「.xsd」と「Class1.vb」を「UTF-8 BOM付き」で保存する。 他にも方法はあるがこの中から選べばいい。 (「.xsd」はShift-JISで保存でも解決したり) 文字コードの変更方法は、テキストエディタでも良いしVSからなら 該当ファイルを開いて「ファイル-名前をつけて保存-保存ボタン右の▼-エンコードつきで保存-エンコード」
199 名前:195 mailto:sage [2007/10/16(火) 21:26:18 ID:???] >>197 >>198 おかげさまで無事解決しました。 対処としては >2.globalizationを削除して、「.xsd」を「UTF-8 BOM付き」で保存する。 これを選択しました。 >3.globalizationを削除して、「.xsd」と「Class1.vb」を「UTF-8 BOM付き」で保存する。 こちらについては globalzationを消し去ったことでClass1.vbのShift-JISを自動認識して読み込んでくれているから だと思うのですが特にUTF-8 BOM付きに変換しなくともく正常に動作しました。 ありがとうございました。
200 名前:nobodyさん mailto:sage [2007/10/17(水) 00:16:33 ID:???] >>199 悪い行数制限に引っかかりそうだったので省略したが、なんでわざわざ「3.」の 選択肢も書いたかと言うと、C#だと「新しい項目の追加-クラス」で作成したファ イルはデフォルトで「UTF-8 BOM付き」になる。 マイクロソフトが不具合と認めている報告は今の所見つからないが。 レコードセット「.xsd」の「UTF-8 BOM無し」はC#でもVBでも起きる問題をマイクロ ソフトは不具合と考えているぽい。 で、ここから考えるにVSの動きとしては基本的にファイルを「UTF-8 BOM付き」で 保存する動きなので、そう言った面を気にするならって事で「3.」を追加した。 とりあえず動作する事が目的なら >globalzationを消し去ったことでClass1.vbのShift-JISを自動認識して読み込んでくれているから >だと思うのですが特にUTF-8 BOM付きに変換しなくともく正常に動作しました。 この理解で問題ないと思います。
201 名前:195 mailto:sage [2007/10/17(水) 01:45:19 ID:???] >>200 なるほど。 なんで >3.globalizationを削除して、「.xsd」と「Class1.vb」を「UTF-8 BOM付き」で保存する。 の選択肢がわざわざ用意されているのかと疑問に思っていました。 要約すると ・vbで「新しい項目の追加-クラス」で作成されたファイルのエンコードが既定が「Shift-JIS」であり C#の場合は「UTF-8 BOM付き」であること ・今後の流れとしてはおそらく既定が「UTF-8 BOM付き」で保存する流れであることから 「UTF-8 BOM付き」で保存するのも吉 ということですね。 現在わかっている不明な動作としては ・VBとC#で「新しい項目の追加-クラス」での保存形式が違う ・「.xsd」が「UTF-8 BOM無し」で保存される であり、上の2つは不具合、もしくは不具合に近い動作であり、なぜかを追求する必要はなく、 とりあえず>>199 の方法で対処だけしておけばよい。 ですね。 非常に参考になりました。 間違っている部分がありましたら指摘していただけるとありがたいです。
202 名前:nobodyさん [2007/10/17(水) 13:59:27 ID:ZhgS5P3I] 検索エンジンの検索窓みたいに(キーワードの間に空白を入れてAND検索とか)という機能を持つ検索ボックスを使いたいんですけど、この場合、自前でキーワードを解析してSQL文を組みてる必要がありますか?
203 名前:nobodyさん mailto:sage [2007/10/17(水) 16:28:04 ID:???] >>201 その認識で良いと思います。 マイクロソフトの正式な回答では無いのでどれを 選択するかは自由ですが。 >>202 結論から言えば自前だね。 そもそも、検索エンジンの空白でAND検索って形態素解析の ほんの一概念でしかないのに「とか」と言われても。 とりあえず、空白でAND限定なら入力された文字列を Split関数で配列化してForEachで回して各文字列の頭に「AND フィールド名=」 を付加してwhere作ればすぐ出来ると思う。
204 名前:195 mailto:sage [2007/10/18(木) 01:37:25 ID:???] >>203 了解です、 細かな解説ありがとうございました。
205 名前:nobodyさん mailto:sage [2007/10/18(木) 21:03:24 ID:???] ASP.NET2.0, VisualStadio2005,C# or VB.NETを使ってます。 GridViewでデータを表示し、編集ボタンクリック。 編集モードで更新ボタンクリックして更新中にエラーが発生したら その趣旨メッセージとOKボタンのダイアログボックスを表示。 意外とサンプルが見つからず。どなたか教えてください。
206 名前:nobodyさん mailto:sage [2007/10/18(木) 22:25:05 ID:???] サーバーサイドで動いてるのにダイアログボックスて。 JavaScriptとかでポーリングするつもりかい。
207 名前:nobodyさん mailto:sage [2007/10/18(木) 23:01:54 ID:???] >>205 if (エラー時) { page.ClientScript.RegisterStartupScript(page.GetType(),"ErrorAlert", "alert('エラー');", true); } で処理を抜けて、画面に描写を行わせればJavascriptが動いてメッセージボックスが 表示される。
208 名前:nobodyさん mailto:sage [2007/10/19(金) 20:42:03 ID:???] >207 ありがとう。 おかげさまで調べやすくなりました。 そのままでは動かなかったけど、次のように書いたらOKとなりました。 ScriptManager.RegisterStartupScript(Me.Page, Me.GetType(), "ErrorAlert", "window.alert('エラーだぴょん!');", True)
209 名前:nobodyさん mailto:sage [2007/10/19(金) 21:53:35 ID:???] >>208 悪い。間違ってた。 C# ClientScript.RegisterStartupScript(this.GetType(), "ErrorAlert", "alert('エラー');", true); VB ClientScript.RegisterStartupScript(Me.GetType(), "ErrorAlert", "alert('エラー');", True) だったわ。 つうか、ScriptManagerってAjax利用してるのか? ついでだから教えとくけど、ScriptManagerはAjaxのScriptManagerコントロール がある時しか認識しないぞ。 動作的には簡単に言うと ScriptManager.RegisterStartupScriptはajaxの非同期通信直後とページ描写時に javascriptが吐き出される。 ClientScript.RegisterStartupScriptはページ描写時にjavascriptが吐き出される。 って感じだからタイミングによって使い分ける必要がある。 詳しくは自分で調べてみるといいよ。 Ajax非同期通信後に
210 名前:nobodyさん [2007/10/20(土) 16:11:30 ID:bogh6jgR] スタンドアロン環境でAP開発して、ファイルコピーにて アプリケーションを配置したのですが、初回起動時毎回 すごい時間がかかります。(=コンパイルされている様子) どの点を見直せばよろしいでしょうか? 2003Server ASP.NET2.0
211 名前:nobodyさん mailto:sage [2007/10/20(土) 17:30:47 ID:???] 事前コンパイル
212 名前:nobodyさん mailto:sage [2007/10/20(土) 18:59:16 ID:???] >>210 ASP.NET コンパイルの概要 msdn2.microsoft.com/ja-jp/library/ms178466 (VS.80).aspx 自動コンパイル(動的コンパイル) メリット: ソースをコピーすればいい。 ソースを配布先でテキストエディタも修正できる。 デメリット: 初めて要求時にコンパイルされる時間が掛かる。 埋め込み先コンパイル メリット: ソースをコピーすればいい。 ソースを配布先でテキストエディタも修正できる。 初めて要求時にコンパイルされる時間が掛からない。 デメリット: ソースの一部でも修正したらコマンドラインで動的コンパイル時に発生するコンパイルと同じコンパイルを実行しなければならない。 事前コンパイル (更新不可能な完全プリコンパイル・更新可能なプリコンパイル) メリット: 初めて要求時にコンパイルされる時間が掛からない。 ソースを隠蔽する事が可能。 全ての画面を単一のDLLにするなどが可能。 更新可能なプリコンパイルなら、aspx、.ascxのみ変更可能。 デメリット: windowsアプリの様にソースと配布用の実行ファイルを分けて管理などを考える必要がある。 簡単な説明するとこんな感じ。 詳細は上のURLで理解したうえで、自分で選んでください。
213 名前:nobodyさん mailto:sage [2007/10/20(土) 19:51:27 ID:???] しかし起動時にすごい処理してるってオチがあったりして…
214 名前:nobodyさん [2007/10/20(土) 21:46:20 ID:bogh6jgR] >>212 参考になりました。ありがとうございます!!!
215 名前:nobodyさん mailto:sage [2007/10/20(土) 22:07:26 ID:???] >>214 >211にも何か一言くらい...
216 名前:nobodyさん [2007/10/20(土) 22:10:10 ID:jIqTRPXl] ASPはわからない部分が多いので教えてください。 こういうのを作っています。 ・フレームで画面を上下に分割 ・上部に検索条件を指定するための入力フォームと検索ボタン ・下部にObjectDataSourceとGridView 上部で指定された条件を元にSQLのWHERE文を作成し、下部に渡したいと思っています。 こういう時はどういう処理が一般的でしょうか? 今のところ考えているのが上部で作成したWHERE文をセッション変数に格納し、 下部のDataSourceのSelectedMethodで指定しているメソッドの中で If セッション変数 <> String.Empty Then sql = sql & "WHERE" & Chr(13) 〜ここで条件を追加〜 End If みたいにして条件を追加しようと思っています。 これが動作するかどうかは試せばすぐわかると思うのですが 一般的な処理の方法がこんな感じで合っているか気になります。 いかがでしょうか?
217 名前:nobodyさん mailto:sage [2007/10/21(日) 01:32:40 ID:???] フレームなんか使うな。
218 名前:nobodyさん [2007/10/21(日) 01:52:59 ID:1pk3RmdZ] せっかくのPostbackなんだから単一画面でしょう
219 名前:nobodyさん mailto:sage [2007/10/21(日) 10:05:16 ID:???] フレーム使わないでテーブルにぶち込むとか、<hr>で区切るとか汁!
220 名前:216 mailto:sage [2007/10/22(月) 00:25:54 ID:???] >>217-219 とりあえず今回は上記の方法を採用しました。 動作としては今のところ問題ないようですのでこのままいきます。 ちなみになぜフレームを採用したかというと画面上部のフレームは 検索条件を指定する画面を表示するのですが 簡易検索条件入力フォームと詳細検索画面を切り替え、且つ、 下部は共通したGridViewを使用したかったためです。 ありがとうございました。
221 名前:nobodyさん mailto:sage [2007/10/22(月) 01:51:40 ID:???] 今回は仕方無いにしても,今度はフレームを利用せずに それらを実現できるように成長することを期待。
222 名前:216 mailto:sage [2007/10/22(月) 03:32:30 ID:???] >>221 ケースバイケースケースで 上部のフレームの中身を差し替えることで 検索条件の指定方法を変えたいと思いフレームを採用しましたが、 そこまでフレームを非推奨なのにはなにかわけがあったりしますか? 今回は切り替えと、常に上部に表示させておきたいということで フレームを採用しましたがそこまで否定派が多いとちょっと気になります。
223 名前:nobodyさん mailto:sage [2007/10/22(月) 13:18:05 ID:???] >>222 フレームについては宗教論争的な部分もあるんで他人から 強制させられるよりも自分で見つけたほうがいいよ。 とは言っても、あれなんで簡単に ・W3Cはframeに対して否定的な動き。 ・1つのURIに1つの情報と言うのが理想的である。 ・ユーザビリティ的にも、セキュリティ的にも低下する恐れがある。 ttp://java-house.jp/~takagi/paper/iw2002-jnsa-takagi-dist.pdf ・SEO関係の話 ・完全ではないにしても(i)frameのメリットである「情報の部分再描画」はajaxで「スクロールによる表示箇所の分離」はcssで出来る。 とか色々、どれも否定する決定的な要因は無いのだが利用している側は大抵が「なんとなく」で使ってる場合が 多いので否定的な意見されるのが現実です。個人的には、上記のような事を理解した上で、デメリットを解決したり 無視できる状況を作り「フレームを使う」事によってしか生まれないメリットを追求する意思があるのならいいと思う。 上記は、HTML上の話だけだが更にASP.NETでフレーム開発になると以下が追加される。 ASP.NETのフレームワーク基本概念「postback」や「ViewState」は同一ページ内の処理を基本と するため相性が悪い為、VS2003では選択できたフレームセットのテンプレートはVS2005では無くなりました。 VSから作れないだけでテキストエディタなどで作成することは可能ですが、別フレーム間の操作やデータ参照で トラブルまたはASP.NETで作成する意味が無くなる場合があります。 ttp://karua.at.webry.info/200607/article_12.html ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=25167&forum=7&start=8&15 これを解決するにはHTML・CGIの知識とあわせてASP.NETの「イベント関係の理解」・「postbackやViewStateの内 部的な動き」「動的に作成されるJavascriptの理解」など通常フレームワークで隠蔽されている部分の知識が必要に なる場合がほとんどです。 で、大抵ASP.NETでframeを使った際のトラブルなんて特殊な状況を想定できる人は少ないので、Webで質問しても レスを貰う事も難しくなります。
224 名前:nobodyさん mailto:sage [2007/10/22(月) 13:43:34 ID:???] >>214 追加だが 現在、「自動コンパイル」で遅いと思っていて手軽に解決するなら 「埋め込み先コンパイル」が一番簡単です。 cd /d C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 Aspnet_compiler -v /仮想ディレクトリ名 -errorstack を2003Serverのコマンドプロンプトで流せば全てのファイルに 自動コンパイルを行った状態になります。
225 名前:nobodyさん mailto:sage [2007/10/22(月) 22:58:44 ID:???] あとセッション使うと単純にやると各フレームで同時処理できないからそれも注意がいるかもよ。
226 名前:nobodyさん mailto:sage [2007/10/23(火) 00:43:07 ID:???] >>225 どういう意味でしょうか?
227 名前:216 mailto:sage [2007/10/23(火) 01:51:24 ID:???] >>223 なるほど。 >>W3Cはframeに対して否定的な動き 盲目的に信じるのもあれですがW3Cが推奨しないということは やはりそれなりの理由があるんでしょうね。 >>VS2003では選択できたフレームセットのテンプレートはVS2005 2005でなくなっていてびっくりしました。 やはりVSとしても推奨しない動きなんでしょうね。 今回とりあえずフレームで実装したのですが変更した方がよいでしょうね。 だとしたら>>216 >>220 に内容は書きましたがフレームを使用することで 画面上部に検索条件入力フォームを「常に」表示させていたのですが これをフレームを使用せずに用件を満たす必要があります。 フレーム無しで画面上部に常に表示させていたいコントロールを配置する場合 どうすればよいでしょうか? 常に表示させておく必要がなければvisibleあたりを制御するだけでよいのですが。。 >>225 これは>>226 さんと同じく気になります。 どういう意味でしょうか?
228 名前:216 mailto:sage [2007/10/23(火) 02:32:53 ID:???] すみません全く別の質問よいでしょうか? 検索結果一覧の画面を作成するためにどのコントロールを採用すればよいかお教えください。 目的は以下のサイトのようなビューです。 ttp://www.st-image.com/12/13/itemlist.aspx ・ページングあり ・単純な行での一覧表示ではなく、横→縦にデータが並んで表示される 試したこと ・GridView 横に並んで表示できない ・DataList 自前でページング処理を記述する必要があり ・DetailsView & FormView 1レコードずつしか表示できない 一件DataListでもなんとかなると思うのですが自前で毎回全件を取得しないように気をつけたページング 処理を記述する必要があると言うところが腑に落ちません。 DataViewですとObjectDataSourceとObjectDataSourceのSelectedMethodを連携させることで ページング処理を簡単に書くことができます。 なのにDataListでわざわざ自前でページング処理を書かなければならないというのが違和感です。 こういうサイトはどのようなコントロール&処理を実装しているのでしょうか?
229 名前:nobodyさん mailto:sage [2007/10/23(火) 11:13:34 ID:???] >>227 まず、海外も含めてインターネット上で公開されているWebサービスで上部にボタンなどが固定されている 実例が少ないことを考えれば固定する必要がなくても使いやすいシステムはできると言うことを念頭に置くべきです。 「画面内に必要な情報を集める」とか「検索処理をした後に検索のテキストボックスが常に見えている必要があるのか?」とか それでも固定することにメリットがあると思うのならCSSで[overflow:autoとかposition:fixed(IE6対応にはjavascriptが必要)] ttp://msdn2.microsoft.com/ja-jp/library/default.aspx (リキッドレイアウトにも対応) は、数ある方法の無難な良い例になるので自分で解析してください。 Firefoxにfirebugアドオン入れれば解析も楽なはず。 もしくは、前のレスで言った「フレームを使う」事によってしか生まれないメリットを追求する。 各画面に同じレイアウト書かなきゃならんと言う開発側の問題はVS2005ならマスターページで解決する。 >>228 ObjectDataSourceを使ってる場合、GridViewだろうとページングの見た目は作成されるが処理は自前だけど。 SqlDataSourceなら処理部分まで自動で処理してくれるが、ボトルネックとか拡張性に問題があるので使い道はあまり無いが。 >処理を記述する必要があると言うところが腑に落ちません。 ASP.NETは魔法の杖じゃないから、普通にCGIで考えれば「必要な件数をDBから取得して」「必要な件数を表示する」と言うの は当然でGridView+DataSourceはそれを処理しやすくなっているに過ぎないし。 だから、技術が無い・手軽になら既存のコントロールをベースにデザインを考えるしかない。 逆なら、クラスを継承するなり、カスタムコントロールなりで拡張すればいいだけ。 フレームワークの基本だと思うんだけどね。 1.ページング表示部を自作してDB検索してDataTableを作って「Repeater」コントロールで<div style="float:left;">を出力もしくは DataListのDataSourceにDataTableを設定まで自分で作る。(中途半端にDataSourceなどの繋ぎに拘ると面倒になるので) 2.DataListを拡張(ユーザコントロール、カスタムコントロール)してDataSourceと連動するように作る。 (ググればカスタムコントロールを作っている人も良そうだが)
230 名前:nobodyさん mailto:sage [2007/10/23(火) 11:57:47 ID:???] Javascriptでaspを呼び出すことはできるのでしょうか。 Javascriptでクッキー処理 −引数つけてASP呼び出し→ ASP処理 → ASPでJS書き出し という感じのことをやりたいのですが。
231 名前:230 [2007/10/23(火) 11:58:30 ID:35vpnyji] age忘れましたすみません。
232 名前:nobodyさん mailto:sage [2007/10/23(火) 13:19:48 ID:???] >>230 引数つけてASP呼び出し location.href('www.aaa.aspx?a=1 ') 他は省略 >Javascriptでクッキー処理 −引数つけてASP呼び出し→ ASP処理 → ASPでJS書き出し ってか、この各処理は同一のaspxでの話しを想定してるの? クッキー処理はASPへのデータ引渡しの為に使うの? つうか、ASP.NET以前に、「HTMLとCGI」の値の受け渡しに利用しようとしているんであれば クライアントとサーバの切り分けが出来ていないように感じるんだがその辺は大丈夫? そう感じた理由に「本来ならPostを基準にデータを取得する所をPostデータの管理を便利にする為 にCookieを利用している」と切り分けが出来てるなら、ASP.NETの基本概念を見ればどの様に変化 したかがわかると思うんだよね。
233 名前:216 mailto:sage [2007/10/24(水) 00:36:46 ID:???] >>229 ・フレームについて 回答ありがとうございます。 >検索処理をした後に検索のテキストボックスが常に見えている必要があるのか? 通信販売等のサイトで使い勝手を確認したところおっしゃるとおり「ない」です。 常に見えていないことが特に気になりませんでした。 急遽フレームを使う仕様を変更しました。 ご指摘ありがとうございました。 ・ページング処理可能なビューについて GridView+ObjectDataSourceがページング処理を記述しなくてもよいという表現は誤りでした。 おっしゃるとおりデータ取得部分は自前です。 GridView+ObjectDataSourceがページング処理の見た目の処理を備えていたので 他にもこういう機能がないのかと思ったのですが甘かったみたいです。 手軽に、というのも理由の一つですが堅実なものを作成したいので既に備えている機能をわざわざ 実装するのは避けたかったため質問させていただきました。 素直に自作します。 今回は「2.DataListを拡張〜」を行いたいと思います。 Webに関しては特にわからない部分が多いため質問のレベルも低いかもしれませんでしたが、 重ね重ねありがとうございます。
234 名前:216 mailto:sage [2007/10/24(水) 02:25:50 ID:???] 当初>>216 にてお尋ねしましたが フレームは使用しなくなったことで別フレームへ動的に作成されたWHERE区を 渡す必要はなくなりましたが、 以前と同じくWHERE区をObjectDataSourceのSelectedMethodで指定された メソッドに渡す必要があります。 以前は別フレームに文字列渡すから仕方なくSession変数に複数の条件から作成した WHERE区を入れておいて、ObjectDataSourceのSelectedMethodで指定された メソッド内でFill()する前にSession変数から取り出せばよいと考えていたのですが、 同じページ内のコントロールからWHERE区を作成するだけなのにSession変数を 使用するのに違和感を感じてきました。 もっと簡潔な方法ありませんか? ・フレームは使用していない単一ページ ・検索ボタンは検索したい方法が2つあるため、ボタンが二つある (TextBox1つと検索ボタンで構成されたALLサーチ機能と細かい条件を指定するための多数の入力コントロールと詳細検索ボタン) ・SelectedMethod内でWHERE区を動的に作成しようとするなら、どちらのボタンが押されての検索かわからないため、 SelectedParameterに全ての入力コントロールをずらずらと並べることはできない SelectedMethod内でどちらのボタンが押されての処理か判断できないと思われるため ・ボタンのイベントでそれぞれ動的にWHERE区を作成し、Session変数に格納し、 SelectedMethod内で受け取るという処理はトリッキーな方法に感じる 本件はSession変数を用いてデータの受け渡しをすることが一般的な処理方法でしょうか? 勉強で作成していますので動けばいい、というものを作ることはできないため 確認させてください。 「ObjectDataSource SelectedMethod 動的 WHERE」辺りの検索ワードでは 今回のケースにあたるような情報を見つけ出すことができませんでした。。
235 名前:nobodyさん mailto:sage [2007/10/24(水) 02:28:26 ID:???] >>225 同一セッションのリクエストは直列化されるってことだよ。
236 名前:nobodyさん mailto:sage [2007/10/24(水) 03:00:01 ID:???] フレーム分割することによりユーザービリティが低下することって考えられないけどねぇ・・・。 検索エリアを固定を常表示することで解決できるけど、それならFrameでいいじゃんと思んだけど・・・。 あらゆる場面を検証したW3Cに反論する気はないけど、規約に反するからって単一画面で描画の 遅いメニュー表示されたら余計にイライラするけどwww
237 名前:nobodyさん mailto:sage [2007/10/24(水) 12:38:49 ID:???] >>234 1.SelectMethodに全ての条件+処理フラグの引数を作る。 2.SelectedParameterに項目+ボタン区別用のhiddenをControlParameterとする。 3.ボタンを押されたらASP側のクリックイベントでhiddenにフラグをセットする。 4.ObjectDataSourceの中身で処理フラグによって処理を分ける。 「2.」「3.」はSelectParametersをasp:Parameterにしておいて動的に変更すれば hidden項目自体要らない。
238 名前:nobodyさん mailto:sage [2007/10/24(水) 16:35:10 ID:???] 質問者に対する回答でもなくて、 ユーザービリティを自分が経験した事だけでしか想像できなくて、 わけ分からん描画の遅い早いを持ち出す、 的外れてる奴が出てきたなと。
239 名前:nobodyさん mailto:sage [2007/10/24(水) 23:22:33 ID:???] お前ら全員死ねよ
240 名前:nobodyさん mailto:sage [2007/10/24(水) 23:27:23 ID:???] 過激なやつだ…
241 名前:nobodyさん mailto:sage [2007/10/25(木) 21:16:47 ID:???] お前ら全員愛してる
242 名前:nobodyさん mailto:sage [2007/10/25(木) 21:39:46 ID:???] キスして
243 名前:nobodyさん mailto:sage [2007/10/26(金) 00:57:34 ID:???] 屁こいてやったぜ
244 名前:nobodyさん mailto:sage [2007/10/26(金) 15:36:23 ID:???] MSDN2みたいに、メニューバーエリアを選択したら、そのメニュー項目が Popupメニューのようにフェードイン・フェードアウトして一覧表示される にはどうすればよいですか?
245 名前:nobodyさん mailto:sage [2007/10/26(金) 17:05:56 ID:???] >>244 1.MSDNのjavascriptを解析して組み込む。 2.Popup Menuのjavascriptライブラリを利用する。 ASP.NETの場合は、HTML上に表示されるコントロールID(ClientID)をライブラリに割り付ける方法は考える必要があり。 3.ASP.NET AJAX Control ToolkitのPopupControlExtenderを利用する。 ASP.NETのほかのサーバコントロールと同じように作成できるが、 Javascriptが隠蔽されるとか、コントロールの使い方を覚えないといかないはとかで理論が分かりにくい。 PopupControlExtenderの場合は<Animations>にこんな感じで指定すれば動く。 <Animations> <OnShow> <Sequence> <StyleAction Attribute="overflow" Value="hidden"/> <StyleAction Attribute="height" Value="0"/> <StyleAction Attribute="width" Value="0"/> <HideAction Visible="true" /> <Parallel Duration=".2" Fps="15"> <Resize Height="50" Width="125" Unit="px" /> </Parallel> </Sequence> </OnShow> <OnHide> <Sequence> <StyleAction Attribute="overflow" Value="hidden"/> <Parallel Duration=".2" Fps="20"> <Resize Height="0" Width="0" Unit="px" /> </Parallel> <StyleAction Attribute="display" Value="none"/> </Sequence> </OnHide> </Animations>
246 名前:216 mailto:sage [2007/10/27(土) 14:04:47 ID:???] >>237 この方法で実装できそうです。 前から気になっていたのですっきりしました。 「asp:Parameter」という部分が理解できませんが別途調べますね。 ありがとうございます。
247 名前:nobodyさん mailto:sage [2007/10/27(土) 17:04:02 ID:???] >>246 SelectedParameter <asp:Parameter Name="flg" Type="String" /> ボタン1処理 ObjectDataSource.SelectParameters.Item("flg").DefaultValue = "処理1" ボタン2処理 ObjectDataSource.SelectParameters.Item("flg").DefaultValue = "処理2" とすれば、hiddenを経由しなくても動的に値を変化させられる。 hiddenの方がコントロールを経由するので直感的かもしれんが、 無駄なhiddenを作る必要が無かったりするので。
248 名前:216 mailto:sage [2007/10/28(日) 16:18:54 ID:???] >>247 せっかくヒントをいただいたので自分で調べようと思っていたのですが ご丁寧にありがとうございます。 <asp:Parameter> というのはGUIで作成するところで言う パラメータソースが「None」のものですね。 Noneてどういう時に使うのかと思っていました。 こちらを組み込んだところ無事動作が確認できました。 ありがとうございました。
249 名前:nobodyさん mailto:sage [2007/10/29(月) 00:16:00 ID:???] ASP.NETの勉強サイト、またはTips集のサイトを教えてください!!!
250 名前:nobodyさん mailto:sage [2007/10/29(月) 00:54:42 ID:???] >>249 Tips集というかサンプル集 ttp://www.friendlysw.com/knowhow/knowhow.asp ここのASP.NETサンプル とか。 勉強サイトについては聞き方として漠然としてよろしくないと思います。 ttp://www.google.co.jp/search?hl=ja&q=ASP+%E8%A7%A3%E8%AA%AC&lr=
251 名前:nobodyさん mailto:sage [2007/10/29(月) 01:47:16 ID:???] >>249 ほとんど分からないのなら 一通りの機能には触るので>>2 のMicrosoft ASP.NET クイック スタート チュートリアルを最初の項目から順 にやっていくといいよ。 ただ、>>2 のリンクはasp.net 1.1版なので2.0の場合は web上では公開されて無いので「ASP.NET 2.0 クイック スタートチュートリアル」をインストールしてみるといい。 最低限このクイック スタート チュートリアルの内容が 全て分かって無いとTips集なんか見ても理解できないかも。
252 名前:nobodyさん mailto:sage [2007/10/30(火) 12:03:08 ID:???] >>250-251 ありがとう。
253 名前:nobodyさん [2007/10/31(水) 06:14:37 ID:Ln67m40J] テキストボックスに入力されている文字列が数値かどうか判断するために ReularExpressionValidatorを利用しています。 VaridationExpressionプロパティに「^[0-9]+$」を設定したのですが 半角スペースをのみを入力した場合IsValidateがTrueを返してしまいます。 半角スペースが入力された場合の対応としてはどういう対処が必要でしょうか?
254 名前:nobodyさん [2007/10/31(水) 08:47:21 ID:KCIK9HQ4] SQLServer2005への接続文字列で DateSource:サーバー名\SQLEXPRESS とSQLEXPRESSを付けないと接続できないけどこれは変更できるのでしょうか? それともEXPRESS Editionを使用しているからでしょうか?
255 名前:nobodyさん mailto:sage [2007/10/31(水) 10:48:10 ID:???] >>254 DBMSのインストール時に名前付インスタンスにしてしまったら無理 既定のインスタンスでインストールすればインスタンス名無しでいける Books On Lineをインストール前に入手して読めばわかることなんだけどね
256 名前:nobodyさん mailto:sage [2007/10/31(水) 12:52:23 ID:???] >>253 function RegularExpressionValidatorEvaluateIsValid(val) { var value = ValidatorGetValue(val.controltovalidate); if (ValidatorTrim(value).length == 0) return true; var rx = new RegExp(val.validationexpression); var matches = rx.exec(value); return (matches != null && value == matches[0]); } function ValidatorTrim(s) { var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/); return (m == null) ? "" : m[1]; } 上から分かるように、Validatorはスペースのみと入力なしを区別してないので、 ASP.NET側の処理もTrimするなりで合わせとくとか、CustomValidator(ValidateEmptyText="True")で 自作するとか、Javascriptで同じfunction名で処理を上書きして書き換えちゃうとか色々。 >>254 ASP.NETと関係ないし。 www.microsoft.com/japan/msdn/sqlserver/express/ssesecurity.aspx こことか参考にして理解した上で好きなようにしてください。