1 :
nobodyさん :
2007/07/17(火) 23:49:46 ID:pyJr9yIy
2 :
nobodyさん :2007/07/17(火) 23:50:28 ID:pyJr9yIy
>997 名前: nobodyさん [sage] 投稿日: 2007/07/17(火) 22:48:26 ID:??? >>エラーチェックって皆サーバでやるんすか? >普通はそうするわな > >例えるなら、東口、西口、正面口に入り口がある空港で正面でしか持ち物検査しなかったら、 >幾ら口すっぱく正面口から入れと言い聞かせても東口、西口使う馬鹿が居る。 >だから飛行機に搭乗するには絶対通らなければならない場所で持ち物検査するのと同じ。 > >>ユーザーがノートPC+Winカードで利用するので >>クライアントで出来ることはクライアントに任せたいと考えています。 >意味不明。回線が細くて、処理速度が遅いって言うのが理由なら >なおさら、サーバー側で処理してあげるべきだと思うが。 >998 名前: nobodyさん 投稿日: 2007/07/17(火) 23:47:57 ID:pyJr9yIy >サーバ側でチェックしてNGだった場合 >再描画されちゃわないんすか? 前スレの最後の質問の件なのですが、サーバで入力値のチェックをやるのが一般的なのはわかりました。 入力値チェックでひっかかった場合、メッセージボックスなどでユーザーに通知しますが その後再描画処理が走らないのでしょうか? Page_Loadイベントなりでメッセージボックスを表示して、そのまま処理を中断し 再描画を止めることは出来るのでしょうか? ページのサイズが大きい場合、クライアントでチェックすれば 再描画はしないので良いのでは?と思っていました。
だからその辺を効率よくやりたいときはクライアント「でも」チェックしたりする。
You、Validator使っちゃいなYO Response.Writeがどうとかチェック用JavaScriptがどうとか言ってるけど ASP.NETならペタペタコントロールはりつけてやるのが楽なんじゃないの?
>>4 この手の質問する奴って大抵「クライアントの為に」って
言葉使うんだけど実際には「自分の為に」なんだよな。
エラーチェックに関しても、クライアント側とサーバ側両方で
対応しとけば「クライアントの利便性とデータの正確性」両方
とも網羅できるのに。
入力エラーの度に再描画なんてされたらむかつかない?
別プロジェクトにあるカスタムコントロールを使用することは不可能でしょうか? 共通オブジェクトのみを集めたプロジェクトを作成し、画面とかカスタムコントロールとかクラスとか いろんなプロジェクトで使えるようにしたのですが、何故かカスタムコントロールだけ別プロジェクトから利用できません。 「仮想パス '*/test/test1.ascx' がほかのアプリケーションに割り当てられていますが、これは許可されていません。」 というエラーが発生してしまいます。 プロジェクトをまたがるカスタムコントロールの使用は出来ないのでしょうか? 共通部品化出来れば便利なんだけど、そういう考えは普通じゃないのかな・・
>別プロジェクトにあるカスタムコントロールを使用することは不可能でしょうか? 残念ながら不可能だと思われます。 「共通で利用する部品を作りたい」という目的は カスタムサーバーコントロールを開発することで達成できますが, ほんのちょっぴり敷居は高くなります。 お互いがんばりましょう。 >共通部品化出来れば便利なんだけど、そういう考えは普通じゃないのかな・・ 普通です。ただしUIが関係する部品はビジネスロジック層以降の共通化に比べるとメリットが小さいと思います。
12 :
前スレ986 :2007/07/19(木) 11:40:25 ID:???
前スレ
>>993 教えていただいたことを参考に、ヤフーの wsdl ファイルの中身の属性などを
いろいろ変更してみたりしたんですが、wsdl.exe だとどうしてもちゃんとした
プロキシクラスが生成されませんでした。
wsdl ファイルの最後に gsoap とあったのでそれを試してみたところ、
単数でしか受け取れなかったものを、しっかり複数で受け取れるような
クラスを生成してくれたので、こちらを使ってみることにします。
どうもありがとうございました。
SOAP を使うと互換性を気にせずに簡単に組めるかと思ったんですが、
そうでもなかったみたいですね><
13 :
nobodyさん :2007/07/19(木) 22:07:16 ID:t+6ymqWH
aspxにRequestで受け取った値を出力したいのですが可能でしょうか? 例えば、AタグのHREFにURLを指定しますが、そこのパラメータにRequestで受け取った値をセットしたいのです。 Aタグをサーバコントロールにして、csでセットするというのは出来るのですが、aspxで出来たら手っ取り早いので。。 例) <a href="top.aspx?id=<% Response.Write(Request["id"]); %>">Top</a>
14 :
nobodyさん :2007/07/20(金) 17:13:03 ID:dtQ5f3a5
HttpSessionStateって勝手にWeb.configのsessionStateタグを読みますが Web.configじゃなくて他のファイルを読ませたい場合はどうしたら良いでしょうか? Web.configってプロジェクト単位で出来ちゃうから、色んなプロジェクトで共通につかっているファイルを読ませたいんです。
>>14 構成ファイルの階層と継承の仕組みを考えると,
システム共通の設定はmachine.configで定義するだけで良いし
関連アプリケーション共通の設定ならフォルダ構成をきちんと管理すれば良い。
16 :
nobodyさん :2007/07/21(土) 10:43:46 ID:u6ArajqG
>>9 可能
なんもかんでもとりあえず聞かずに
実現方法を少しは自分で考えてね。
>>8 意味不明
「クライアント側でも」の意味が分かってないのか?
とりあえずWEBの基本でも勉強した方がいいよ。
19 :
nobodyさん :2007/07/21(土) 16:36:49 ID:LDWi9U5y
ASP.NET2.0で SessionのTimeout時点で処理を行うようにしたいです。 SessionモードはStateServerを使用しています。 すべてのセッションがタイムアウトしているかどうかを監視するサービスを作る必要があるのか と思ったのですが 簡単に実現する方法はありますでしょうか? アプリケーション上ですべてのセッションの状態を見ることはどのようにすればできるでしょうか? HttpApplicationからは自分のセッションしか見れないように見えました。
20 :
nobodyさん :2007/07/22(日) 00:52:26 ID:zWRToYk9
VB8ってVS2005で開発するVB.NETのこと?
VisualBasic(VisualStudio).NET(2002)= 7 VisualBasic(VisualStudio).NET 2003 = 7.1 VisualBasic(VisualStudio).NET 2005 = 8 VisualBasic(VisualStudio).NET 2008 = 9 わからなかったら検索する癖つけような。 WikiPediaに載ってた。
よくグリッドのヘッダがクリックできるようになってて クリックすることでそのヘッダでソート出来るというものがありますが これてクリックしたイベントでSQL発行してソートさせてるんでしょうか? それともDataTableのメソッドでソート処理が出来るのでしょうか?
GridViewのソートを自作するのなら DataTable(DataView)を並び替えようが SQL発行しようが好きなようにやればよい。
つい最近までレガシーASPしかやってなかったが、 .NETを使わないとそろそろ…と思いいじりはじめたところ 初歩的なWEBフォームを.NETで作ろうとして悩み中。 レガシーASPでは、 入力画面(html)→入力値のチェック&確認画面の表示(ASP)→DBへ入力値の登録&確認メール送信&登録完了画面の表示(ASP) という感じでチマチマやってたのを ASP.NETじゃどうやりゃいいんでしょか? ググってみたものの、案外そういうもののサンプルが見つかりません。 もっと高度そうなスケジューラとか在庫管理とかならあるんですが、 なにか手がかりあれば、教えていただけると助かります。
>392 ググって見つからないなら本屋行け。 仮にもASP経験してこの程度のことで人の手借りるのは手抜きにも程がある。
↑、>25だ
Eval()とDataBinder.Eval()の違いがいまいち分からないのですが。 それぞれの使いどころを教えていただけないでしょうか?
>>25 ASP.NETの特性
コントロールの状態(値とか状態とか)を再描画のたびに復元する必要が無い(ViewStateが自動的に行ってくれる)
イベントトリブンで記述が可能(イベントを認識するためのJavascriptを自動的に記述してくれる)
ポストバックが基本(データをポストする先は常にそのページ自身)
コントロールが必要とする基本的なJavascriptは自動的に作成
他にも色々あるが省略
で、これを上を意識できないと結局レガシーASPと同じになるので
やり方は色々あると思うが簡単に説明。
aspxファイルにViewStateを活用するために「Panel」コントロールあたりを3つ作成し、
それぞれのPanelに「入力画面(ボタンやTextBoxのnput系のHTMLタグをASPコントロールで)」、
「確認画面(Labelコントロールあたり)」、「登録完了画面」を作成
あとはasp.netボタンのclickイベントで処理+それぞれのPanelのVisibleを制御
(デザインのボタンコントロールをダブルクリックすればVBの様にイベント書く所へ飛ぶ)
エラーチェックは検証コントロールかJavascript・clickイベント内で行う。
まぁ、本とか
>>2 のMicrosoft ASP.NET クイック スタート チュートリアルで
サーバコントロールとかViewStateとかの裏側の動き(レガシーASPの動作に置き換えて)
理解する事をお薦めします。
>>29 ご丁寧な解説どうもありがとうございます。
教えていただいた内容をふまえてがんばります。
ここ1週間ほど本屋を5〜6軒まわりASP.NET初心者向けを3冊ほどは買ったのですが
GridViewやFormViewを使った割と高度なシステムの例はあっても
案外こういう低レベルに見えた受付フォームみたいなものの例がなく、
悩んでおりました。
レガシーASPはどういう意味ですか? 普通のASPと違うの?
>>28 DataBinder.Eval(Container.DataItem, "aaa"と
Eval("aaa")の違いって事か?
上記の事なら詳しく説明するの面倒なので簡単に言えば「同じもの」
>>31 legacyの辞書的な意味は『遺産、遺物』。
コンピュータの世界では古い技術であるが現在まで残っている技術
33 :
19 :2007/07/23(月) 00:05:44 ID:???
>>24 レスありがとうございます。
セッションがタイムアウトしたら、連携するシステムに対して
ユーザがいなくなったことを通知しなければいけないので
DB使わずにASP.NET組み込みのイベントなどで簡単にできないのかな?と思いました。
「すべてのセッションを監視して、タイムアウトしたセッションに対して処理を実行したい」が正しい記述でした。
申し訳ないです。
素直にDBに格納する方が楽なようです。
サンプル セッション状態ストア プロバイダ
http://msdn2.microsoft.com/ja-jp/library/ms178588 (VS.80).aspx
とか参考にして何とかなりそうです。
> 「すべてのセッションがタイムアウトしているかどうかを監視するサービス」
> と言うのをどう言う風に想定してるのか分からんが、
同一アセンブリ内で監視サービスでセッションを監視しようとしていましたが
AppDomainのアンロードと共に監視対象がリセットされてしまうため、うまくないなぁと。。
アプリケーション状態の保存にもちょっとだけSessionServer使わせてよ。と思ったけど、
現在のHttpContextを元にSessionStateの実装が想定されているので無理でした。
34 :
nobodyさん :2007/07/23(月) 06:47:10 ID:srWGE4oQ
SqlDataSourceよりObjectDataSourceのほうが機能がよさげなんですが SqlDataSourceを使うメリットはあるんでしょうか?
>>34 SqlDataSourceをGridViewに使えば、
単一のテーブルであれば「ソート」「ページング」「更新」「削除」を
自動的に作成してくれます。
まぁ、ObjectDataSourceとかDataSourceへDataTableとかじゃないと
複雑なロジックには耐えきれないとは思うが。
マウスカーソルを砂時計にするC#での記述はどのようにすれば良いでしょうか? JavaScriptでは可能なのですが、C#で書きたいのでよろしくお願いします。
C#でJavaScriptを書く
MsgBoxの代用ってJavaScriptかVBScriptしかないんでしょうか? でも、どこみてもJavaScriptしか書かれてないんですけど、 VBScriptだと相性が悪いんでしょうか? 教えてください
VBScriptはInternetExplorerでしか動作しないから
DataSetとDataTableはどう使い分けていますか? DataSetはあまり使う機会が無いのですが。 DataTableはGridViewのDataSourceにぶち込むためによく利用しますが。
41 :
nobodyさん :2007/07/23(月) 23:16:28 ID:yAPedHBa
42 :
nobodyさん :2007/07/25(水) 12:46:29 ID:SGx7LnS+
サーバコントロールのボタンのイベントのonclientclickイベントで AllDisabled()という全てのコントロールを無効化し、onserverclickイベントで処理をしたいのですが、ボタンを無効にすると Page_Load後に本来処理が走る、onserverclickイベントが実行されません。 function AllDisalbed() { var i; var cnt; cnt = document.forms(0).elements.length for(i = 0; i < cnt; i++){ document.forms(0).elements(i).disabled = true; } } 例えば、登録ボタンをクリックした場合など、その処理中に 画面上のボタンやリンクをクリックさせたくない場合、皆さんはどのようにロジックを組んでいますか? クライアントで処理するのではなく、Page_Loadで書いてたりするのでしょうか?
C#でテキストボックスの内容が数値かどうかをチェックするには TrayParseを使わないとダメなのでしょうか? 皆さんはこんな感じでロジックを組んでいるのでしょうか? IsNumeric関数のように対象文字列だけ引数に入れるような関数は無いのでしょうか? int nNull; if (!int.TryParse(this.text1.Value.ToString(), out nNull)) { this.text1.Value = "0"; }
46 :
nobodyさん :2007/07/30(月) 15:04:02 ID:7sXEyNUj
テキストボックスやテキストエリアにタグを入力してPostBackすると 「危険な可能性のある Request.Form 値がクライアントから検出されました。」 というエラーが発生します。 このエラー対応はWeb.configに<pages validateRequest="false"></pages>を追加して サーバでチェックするのが一般的なのでしょうか?
47 :
nobodyさん :2007/07/31(火) 07:39:20 ID:XmzlopkS
catch内の処理で例外が発生したらどうなっちゃうの? catchでエラー画面にResponse.Redirectで遷移し、ついでにResponse.End()もやってるんだけど これってやばい? Resonse.RedirectってResponse.End()ってやらないとすぐに遷移しないですよね。 それがヤダ。 画面が全部表示しきってから遷移するんだもんなぁ。 これって何とかならんの? Response.End()やるしかない?
>>46 システムによる。
>>47 Resonse.Redirectの第二引数をfalseにしていないなら、
Resonse.Redirectは同時にResponse.Endも行ってるでしょ。
なんか意図してるところが違うのか?よくわからん。
49 :
nobodyさん :2007/08/01(水) 23:18:10 ID:Ls359Xqo
ASPの画面であるボタンを押下した時に当然aspx.csの中の そのボタンイベントメソッドに入ると思うのですが、 その中でいろいろ処理をした後にReturn値を取得して、 分岐でそのReturn値が1だったらASP画面のボタンの右横に○、 2だったらボタンの右横に×を出すようにしたいのですが どうすればいいのでしょうか?
なんとも要領を得ない文章だが、サーバサイドとクライアントサイドの処理の違いがわかってないことだけはわかった。 入門書読んで出直しといで。
>>51 答えられないんだったらいちいち書き込むなよ
>>50 ASP側に id="Label1"というLabelを仕込んで
aspx.csファイル側でif文かなにかで
Label1.Text = "○"
Label1.Text = "×"
にすればよい
55 :
nobodyさん :2007/08/02(木) 23:29:29 ID:aUE57HU0
aspx.csでダイアログ画面を閉じたいのですが csでjavascriptのwindow.close()を実行しても、すぐには実行されず 画面上の全てのhtmlを出力してから実行されますね。 スクリプトをすぐに実行したい場合、どうしたら良いのでしょうか? たとえば、登録ボタンをクリックした時、Page_Loadで登録処理を行い、すぐに画面を閉じたいのです。 閉じるようの画面を作って、その画面にRedirectする方法しか思いつかない。
途中でFlush()メソッドしてやればいいのでは?
57 :
nobodyさん :2007/08/03(金) 17:33:12 ID:9JZ2axOl
ASP.NETの質問をさせてください。 TestソリューションにAプロジェクトとBプロジェクトを追加し Bプロジェクトの参照設定で、Aプロジェクトを追加しました。 Bプロジェクトに追加されたAプロジェクトはローカルにコピーしないを設定しました。 これで実行すると、Aプロジェクトがどこにあるか分からない的なエラーが出るのですが どう改善したら良いのでしょうか? A.dllをグローバルアセンブリキャッシュに登録しないやり方があれば教えてください。
どうしてエラー内容を正確に書かないのか
いいからローカルにコピーする設定にするんだ
>>58 依存関係がどうのこうのってエラー。
>>59 ローカルにコピーしたらA.dllを修正した場合
BプロジェクトのbinにあるA.dllも手作業で修正後のdllに変更しないと駄目じゃん。
この例ではAとBプロジェクトの2つだけだけど
仮にAプロジェクトを参照設定しているプロジェクトが10個とかあったらどうするの?
あほ?
だから動的にってあれほど・・・
>どうしてエラー内容を正確に書かないのか
>60 無理だからあきらめろ。
65 :
nobodyさん :2007/08/09(木) 01:47:23 ID:bl38nCXt
こんばんわ。
質問があります。
[ASP.NET AJAX]ASP.NET AJAX Control Toolkitを利用するには?[2.0のみ、C#、VB]
http://www.atmarkit.co.jp/fdotnet/dotnettips/561aspajaxprepare/aspajaxprepare.html にあるように、AJAXコントロールキットを組み込んで、レンタルサーバ(DOTNETレンタルサーバ)に
プロジェクトをアップロードして確かめたところ、以下のエラー出ました。
'/' アプリケーションでサーバー エラーが発生しました。
--------------------------------------------------------------------------------
パーサー エラー
説明: この要求の処理に必要なリソースの解析中にエラーが発生しました。以下の解析エラーの詳細を確認し、ソースファイルに変更を加えてください。
パーサー エラー メッセージ: ファイルまたはアセンブリ 'AjaxControlToolkit'、またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。
これは、なぜ起きるのでしょうか?
ちなみに、自分のPC上では正常に動作しました。
問題なのは、レンタルサーバー上でエラーとなったことです。
>>65 AJAX Control ToolkitはAJAX Extensionsと
異なるDLLで動作してかつ現状グローバル・アセンブリ・
キャッシュにも登録されないので、サイトルートのbinフォ
ルダの中に「AjaxControlToolkit.dll」が必要。
利用しているレンタルサーバは「AJAX Extensions」だけが
インストールされているだけっぽいし。
67 :
65 :2007/08/09(木) 11:53:46 ID:SsgdZ+V9
>>66 binの中には、そのdllが入っています。
なのにエラーがでてしまうのです
>>67 そのエラーは基本的に「AjaxControlToolkit.dll」の話だから
・サイトルートのbinフォルダの中にあるか?
確認してみ。
まぁ、
まさか無いだろうがAjaxControlToolkit.dllをFTPのバイナリモード
でアップロードしていなくて壊れてるとかか。
69 :
65 :2007/08/09(木) 14:23:18 ID:SsgdZ+V9
>>68 サイトにもありますし
ftpでアップロードしました
今夜もう一度確認してみます
なぜソース エラーを省略するのか
71 :
65 :2007/08/10(金) 00:06:46 ID:???
解決しました。 ありがとうございました。
なぜ解決理由を省略するのか
せめてなんだったのか書こうぜ
DOTNETレンタルサーバの無料サービスで実際に
AJAX Control Toolkitを利用したサイト作って確認してみた。
>>65 のエラーが出るのは、
・サイトルートのbinフォルダにAjaxControlToolkit.dllが無い時
・dllをFTPのアスキーモードで送信して壊したとき
以外には確認できなかったのでASP.NETとは関係ない単純ミスだと思う。
75 :
65 :2007/08/11(土) 00:15:29 ID:???
失礼しました。 確かに単純ミスというか知識不足でした。 dllファイルは、wwwroot/の直下にあるbinフォルダに入れるということですが、 私の勘違いで、 プロジェクト名がAAAだとすると、 wwwroot/AAA/binの中にdllを入れても問題がないという認識でした。 当然、wwwroot/AAA/直下には、default.aspxがあります。 みなさま失礼いたしました。
∧∧ ヽ(・ω・)/ ズコー \(.\ ノ  ̄
な、なんだってー!!
78 :
nobodyさん :2007/08/12(日) 00:11:24 ID:AGH4B/9O
htmlやcssファイル、jsファイルなどはキャッシュに残ってしまい サーバにアップされているファイルとキャッシュにあるファイルに差があっても キャッシュを見てしまいます。 それを避けるためにプログラムでキャッシュを削除するとかって可能なのでしょうか? サーバの設定でファイルがキャッシュに残る有効期間を設定できますが 有効期間があってもPG側で削除するというのをやりたいのです。 例えば通常は有効期間を設定しておき、キャッシュのファイルを使ってもらうのですが ファイルの内容を修正したりという場合は、キャッシュにあっても再度サーバからダウンロードさせたいのです。
>>78 つうか、それってASP.NETの「Cacheクラス」とかの
話じゃなくてIEのキャッシュの話だろ。
微妙にスレ違いな感じが。
ヒント的には
ブラウザのキャッシュはファイル名ではなくてURLでキャッシュされるから
jsなどのURLにパラメータでも追加してブラウザに別物のURLと認識させる。
上記の意味が分からなければ、
・Ctrl+F5で更新してもらう
・ブラウザのキャッシュをHTTP ヘッダーで無効にし毎回ダウンロードする形にする。
とかで対応しとけば
>78 キャッシュしててもリクエストは来て304が帰ってるんじゃないのか? ファイルが更新されてたらキャッシュは使用されないだろ。
TreeviewでチェックボックスをON・OFFしたときに、イベントを取るのってムリですか?
>>80 ページが最後に表示されてから変更されたか、
(If-Modified-Since)を確認する間隔もブラウザのアルゴリズムや
設定に依存するからファイルが更新されているのにキャッシュが
使われる事もある。プロキシがあったらさらに複雑化するし。
それを解決するには、URLに変化をかけるかキャッシュを利用しない
が一番トラブルが起きにくい。
>>81 簡単には無理だね。
javascriptでTreeviewのチェックボックスにイベント割り当てて
ASP.NETのサブミットさせるとかでうまく出来そうだけど。
84 :
nobodyさん :2007/08/12(日) 21:23:38 ID:CwIQgpKd
>>79 ,82
ファイル名を変えなくてもパラメータを変えれば別物と判断されるんですね。
A.html?ver=1.0
A.html?ver=2.0
って別物と判断してくれるってこと?
別物って微妙…
>>84 まず、
実際試してキャッシュフォルダ(Temporary Internet Files)とか確認したら?
その上で、ページを表示している状態で更新してもキャッシュが利用されて
いないか確認したらいいんでない。
で、これってASP.NETでページ作らなくても静的なHTMLでも確認できるん
だから聞く前に試してみた方がいいよ。
ソースが欲しいのなら
ttp://yuki.silk.to/2006/04/000170.html
87 :
nobodyさん :2007/08/14(火) 12:07:12 ID:hGLDM3MP
質問です 環境はVS2005 C#です masterページに動的に配置したcalendarコントロールのselectedDateイベントを コンテンツページから取得するにはどうすればいいのでしょうか? 実現したい動作はmasterページのcalendarコントロールの日付を選択 その日付をコンテンツページで取得して選択された日の予定一覧を表示です。
88 :
87 :2007/08/14(火) 12:11:07 ID:hGLDM3MP
追記です。 コンテンツページで作成したcalendarコントロールをmasterページに 渡してイベントを拾う事は出来るのですが、連続して日付を選択して行くと 二回目以降に[viewstateの読み込みに失敗しました]というエラーが出ています
>>87 問題の原因が特定できないならソースを貼るべきだと・・・
まぁ、予測だが「viewstateの読み込みに失敗しました」と言ってるのを見ると
masterページうんたらよりも動的コントロールの部分が問題の気がする。
「Page_Load」以下で動的に(viewstateがtrueの)calendarコントロール作成して無い?
その場合「Page_Init」で作成するようにして「追記」の状態で確認してみ。
91 :
nobodyさん :2007/08/19(日) 17:31:02 ID:PhTQfUKC
webディレクトリー以外に置いたファイルをダウンロードするには どうすればよいでしょうか?
93 :
nobodyさん :2007/08/19(日) 19:48:45 ID:PhTQfUKC
>>92 ありがとうございます。
.NETじゃないaspでは無理なのでしょうか?
とりあえず考えた方法は、aspにアクセスした時にwebディレクトリーへ
該当ファイルをコピーしてその後コピー先にredirectという方法が
いけるかなと思いついたんですが、ダウンロード完了後にコピーファイルを
削除したいのですが、ダウンロード完了のタイミングを取得するには
何か方法ありませんでしょうか?
>>93 いや、勘違いしてるんだが、
Response.ContentType = "application/octet-stream"
Response.WriteFile("C:\aaa.txt")
Response.End()
と言うように、「Response.WriteFile」のパスは仮想ディレクトリ
では無い物理パスを指定すればいいだけ。
で、ダウンロード完了のタイミングと言うのは取れないが、
「Response.BinaryWrite」を使えば「Response.End()」の前に
ファイルを削除出来るので送信したら削除も可能なんだが
さらに勘違いしていてここはASP.NETのスレなんだが・・・・・。
まぁ、ASPでも出来るから調べるなり該当するスレに移動するなり
した方がいいよ。
95 :
nobodyさん :2007/08/19(日) 22:52:06 ID:fhtMy5hW
ArrayList list; for(int=0;i<list.count;i++){ Label[i].Text="ラベル"+[i] } … とaspx.csに入力した場合、 listのカウント数が100件ならば画面上にLabelを1〜100件つくって、ラベル1〜100を表示 listのカウント数が0件ならばaspx側でlabelを作成しないなど 画面でLabelを作成する数をcountの数によって変動させたい場合、 aspx側でどういう風に書けばいいのでしょうか? 下らない質問ですが ググッてもよくわからなかったので教えてください
>>95 普通なら、動的コントロールで必要な分作成する。
簡単に済ますなら、とりあえず全てのラベルのVisibleを
aspxでfalseにしておいてTextに入れるついでにtrueにする。
97 :
nobodyさん :2007/08/19(日) 23:40:54 ID:fhtMy5hW
>>96 >普通なら、動的コントロールで必要な分作成する。
ありがとうございます
すいませんがいまいちよくわかりませんので具体的に教えてください
カスタムコントロールのことかな 良く分からんが
カスタムコントロールは関係ないね。
aspx.csのコードでからlist.countの分だけ
aspのラベルコントロールを(aspxの方には一切コントロールを置かず)
動的に作成すればいいだけ。
list.countの最大数が決まってるのなら、
aspx側に最大数分作っといてVisibleでコントロールしろと
>>96 は言ってるだけだから。
>>100 で「関係ない」と書いてみたものの
>>95 を10回くらい読んで
カスタムコントロールの質問にも思えてきた。
良く分からんが
102 :
nobodyさん :2007/08/20(月) 18:14:22 ID:0m18HzF/
はじめてのASP.NETなのですが、練習用のテスト環境には、IIS(Windows XP pro)が必要でしょうか? Apacheじゃだめですよね。。みなさん、どうしてますか?
104 :
nobodyさん :2007/08/20(月) 19:00:18 ID:0m18HzF/
まさに探していたものです。ありがとうございました^^
>102 VisualStudio2005をインストール可能な環境はIISもインストール可能なはずなのですが。
XP Home
>106 Homeなんかすっかり忘れてたよ。
ASP.NET 2.0のGridViewで質問です。 ページング(AllowPaging="True" PageSize="10")を利用しているのですが、 件数が10件に満たない場合でもPagerを出力する事は可能でしょうか?
111 :
109 :2007/08/30(木) 02:19:16 ID:NTnTtLAt
>>111 俺もデザイン的に必要だったから、擬似的に表示するようにした
VisualStadio2003での質問です。 テキストエリアへのHTMLタグの入力を禁止するために、 RegularExpressionValidatorを使って入力チェックを行おうとしています。 正規表現で指定した禁止文字を入力しフォーカスを外すと、 エラーメッセージを表示してくれるのですが、 サブミットボタンを押してもサブミットが発生してくれません。 ボタンでのサブミットを発生させるにはどのようにすればよろしいでしょうか? アドバイスお願いいたします。
DBにメールを保存しています。やりたいことはメーリングリストのWeb アーカイブ等でよく見かけるメールのやりとりを階層表示するには どのようにすれば良いのでしょうか?表示は件名、受信日、Fromのみ とし、任意の件名をクリックすると、別ページでTo、Cc、件名、本文 が表示されるのをイメージしています。よろしくお願いいたします。 言語VB.NET、.NET Framework2.0です。
>>111 無理じゃないし、擬似的にでなくても出来るよ。
GridViewのPreRenderでsender.BottomPagerRow.Visible = True
GridViewのRowDataBoundで1ページに収まる場合、
BottomPagerRow.VisibleがFalseにされるんでそれより後に動く
イベントでBottomPagerRow.VisibleをTrueすれば表示される。
まぁ、イベントの順番とかどう言う処理してるかとか意識した方がいいと思う。
>>116 返信ありがとうございます。
仕事中なので携帯から失礼します。
自分の書き方が悪かったです。
入力エラーの時にサブミット出来ないのは良いのですが、
正常値を入力した場合もサブミットが出来ず困っています。
申し訳ありませんが、よろしくお願いします。
119 :
113 :2007/08/31(金) 12:06:22 ID:???
>>116 jsを追った所、スクリプトライブラリのバグで、
.netFreamworkをASPに再インストールしたら正常に動く様になりました。
お騒がせしました。
この度、ASP.NETを使い、Webアプリを作成することになりました。 しかし、いきなり問題が出て来ました・・・・。 WebアプリケーションをそのままOKを押し作成しようとすると Webアクセス失敗と出て来てしまいます。 この場合、どのように対処したらよろしいでしょうか?
>>120 IIS動いてて権限ちゃんと持ってるか?
つーか入門書買え
>>114 保存してるのはそれだけ?
ヘッダとか保存してないの?
122 :
nobodyさん :2007/09/01(土) 00:24:53 ID:o4VEeCjw
配列でツリー構造を作った事がないと見た
>123 それそれ。 わざわざコーディングしなくても再利用できるフリーのクラスとかDLLとかありませんか?
>125 そこをなんとかよろしくお願いします!
いってるじゃねーかよ あきれてモノも言えん
もうちょっとマシな釣りはできんのか ↓はい次どうぞ
129 :
nobodyさん :2007/09/08(土) 22:51:29 ID:XwRWsE9u
130 :
nobodyさん :2007/09/10(月) 21:02:18 ID:slz4gROC
環境ASP.NET2.0、VB.NET、SQL Server 2003です。 select count(*) from table の結果を、ラベルに出力したいのですが サンプルありませんか?できれば .aspx.vb 側でコードを書くのでなく .aspx側(ただし、<script></script>の中は不可)で出力するコードを書きたい。 書く方法があるのか、そういう方法ではNGなのかよくわかりません。 サンプルのアクセス先でもよいので教えてください。 よろしくお願いします。
>131 どうもインラインコードモデルじゃむりっぽいかもしれないので、コードビハインド可で質問 しなおします。 GridViewのサンプルはたくさんあるので書き方がわかるんですが select count(*) from Tablexxx の結果をラベルに代入するサンプルが見つからない。 どなたかご存知でしたら教えて。
>133 すみません、SQL Server 2000 でした。
結果をラベルに代入とは?
Labelコントロールで表示したいんじゃね
GridViewで表示できるならLabelでもなんでも表示できるだろと。 どうせLabelにはデータソース指定がないからGridViewみたいにコーディングレスじゃ割り振れないってだけだろ。 普通にSQL発行して戻り値でSELECT結果返す関数作って その戻り値をLabelに入れるなりなんなりすればいいだけ。 Label1.Text = GetSqlquery(); でいいだろ。
138 :
nobodyさん :2007/09/11(火) 20:34:07 ID:jV5pYbSS
>137 サンキュー! そうでした、単純にクエリーの実行結果を得る方法さえわかれば どうってことないことでした。
[IIS-5.0][Framework 1.1][VB.Net2003]
でwebアプリケーションを開発しています
現在、モバイルWebアプリケーションを作成しているのですが
状態管理のセッションキーがURLに埋め込まれますが
このセッションキーの埋め込み位置を変更することは
できないでしょうか?
例:
http://www. ○○○.com/mobile/(セッションID)/index.aspx
↓
http://www. ○○○.com/mobile/index.aspx?session=セッションID
という感じにできませんか?
おわかりの方がおられればぜひご教示ください。
ASP.NET2.0、Ajax Extensionsを使用しています。 Panelの中にUpdatepanel、Updatepanelの中で<div> </div>で囲んだ Gridviewコントロールを配置しています。Gridviewで表示した表は 一定間隔で自動更新表示(タイマー使用)しています。 ブラウザ側のスクロールバー位置はMaintainScrollPositionOnPostback="true" により同じ位置を保持可能ですが、ヘッダー固定したGridView側のスクロール バー位置が上に戻ってしまいます。内部のスクロールバー位置ももとの位置を 保持させるにはどのようなコードを追加すればよいのでしょうか。 ご存知の方、おしえてください。
>>129 ルート演算子「~」とかがおかしくなった気がする。
MSDNあたりでこれ関係の記述を見た記憶が。
>>139 自分でセッションの代わりを作らない限り無理だと思う。
で、絶対パスでセッションが切れるとかリダイレクトとかの問題なら
解決策はあるが、見た目の問題とかならしらね。
>>140 MaintainScrollPositionOnPostback="true"で作成される
JavaScriptと同じ事をやればいい。
Hidden項目2つ(x,y)用意してGridViewを囲んでるdivの(javascriptの)
onscrollイベントで縦・横位置を記憶するJavascriptを作る
で、次に縦・横位置を復元するjavascriptを用意する。
ここまでは、UpdatePanelだろうが通常のポストバックだろうが同じ。
次に通常のポストバックなら縦・横位置を復元するjavascriptを
Page.ClientScript.RegisterStartupScriptで呼べばいいが、
UpdatePanelの場合は非同期通信で作成されるJavascriptの
endRequestをフックするか、ASP.NET側のScriptManager.RegisterStartupScript
あたりで非同期通信後に呼ぶ。
まぁ、GridViewが複数同一ページ内にある場合とか考えても、
Hidden項目がその分必要になるから、スクロールしているdivを
カスタムコントロール化するべきだと思うが。
ScriptManager.RegisterStartupScript
142 :
nobodyさん :2007/09/13(木) 23:05:53 ID:f7p5yovk
Visual Studio 2005でASP.NET使ってWebアプリ作る時って、 Webサイトプロジェクトと、Webアプリケーションプロジェクトの どっちで作るほうがいいの?入門書見たらWebサイトプロジェクトで 説明してるものばかりだけど…
>141 ありがとう。 divの(javascriptの) <div onscroll=..... てところが書けない。 onscrollという属性が予約語でないのか、エラーになります。 どのようにすればよいのでしょうか?
144 :
nobodyさん :2007/09/14(金) 02:35:05 ID:CiMbiaO2
ASP.NETのBinフォルダに.NETアセンブリ以外を入れたら何か問題ありますでしょうか? Cで作成したネイティブのDLLを参照する必要があり、それを入れたいです。 他にもBinにログファイルを作成する.NETアセンブリもあったりするのですが問題ありますでしょうか? (ASP.NETアプリからはそのCのDLLのラッパを呼び出している。ラッパはBinフォルダの中にある。) サイト Bin native.dll wrapper.dll
>Binにログファイルを作成する そいつはまずい。 まじで。
>>143 それ、XHTMLに準拠しているかの検証エラーなだけなので
気にしないで進めろ。
XHTMLに準拠が気になるなら、
・Javascriptでdivのイベントに処理を割り付ける
document.getElementById(???).onscroll = function ・・・
・divにrunat="server"(Panelコントロールでもいい)を付けて
ASP.NETコントロールにしてAttributes("onscroll")でJavaScript
を文字列で書き込む。
好きな方でやればVSのデザイン時にXHTML検証でエラーは出ない。
>146 んーー、非常に勉強になりました。 アドバイスの通り試行錯誤してみます。 重ね重ね本当にありがとうございました!!
>>147 スクロールバーを表示している<div>をUpdatePanelのすぐ外に
置いてスクロールの内部を非同期通信させる方法で対応できる
ならそれが簡単かも。
UpdateProgressを使ってたり、ポストバックの更新時、UpdatePanelの入れ子とかで
内部表示の幅がが一時的に小さくなったり、divが再描画されたりすれば
スクロール位置は戻るので現在の処理が絡むので分からんけど。
まぁ、
>>141 の内容と組合せるとかすれば出来ない事は無いだろうけど。
<script>タグの中で<%= =>がマークアップされないのって、何とかならないのかな 一瞬動かないものなのかと思ってしまいました。 まさかMS非推奨、とかじゃないですよね?
>>149 <%= =>って<% %> レンダリング ブロックのことか?
普通に<script type="text/javascript">alert('<%="aaa" %>');</script>で出力されるが。
よくわからん。
VS上で強調表示されないってことです。細かくてすいません。。
Imports Oracle.DataAccess.Client Public Shared Function OracleRead(ByVal wSql As String) As Object cnn = New OracleConnection cnn.ConnectionString = "hogehoge" cnn.Open() cmd = New OracleCommand cmd.Connection = cnn cmd.CommandType = CommandType.Text cmd.CommandText = wSql OracleRead = cmd.ExecuteReader End Function こんな感じの繋ぎ方で、Oracleに接続して結果セットを得ているのですが、この結果セットの フィールド名はこのオブジェクトから得ることができるのでしょうか? Dynasetで結果を得ていたときは 結果セット.FieldName(i).ToString で得られていました。 同じようなプロパティはあるのでしょうか?
>>153 そのreturnのObjectを素直にOracleDataReaderに
してるのならGetNameで。
DataAdapterで変換してるのなら変換後の型の
メンバをMSDNで調べてください。
ASPの質問というよりwebサービスに対する質問なんですが. VS2005でクライアントの「WindowsFormアプリ」と「Asp.NETWebサービス」を(ともにC#) 共存させるソリューションを作っているのですが, クライアントの参照設定->右クリック->Web参照の追加 で「Asp.NETWebサービス」を追加したのですが, [WebMethod]で指定した関数を呼び出すことができません. WebServiceのクラスがMySeriviceの場合 MyService ms = new MyService(); はエラーを吐かずに実行できるのに. string str = ms.HelloWorld(); は次のエラーと警告を出します. ・無効なトークン '(' が クラス、構造体またはインターフェイスのメンバ宣言で使用されています。 ・WebServiceBindingAttribute が プロキシ クラスで必要です。 WebServiceBindingAttribute をどのように作成すればいいでしょうか
>>155 単なるコンパイルエラーだと思うけど。
HelloWorldの中身の"("付近を見直してみれば。
157 :
155 :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メソッドが登録されているので,
なんだかもうわからない状態です...
159 :
153 :2007/09/25(火) 21:00:40 ID:???
>>154 サンクスです。
GetNameで取れました。
160 :
155 :2007/09/25(火) 21:24:54 ID:???
>>158 さん はんのうありがとうです.
usingを指定して,すでに名前空間は解決しているつもりでした.
名前空間と言えば
[WebService(Namespace = "
http://kaigen.org/ ")]
WebServiceで記述されているこれは使用するのでしょうか?
161 :
155 :2007/09/26(水) 03:15:18 ID:???
自己解決?しました WebServiceクラスを呼び出しているところを 普通のクラスファイルじゃなくて, Windowsフォームテンプレートを用いで作成したクラスからなら 呼び出せることがわかりました. 原因は不明ですが,とりあえずこれで動くので, これで作成しようと思います.
継承しているクラスくらい見ろよな
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 うわっ!スゴイ!!十分に参考になります。 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> のようにすればいいのかな。と思ったのですがうまくいきませんでした。 クライアントコールバックではなく、単純にボタンを押されたときと同じにしたいのですが どのようにすればよいのでしょうか?
>>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セーフ?)に書ければいいのに。と思った。
ASP.net2.0+AJAX.net2.0+C#で開発しています。 TreeViewについて質問させてください。 [質問内容] UpdatePanel内にTreeViewを配置した時にTreeViewのPopulateイベント で同一UpdatePanel内の別のコントロールに値をセットできません。 ViewStateも利用できない状態です。 他に、Populateイベントを有効にするとTreeNode以外のボタン押下時 イベントも同時に動いてしまうのも悩みです。 どなたか同じような問題を解決した方がいましたらご教示ください。 宜しくおねがいいたします。
>>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
PHPしかやったことが無い とか関係あるか分からないけど ASP.NETなら C#とJavaScriptやっとけばいいんじゃない?
C#が解説とサンプル多くていいと思うよ。 VB.NETも同じくらい多いけど、言語的にはC#のほうがPHPに近い。
PHP ≒ Java ≒ C♯ VB糞
176 :
172 :2007/10/05(金) 15:38:56 ID:???
レスおそくなってすみません
>>173-175 レスどうもありがとうございます
C#のほうが近いとのことなのでC#でいきたいと思います
帰ったら開発環境とIISインストールして早速遊ぼうと思います
パラメータソースとしてWebUserControlのプロパティを使いたいんだけど バインド画面のリストに表示するようにするには、どうしたらいい? 属性?それともインターフェイス?
>>177 質問の意図が「プロパティを使いたい」のか「リストに表示したい」のか
分からんけどControlParameterのPropertyNameで選択したリストに
表示されなくても直接UserControlで作成したプロパティ名を入力すれば
使えたはず。
リストに表示したいと言うのも出来たはず。
おれは動的にControlParameterを発生させるので、ど忘れして思い出せない。
って、事でこのスレの詳しい人に任せます。
179 :
177 :2007/10/06(土) 22:11:06 ID:???
>178 thxです。コレ手書きOKなのね。 さらにリストから選択できれば言うことないので、誰かヒントお願いします。 ちなみに Control にしたとき、下記のようにコントロール名が2行づつ表示されるのは常識なんですか? GridView1 GridView1
WebUserControlのイベントってデザイナで指定できないのですか?
だれかエスパーを
>>180 プロパティウィンドウの使い方が分かってないんじぇね?
プロパティウィンドウ最上部の雷マークで切り替えてイベント追加できるから
WebUserControl使ったことあるやつなら
>>180 が言ってることわかるだろ。
ちなみにC#な。
わかるんなら答えてやれよw
185 :
180 :2007/10/07(日) 23:47:37 ID:???
>>181 >>182 説明がわるくてすみません。
自作のWebUserControlをWebFormに貼り付けると、イベント・プロパティとも
プロパティウィンドウに表示されません。(雷ボタンも表示されない)
ちゃんとpublicプロパティやイベントは書いてます。
>>183 ということはC#ではできないのですかね?
ああ、ユーザーコントロールの枠で選択されちゃって、個々のコントロールが操作できないやつね。 あれはだな、・・・
↑なんか概念的に間違ってるぞおまえ
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を認識できません”とエラーになります 何が原因でしょうか
>>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自体あまり理解できていないようなので
勉強しなおしてみます。
>>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が入れ子されると
意味不明な指定になる。
更新していなくて余計なレスしちまった。
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週間ほど悩みましたが全く進展がなく暗礁に乗り上げました。 ご存じの方お教えいただけませんか? よろしくお願いします。
fileEncoding="shift_jis" にすると解消するというオチでは。。。 globalization requestEncoding="utf-8" でググったら最初に出て来た。
>>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 :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付きに変換しなくともく正常に動作しました。
ありがとうございました。
>>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 :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文を組みてる必要がありますか?
>>201 その認識で良いと思います。
マイクロソフトの正式な回答では無いのでどれを
選択するかは自由ですが。
>>202 結論から言えば自前だね。
そもそも、検索エンジンの空白でAND検索って形態素解析の
ほんの一概念でしかないのに「とか」と言われても。
とりあえず、空白でAND限定なら入力された文字列を
Split関数で配列化してForEachで回して各文字列の頭に「AND フィールド名=」
を付加してwhere作ればすぐ出来ると思う。
204 :
195 :2007/10/18(木) 01:37:25 ID:???
>>203 了解です、
細かな解説ありがとうございました。
ASP.NET2.0, VisualStadio2005,C# or VB.NETを使ってます。 GridViewでデータを表示し、編集ボタンクリック。 編集モードで更新ボタンクリックして更新中にエラーが発生したら その趣旨メッセージとOKボタンのダイアログボックスを表示。 意外とサンプルが見つからず。どなたか教えてください。
サーバーサイドで動いてるのにダイアログボックスて。 JavaScriptとかでポーリングするつもりかい。
>>205 if (エラー時)
{
page.ClientScript.RegisterStartupScript(page.GetType(),"ErrorAlert", "alert('エラー');", true);
}
で処理を抜けて、画面に描写を行わせればJavascriptが動いてメッセージボックスが
表示される。
>207 ありがとう。 おかげさまで調べやすくなりました。 そのままでは動かなかったけど、次のように書いたらOKとなりました。 ScriptManager.RegisterStartupScript(Me.Page, Me.GetType(), "ErrorAlert", "window.alert('エラーだぴょん!');", True)
>>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
事前コンパイル
>>210 ASP.NET コンパイルの概要
http://msdn2.microsoft.com/ja-jp/library/ms178466 (VS.80).aspx
自動コンパイル(動的コンパイル)
メリット:
ソースをコピーすればいい。
ソースを配布先でテキストエディタも修正できる。
デメリット:
初めて要求時にコンパイルされる時間が掛かる。
埋め込み先コンパイル
メリット:
ソースをコピーすればいい。
ソースを配布先でテキストエディタも修正できる。
初めて要求時にコンパイルされる時間が掛からない。
デメリット:
ソースの一部でも修正したらコマンドラインで動的コンパイル時に発生するコンパイルと同じコンパイルを実行しなければならない。
事前コンパイル
(更新不可能な完全プリコンパイル・更新可能なプリコンパイル)
メリット:
初めて要求時にコンパイルされる時間が掛からない。
ソースを隠蔽する事が可能。
全ての画面を単一のDLLにするなどが可能。
更新可能なプリコンパイルなら、aspx、.ascxのみ変更可能。
デメリット:
windowsアプリの様にソースと配布用の実行ファイルを分けて管理などを考える必要がある。
簡単な説明するとこんな感じ。
詳細は上のURLで理解したうえで、自分で選んでください。
しかし起動時にすごい処理してるってオチがあったりして…
214 :
nobodyさん :2007/10/20(土) 21:46:20 ID:bogh6jgR
>>212 参考になりました。ありがとうございます!!!
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 みたいにして条件を追加しようと思っています。 これが動作するかどうかは試せばすぐわかると思うのですが 一般的な処理の方法がこんな感じで合っているか気になります。 いかがでしょうか?
フレームなんか使うな。
218 :
nobodyさん :2007/10/21(日) 01:52:59 ID:1pk3RmdZ
せっかくのPostbackなんだから単一画面でしょう
フレーム使わないでテーブルにぶち込むとか、<hr>で区切るとか汁!
220 :
216 :2007/10/22(月) 00:25:54 ID:???
>>217-219 とりあえず今回は上記の方法を採用しました。
動作としては今のところ問題ないようですのでこのままいきます。
ちなみになぜフレームを採用したかというと画面上部のフレームは
検索条件を指定する画面を表示するのですが
簡易検索条件入力フォームと詳細検索画面を切り替え、且つ、
下部は共通したGridViewを使用したかったためです。
ありがとうございました。
今回は仕方無いにしても,今度はフレームを利用せずに それらを実現できるように成長することを期待。
222 :
216 :2007/10/22(月) 03:32:30 ID:???
>>221 ケースバイケースケースで
上部のフレームの中身を差し替えることで
検索条件の指定方法を変えたいと思いフレームを採用しましたが、
そこまでフレームを非推奨なのにはなにかわけがあったりしますか?
今回は切り替えと、常に上部に表示させておきたいということで
フレームを採用しましたがそこまで否定派が多いとちょっと気になります。
>>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で質問しても
レスを貰う事も難しくなります。
>>214 追加だが
現在、「自動コンパイル」で遅いと思っていて手軽に解決するなら
「埋め込み先コンパイル」が一番簡単です。
cd /d C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
Aspnet_compiler -v /仮想ディレクトリ名 -errorstack
を2003Serverのコマンドプロンプトで流せば全てのファイルに
自動コンパイルを行った状態になります。
あとセッション使うと単純にやると各フレームで同時処理できないからそれも注意がいるかもよ。
227 :
216 :2007/10/23(火) 01:51:24 ID:???
>>223 なるほど。
>>W3Cはframeに対して否定的な動き
盲目的に信じるのもあれですがW3Cが推奨しないということは
やはりそれなりの理由があるんでしょうね。
>>VS2003では選択できたフレームセットのテンプレートはVS2005
2005でなくなっていてびっくりしました。
やはりVSとしても推奨しない動きなんでしょうね。
今回とりあえずフレームで実装したのですが変更した方がよいでしょうね。
だとしたら
>>216 >>220 に内容は書きましたがフレームを使用することで
画面上部に検索条件入力フォームを「常に」表示させていたのですが
これをフレームを使用せずに用件を満たす必要があります。
フレーム無しで画面上部に常に表示させていたいコントロールを配置する場合
どうすればよいでしょうか?
常に表示させておく必要がなければvisibleあたりを制御するだけでよいのですが。。
>>225 これは
>>226 さんと同じく気になります。
どういう意味でしょうか?
228 :
216 :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でわざわざ自前でページング処理を書かなければならないというのが違和感です。
こういうサイトはどのようなコントロール&処理を実装しているのでしょうか?
>>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と連動するように作る。
(ググればカスタムコントロールを作っている人も良そうだが)
Javascriptでaspを呼び出すことはできるのでしょうか。 Javascriptでクッキー処理 −引数つけてASP呼び出し→ ASP処理 → ASPでJS書き出し という感じのことをやりたいのですが。
231 :
230 :2007/10/23(火) 11:58:30 ID:35vpnyji
age忘れましたすみません。
>>230 引数つけてASP呼び出し
location.href('
http://www.aaa.aspx?a=1 ')
他は省略
>Javascriptでクッキー処理 −引数つけてASP呼び出し→ ASP処理 → ASPでJS書き出し
ってか、この各処理は同一のaspxでの話しを想定してるの?
クッキー処理はASPへのデータ引渡しの為に使うの?
つうか、ASP.NET以前に、「HTMLとCGI」の値の受け渡しに利用しようとしているんであれば
クライアントとサーバの切り分けが出来ていないように感じるんだがその辺は大丈夫?
そう感じた理由に「本来ならPostを基準にデータを取得する所をPostデータの管理を便利にする為
にCookieを利用している」と切り分けが出来てるなら、ASP.NETの基本概念を見ればどの様に変化
したかがわかると思うんだよね。
233 :
216 :2007/10/24(水) 00:36:46 ID:???
>>229 ・フレームについて
回答ありがとうございます。
>検索処理をした後に検索のテキストボックスが常に見えている必要があるのか?
通信販売等のサイトで使い勝手を確認したところおっしゃるとおり「ない」です。
常に見えていないことが特に気になりませんでした。
急遽フレームを使う仕様を変更しました。
ご指摘ありがとうございました。
・ページング処理可能なビューについて
GridView+ObjectDataSourceがページング処理を記述しなくてもよいという表現は誤りでした。
おっしゃるとおりデータ取得部分は自前です。
GridView+ObjectDataSourceがページング処理の見た目の処理を備えていたので
他にもこういう機能がないのかと思ったのですが甘かったみたいです。
手軽に、というのも理由の一つですが堅実なものを作成したいので既に備えている機能をわざわざ
実装するのは避けたかったため質問させていただきました。
素直に自作します。
今回は「2.DataListを拡張〜」を行いたいと思います。
Webに関しては特にわからない部分が多いため質問のレベルも低いかもしれませんでしたが、
重ね重ねありがとうございます。
234 :
216 :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」辺りの検索ワードでは
今回のケースにあたるような情報を見つけ出すことができませんでした。。
>>225 同一セッションのリクエストは直列化されるってことだよ。
フレーム分割することによりユーザービリティが低下することって考えられないけどねぇ・・・。 検索エリアを固定を常表示することで解決できるけど、それならFrameでいいじゃんと思んだけど・・・。 あらゆる場面を検証したW3Cに反論する気はないけど、規約に反するからって単一画面で描画の 遅いメニュー表示されたら余計にイライラするけどwww
>>234 1.SelectMethodに全ての条件+処理フラグの引数を作る。
2.SelectedParameterに項目+ボタン区別用のhiddenをControlParameterとする。
3.ボタンを押されたらASP側のクリックイベントでhiddenにフラグをセットする。
4.ObjectDataSourceの中身で処理フラグによって処理を分ける。
「2.」「3.」はSelectParametersをasp:Parameterにしておいて動的に変更すれば
hidden項目自体要らない。
質問者に対する回答でもなくて、 ユーザービリティを自分が経験した事だけでしか想像できなくて、 わけ分からん描画の遅い早いを持ち出す、 的外れてる奴が出てきたなと。
お前ら全員死ねよ
過激なやつだ…
お前ら全員愛してる
キスして
屁こいてやったぜ
MSDN2みたいに、メニューバーエリアを選択したら、そのメニュー項目が Popupメニューのようにフェードイン・フェードアウトして一覧表示される にはどうすればよいですか?
>>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 :2007/10/27(土) 14:04:47 ID:???
>>237 この方法で実装できそうです。
前から気になっていたのですっきりしました。
「asp:Parameter」という部分が理解できませんが別途調べますね。
ありがとうございます。
>>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 :2007/10/28(日) 16:18:54 ID:???
>>247 せっかくヒントをいただいたので自分で調べようと思っていたのですが
ご丁寧にありがとうございます。
<asp:Parameter>
というのはGUIで作成するところで言う
パラメータソースが「None」のものですね。
Noneてどういう時に使うのかと思っていました。
こちらを組み込んだところ無事動作が確認できました。
ありがとうございました。
ASP.NETの勉強サイト、またはTips集のサイトを教えてください!!!
>>249 ほとんど分からないのなら
一通りの機能には触るので
>>2 のMicrosoft ASP.NET
クイック スタート チュートリアルを最初の項目から順
にやっていくといいよ。
ただ、
>>2 のリンクはasp.net 1.1版なので2.0の場合は
web上では公開されて無いので「ASP.NET 2.0 クイック
スタートチュートリアル」をインストールしてみるといい。
最低限このクイック スタート チュートリアルの内容が
全て分かって無いとTips集なんか見ても理解できないかも。
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を使用しているからでしょうか?
>>254 DBMSのインストール時に名前付インスタンスにしてしまったら無理
既定のインスタンスでインストールすればインスタンス名無しでいける
Books On Lineをインストール前に入手して読めばわかることなんだけどね
>>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と関係ないし。
http://www.microsoft.com/japan/msdn/sqlserver/express/ssesecurity.aspx こことか参考にして理解した上で好きなようにしてください。
257 :
nobodyさん :2007/10/31(水) 14:35:49 ID:KCIK9HQ4
gridviewのrowを編集モードにして、値を入力する際に、 Javascriptを使用して、winodw.openで子ウィンドウを開いて、 そこから値を選択し、親windowの編集モード中のrow内のtextbox1に、 子Windowsで取得した値を入れたいのですが detailviewには下記のようにして値を直接入れられるのですが、 −子windowで値選択時のコード− Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.SelectedIndexChanged Dim str As String = GridView1.SelectedRow.Cells(1).Text Dim strScript As New System.Text.StringBuilder strScript.Append("<script language=javascript>") strScript.Append("window.opener.document.form1.DetailsView1$TextBox1.value = " & str & ";") strScript.Append("</script>") RegisterStartupScript("window", strScript.ToString) End Sub gridview内のtextboxに入れようとすると strScript.Append("window.opener.document.form1.GridView1$ctl02$TextBox1 = " & str & ";") というように編集中のrow数を指定すれば入れられるのですが、 これはどうかと思い、別方法を考え 親側のform1内にhiddenコントロールを配置し、そこに値を渡してポストバックして、 page_loadでそのhiddenコントロールの値を編集中のrowのtextbox1に渡すことを考えたのですが 編集中のrow内のtextbox1への値の入れ方が分かりません。 page_load内にどのように書けば編集中のrow内のコントロールに値を渡せるでしょうか?
今手元に本がないので曖昧なのですが、 「Sessionには、〜と、シリアル化できるオブジェクト(?)を渡す事ができる」 と書いてあったと思います。 シリアル化とはどういう意味なのでしょうか?? あとエラー処理で 「エラーは多数の行のコードをtry,catchで囲むのではなく、エラーの起きる可能性のある 行を1行ごとにtry,catchで囲むのが良い」 と書いてあったように思います。 もし、1行ごとに囲むならば、Exceptionの詳しい内容を調べる必要があると思いますが、 Exception一覧、というが載っている資料もしくはURLがありましたら教えてください。 よろしくお願いします。
>.NETでなら、簡単に言えばクラスがISerializableインターフェイスを実装しているか。 違うだろ。
>>261 今まで大した質問にも答えてもいないのにこう言った
揚げ足とりにだけ必死にならずに説明すりゃいいのに。
ISerializableが必須で無い理由など詳しく説明してあげてくださいな。
>>260 ありがとうございます
ISerializableインターフェイスですか!
セッションInProcモード初耳でした
エラー処理は一つ毎にExceptionを書くと面倒なことになりそうですね
みなさん(というか実際の業務では)どう書いているんだろう・・・
ISerializableはシリアライズ処理のカスタマイズ用インターフェイス。 シリアライズ可能であることを示すのはSerializable属性。 ISerializableを実装しててもSerializable属性がついてなきゃシリアライズ不可。 ISerializableを実装して無くてもSerializable属性がついてればシリアライズ可。 独自のシリアライズ処理を行いたい場合のみISerializableを実装する。 これで満足か?
>今まで大した質問にも答えてもいないのにこう言った
>揚げ足とりにだけ必死にならずに説明すりゃいいのに。
必死て、ていうか揚げ足じゃなくて間違ってんだろうに。
まあ俺は困らんけど
>>259 は困るんじゃないのか?
>ISerializableを実装して無くてもSerializable属性がついてればシリアライズ可。 あと、これはメンバが全部シリアライズ可能な場合など制限はある。 あと基底でISerializableを実装してる場合は派生でオーバーライドしなきゃならない場合もある。 あとInProcだと確かにシリアライズできなくてもいいんだが、 なんというか後々のことを考えるとシリアライズできるもののみにしといた方がいい。
>>265 いやだから揚げ足だろうが実際間違ってようが
間違ってるって言いたいならそれを書けよって言われてるんだろ?
「違うだろ」ってだけ書いてもなんの解決にもならないから。
261で違うだろっていって、そのままそこに何が間違ってるか回とけば良かったんだよ。
言われてから後発でこれでどうだって言うぐらいなら最初から言えよって話なんじゃないの。
なんにせよ無駄な時間だろ?
>>261 の時点で理由も書いてりゃ
>>262 自体存在しねえんだから。
>>264 満足です。
まぁ、本当は「ISerializableを実装して無くてもSerializable属性が
ついてればシリアライズ可。」の揚げ足取ろうとしてたら、
>>266 で
多分、
>>261 ?が補足していたので消したけどね。
>>265 個人的にはSerializable属性を付ければシリアライズされますと言うのは
>>266 のように単純では無い事もあるので、
>>259 がここら辺をあまり理解
していない物として、ISerializableで検索でもしてオブジェクトをシリアライズ
する過程を調べてもらおうと思ったんだがね。
だから、ISerializableインターフェイスを実装しているものが、セッションに
入れられますと言ったつもりは無いんだがまぁ、間違ってるといわれれば
仕方ない文章なのはすまない。
このスレ盛り上げようと、ほとんどの質問に答えてたのだが、もう少し勉強
しないと駄目だなw
>>265 意味不明。俺にとっては
>>261 の方がただの横槍なのか、
指摘してるのか分からんだけ
>>259 が困ると思うけどね。
そもそも掲示板なんて間違いを教えられる可能性もある事が
前提なんだから自分で調べるのは基本だろ。
そうか? 違うだろ、があるのと 何も無いんじゃ、 これから調べるにしても少なくともないより間違いにくいと俺は思うけど。
>>266 のように単純では無い事もあるので、
>>259 がここら辺をあまり理解
していない物として、ISerializableで検索でもしてオブジェクトをシリアライズ
する過程を調べてもらおうと思ったんだがね。
こういうのは、お前が思ってるだけで特に分からないヤツには明確に書かてあげないと意図伝わらないだろ。
>>265 は
>>262 の後半のつまり説明しろに対して書いたんじゃなくて
余計なこというな、に見えた部分に対して書いたんだすまん。
今は大丈夫っぽいけど昔はシリアライズからみは間違った解説がいっぱいあったからな〜 XmlシリアライズするためにSerializable属性が必要とかISerializable実装するとか Serializable属性ついてるのにXMLシリアライズできないバグがあるとか 上で出てきた話とかいろいろいろいろw
274 :
253 :2007/11/05(月) 03:13:44 ID:???
>>256 ASP.NET側とJavaScript側で動作が違うので
CustomValidatorを使用して自作することにします。
ありがとうございました。
>>270 ないない
そもそも、「これから調べるにしても少なくともないより間違いにくい」とか
思ってる奴なら詳細を説明しようとするもんだ。
これで満足か? きめぇwwwwwwwwwwwww
既出かもしれませんが、とりあえずこのスレのはじめからは読みました。
PageA⇒PageB⇒PageA' と遷移したとき、PageA'に戻ったときに、
PageAの状態をそっくりそのまま復元する方法は、はやりViewStateを
Sessionに保存するのが一番いい方法でしょうか?
いろいろ探して
http://d.hatena.ne.jp/entlib/20070221/1172058201 をみつけたのですが、
どうもASP.NET Ajaxを使用しているせいか、
「このページ状態は無効です。壊れている可能性があります」
とエラーが表示されてしまいます。
ヒントとなるようなソースもしくはサイトをご存知でしたらご教授いただけると助かります。
また、個別のコントロールをSessionに保存する方法でも結構です。
どうぞよろしくお願いします。
278 :
nobodyさん :2007/11/06(火) 18:25:38 ID:zErdHZrx
↑環境を記述するのを忘れていました。 開発環境 WindowsXP Pro VS2005Pro C# ASP.NET Ajax です。 初代VS.NETからサポートに入っていますが、今だによく分かっていませんorz
279 :
nobodyさん :2007/11/09(金) 08:54:04 ID:AOsg/er1
VS2005のASP.NET(VB.NET)でWebページを作っています。 デフォルトの設定だと半角の「\」(円マーク)が出ないので、globalizationをShift_jisにしたのですが、 今度は全角の「〜」(波線)が?になってしまいます。 ASPで作っていたときは特に表立った問題は起きなかったのですが、ASP.NET下で両立させる 設定はできないのでしょうか? OSはWinXPと2K、ブラウザはIE6です。 パッチ類は一通り当たっている状態です。
¥
281 :
nobodyさん :2007/11/10(土) 21:52:12 ID:IaYZNmi9
〜(波ダッシュ)は化けないでしょ。?全角チルダ(XPや2Kでは下がって上がる波の形)は駄目だけど。 UTF-8でも5Cをバックスラッシュではなく円マークで表示する日本語フォントにすればいいかもね。 文字コード関係の知識がないとこれからも困るだろうに。
>>281 レスどうもです。
それが、JISだと「〜(IMEをOnにして~)」を入れると?で表示されるんです。
また、UTFにすると表示はされますが、ここで見えるようなきれいな形の〜ではなく、汚い
フォントの全角チルダ?になっているようです。
どこかで表示フォントを指定する必要があるのでしょうか?
同一Webサーバー内で動いているASPの方はそんなことお構いなしで表示できているのに、
.NETだとダメなのでサーバーに依存しているわけではないというのは判るのですが・・・。
ASP.NETは始めたばかりで、いろんなことが便利に使える反面、複雑で判らないことが多く
かなり苦労してます。orz
ブラウザの言語設定がおかしいとかじゃねーの?
284 :
279 :2007/11/12(月) 13:14:42 ID:???
「〜」が「?」になるのはOracleの問題でした。 あまりかしこいやりかたではありませんが、globalizationをShift_jisにして\が出るようにし、 DBへの接続をODP.NETからOLEDBに変更して対応させました。 コメントしてくれた方々、ありがとうございました。
285 :
nobodyさん :2007/11/13(火) 23:29:46 ID:JHc7eDB0
Response.Cookiesでクッキーの値を取得できますが サーバサイドでクッキーの値を扱うということは クッキーの内容を全てサーバに送信してるってこと?
そうです。
微妙に不思議な表現だなw
GridViewにSQLserverからSELECTしてきたデータをバインドしたいです。 テキストボックスの値をWHERE句に読み込んで…という形なのですが、 SQLcommand.Parameters.AddWithValue("@hage",hage) というようにすると、このあとデータセットで返すことが出来ず、バインドできません。 普通にテーブルアダプタ作ってFillする方法だと、今度はAddWithValueが使えずセキュアになりません。 一応、データセットデザイナだか何だかのGUIウィザードで パラメータ有のバインドが出来ましたが、 コード上でどうにかできないでしょうか。 SQLCeCommandにはResultSetという バインド可能なオブジェクトを返せるのがあるようなのですが…
289 :
nobodyさん :2007/11/14(水) 17:54:37 ID:jLRgJntu
290 :
nobodyさん :2007/11/14(水) 18:40:57 ID:jLRgJntu
>>289 で書きこんだものです。
単純に参照設定ができてなかったようです。
追加で参照設定をしたところ読み込めました。
.NETでお絵かき掲示板を作ろうと思っています。 お絵かき部分のJavascriptは検索していくつか候補があるんですが、 その結果をどうすれば反映できるのかが分かりません。 Javascriptの内部で画像として保存、それからリンクを張るとかだとUI的に面倒なので Canvasに絵を描く、コメントを打ち込む→投稿ボタンを押す だけで一気に画像の保存からコメントの投稿まで終わらせたいと思っています。 が、コメントはテキストボックスにいれておけば、ボタン押下でPOSTされてきますが JavaScriptのCanvasに描かれた絵の部分は一体どこから取得すればいいんでしょう? そもそも絵のデータは一体どこに保持されているんでしょう。
方法として2種類考えています。 SVGのデータとして結果をDBに格納してそれを表示時に再反映する方法。 投稿の時点で画像としてサーバに保存し、そこにリンクを張る方法。 別にどちらでも構わないんですが、どちらの方が簡単に実装できそうでしょう?
GridViewの条件検索でDropDownListを使っています。 静的項目として「すべて」という項目を作り、 AppendDataBoundItems=trueにしています。 SqlDataSourceのSQL文のWHEREの対象句が文字列であれば 例:「…WHERE (Book like @Book)」として項目「すべて」のValueを「%」に しておけば、選択されたらすべてが表示できるのですが 以下のように、対象句がIntの場合 SELECT ID, Book FROM tbl_Book WHRERE (ID = @ID) DropDownListで「すべて」が選択された場合にすべてを表示 させる動きにするにはどのようにしたらいいのでしょうか? 使用しているデータベースはSQLSERVER2005EXPRESSです
294 :
nobodyさん :2007/11/29(木) 17:46:04 ID:rMbVmK8t
SelectionChanged かなにかのイベントで 場合分けしたらいいんじゃないのかな。
295 :
nobodyさん :2007/12/04(火) 14:38:47 ID:l2Tev5nw
ASP.NETで画面をHTMLで作成する時、Labelがずれちゃったりテーブルの高さが おかしくなったりするんですけど、これってどう対処すればいいですかね? Widthを調整したり、全角と半角で微調整ってのは一応わかってるんだけど他に何か うまいやり方ってあるかな?
296 :
nobodyさん :2007/12/04(火) 18:19:09 ID:l2Tev5nw
295です。 画面設計についてはVisualWebDeveroperのヘルプに書いてありました。 ネットで検索するよりヘルプの方が情報量多いね。盲点だった。
297 :
122x218x24x97.ap122.ftth.ucom.ne.jpfieojfefe :2007/12/05(水) 11:39:13 ID:bGekTFEd
e
298 :
ヘルプ :2007/12/07(金) 00:22:59 ID:???
誰かわかる方がいらしたら教えてください。 ASPを使ってネットワークフォルダのファイルを参照したいのですが、うまくいきません。 認証はwindowモードでユーザ偽装をおこない、iiSの統合windows認証のユーザに偽装します。 そこでエクスプローラで \\マシン名\フォルダ名だと参照できるのに同じユーザでASPにてファイルを参照しようとすると権限にてはじかれます。 どなたかわかりましたらお願いします。
ふらっとで質問したのですが、こちらで聞いた方が良いと誘導されてきました。 あるプロトコルでチャットに接続し、ユーザはIEの画面を通して発言したり 他者の発言を取得して画面を更新したりするプログラムを作りたいと思っています。 以下のような構造になるのかなと考えています。 【ユーザ】←HTTP→【画面側プログラム@】←なんらかの方法→【プログラムA】←→インターネット @: ASPで、他者の発言の取得はn秒ごとにポーリングを行う。 (サーバプッシュ型にできればなお良い) A: EXEにしてサービス化?ともかく常時起動しており、チャットには繋がりっぱなしにする。 @の状態には依存しない。 ASPにして@と同化させると、ユーザが画面を開くたびにインスタンスが新しくなってしまうのと ユーザが画面を開かなければインスタンスを作れないので分ける必要がある(と思っている) そこでよく分からないんですが、まず、IISの起動と終了のイベントを拾って プログラムを動かすことができるのでしょうか。 可能なら、@とAを一緒くたにして、IIS起動でチャット接続して、その状態をstaticメンバにして 全インスタンスで共有し、終了で切断するということでASP一本にできると思ってます。 これは可能でしょうか。 もう一つ、分ける場合には@とAで情報のやりとりをする必要があります。 Aでインタフェースを提供し、@はそれを呼び出すだけという形にしたいです。 @から見たときに利用を簡単にしたいので、できればWebサービスとしてインタフェースを 提供できないかなと思うのですが、AがASPじゃなく普通のEXEの時に、AでWebサービスを 実装するにはどのようにすればいいのでしょうか。 (AがASPなら、IISが良きに計らってくれますが…) また、Webサービスが無理ならどういう方法で通信するのがベターでしょうか。プロセス間通信とか? 妄想段階なので曖昧な点が多いのですが、アドバイスをいただければ幸いです。 よろしくお願いします。
@のApplication_StartでAの処理開始すりゃいいんじゃねーの普通は。
ありがとうございます。 ちょっと確認させてください。 Application_Startは、IIS起動後最初のユーザがページにアクセスして、 一つ目のインスタンスを作る時に発生。 Application_Endはすべてのセッションが切断された時に発生。 という認識であってるでしょうか。 できれば、IISからWebサイトを起動した時と停止した時にイベントを拾いたいのですが、 そういうイベントはありませんでしょうか。
302 :
nobodyさん :2007/12/08(土) 23:10:32 ID:qOs8ePBr
今日からASP.net始めました。よろしくお願いしますw すみません。厳密にはVisual Studio 2005の使い方になってしまうかもしれませんが……。 ASP.netで使用中のデータベースの内容を見ようとしたのですが、サーバーエクスプローラの「データ接続」から.mdfファイルを開く(データベースに接続する)ことが出来ません。 「ユーザーの既定データベースを開けません。 ログインに失敗しました。 ユーザー 'hostname\username' はログインできませんでした。」 というダイアログが表示されます。 接続文字列内でAttachDbFilenameでファイル名を指定しUser Instance=Trueとして接続すると、こういう使い方は出来ないのでしょうか?
一つ目のインスタンスってなんのこと? Application_Endはアプリケーションがシャットダウンされるとき。 通常はユーザのアクセスが一定時間無かったとき。 サイト起動時ってのはASP.NET側ではない(まだ動いてもいないから) サイト起動時にやらないといけない理由があまり見当たらないんだが…
304 :
302 :2007/12/08(土) 23:12:38 ID:???
追伸です。 まだSelect文しか流してはいませんが、ASP.net側ではとりあえず接続は出来ているようです >問題のデータベース
>>302 ASP.NETで使用中とは、IISで運用中ってことかい?
IISで動作中は、例えばIIS6だとNETWORK SERVICEユーザが使用中だから、
User Instance=Trueでは使えないはず。
>>303 ユーザが画面を開いていないときでも、チャットには繋げっぱなしにしたいのです…。
とりあえずWebサーバ起動時に繋げにいって、チャットの書き込みをサーバのログに吐く。
ユーザは必要な時だけWebサーバにアクセスするという形で。
自分だけが使うものなので、最悪、起動時は必ず画面を開いてApplication_Startを
呼んでやるという形でもいいのですが、終了時はApplication_Endでチャット切断処理を
やってしまうと、ユーザからのアクセスが無いときに勝手に接続が切れてしまうので…。
かといってどこかに明示的な切断を入れないと、アプリ終了後もタイムアウトするまで
チャットに居座りっぱなしになる行儀の悪いプログラムになるなあと。
ユーザの状態に依存しない開始と終了イベントを取れれば、
ユーザは必要な時だけWebサーバにアクセスし、ユーザはサーバ側のチャットへの
接続状態を気にしなくて済むようになり、サーバ側もユーザの接続状態を
考えなくて済むようになると思いまして。
画面側にはWebサービスとして、チャットで発言するメソッドと、画面更新のために
最新のチャットログを取得するメソッドくらいを提供してやればいいかなと。
307 :
302 :2007/12/08(土) 23:31:32 ID:???
>>305 早速のお返事どもっす。
こーゆー使い方したかったらちゃんとSQL Server動かせってコトなんですね
……まぁ、「AttachDbFilenameでファイル名を指定しUser Instance=Trueとして接続」するのが「ちゃんとしていない」ってコトはないんでしょうが……。
要はPHPのSQLiteとかJavaのHSQLDB(のスタンドアロンモード)と考えればOKかな?
手軽には使えるけど、ちょっとイヂりたいとかの場合は不便ですなぁ。
んーUser Instance=Falseじゃだめなのけ?
>>306 ようわからん、サイト起動時に接続するんじゃ
もはや切断なんて関係ないレベルですでに十分行儀悪いと思うが。
どうしてもそんな風にしたいんならサービス作るしかないんじゃない?
むぅ ちなみにEXEで作ってサービス化した場合、その中でWebサービスとして メソッドを提供することは可能でしょうか? それとも、WebサービスにしたいのならASPで作らないとダメでしょうか。
311 :
302 :2007/12/09(日) 09:59:21 ID:???
>>308 ダメみたいですねー。今度は本体(ASP.net側)でエラーが出ます
>User Instance=False
Application_Endが呼ばれた後って、Applicationオブジェクトに格納していた オブジェクトはどうなります? 要するに、ユーザがしばらくアクセスしなかったら、破棄されたりします?
Application_Endが呼ばれるってことはそういうことだ。 まあtimeoutを伸ばすとか終了させないようにする手もあるが、 普通は必要ない。
んー、ようするに、ASPでユーザの状態によらないオブジェクトの維持は無理ってことですかね? 例えば、今日一日のアクセス数を返すようなWebサービスは、変数をファイルに 書き出して保持しないと維持できない訳ですよね? 一番生存期間が長い(と思う)Applicationも、ユーザのタイムアウトによる Application_Endで破棄されるみたいですし。
だからリサイクルの設定をみんなオフにする手はあるが、 どっちにしても保証はされてないから結局Endで保存、 Startで読み込みとかは必要になる。
あ、いや、Endで保存、Startで読み込みは微妙だな、うまくいかない可能性がある。
317 :
302 :2007/12/09(日) 23:04:34 ID:???
たびたび申し訳ないっす。 TableAdapterを試そうとして少々苦戦しています。 VisualStudioでのビルドは通るのに、実行時に型または「名前空間名 'hogeTableAdapters' が見つかりませんでした」って出るのはどうしてでしょう? ……TableAdapter自体もよーわからんっす。Fillした後、どうやってデータを取り出せばいいんだろう? 「ASP.net 2.0 実戦プログラミング入門」という本を参考にしていますが、あまりいい本ではありませんね。 ちょっと後悔。
318 :
302 :2007/12/10(月) 10:37:10 ID:aKqH/kSM
>>317 あ、申し訳ありません。age忘れてましたね。失礼。
319 :
302 :2007/12/10(月) 18:53:27 ID:???
おい、PHPスレを荒らしに来てるやつ自重しろクズ
321 :
302 :2007/12/11(火) 17:02:22 ID:fZiANqi9
スレ汚しですみません。 TableAdapterの方はなんとなく判ってきましたが、わき道に逸れてGridView+FormViewなんてモノに手を出してます なんとかマスターメンテらしきモノを作るところまでは出来たのですが、FormView側で登録・更新・削除した結果をGirdViewに表示させることが出来ません。 ググった結果「GridViewのEnableViewStateってプロパティをFlaseにすればOK」という情報までは取得できましたが、この設定にはなにか副作用があるのでしょうか? 単に「初めての表示/明示的な読み込みの結果を保持しておきたい」という目的以外にTrueにする意味はあるのですか?
322 :
nobodyさん :2007/12/13(木) 00:41:26 ID:6Y2No+8T
>>306 コメットを使うことが出来ればやりたいことは実現できそう?
どっからコメットが…
DBからSELECTしてきたDataSet等に、 さらにSQLを投げてDataSetを作成することは可能ですか?
会社の環境はVS2005なのですが、ちゃんと aspx aspx.cs designer.cs とワンセットで表示されるのですが、家の環境はWebDevelopperで designer.csがソリューションエクスプローラに表示されません。 aspxなどの場所にdesigner.csファイルもありません。 これはどうやって表示させるのでしょうか? WebDevelopperはソリューションファイルやプロジェクトファイルも無いんですよ(^^; なので、いつもファイルをダブルクリックして立ち上げるのではなく WebDevelopperを開いて、スターと画面から最近実行したソリューションの一覧から選択してる・・・
327 :
nobodyさん :2007/12/16(日) 19:34:30 ID:IvdqqwNS
教えてください。 Repeaterにユーザコントロールファイルをセットして実行し、 ascx.csでRepeater.DataSourceに入っているデータレコードを取得したいのですが そんな事は可能でしょうか? this.rep.DataSource = dataTable; this.rep.ItemTemplate = Page.LoadTemplate("Test.ascx"); this.rep.DataBind(); Test.ascx.csでdataTableのレコードを取得したい。 ascxでは <%# DataBinder.Eval(((RepeaterItem)Container).DataItem, "name") %> で取得可能なのですが、これをascx.csでやりたい。 何でかと言うと、この値によって処理を変更したいからです。 お願いしますm(_ _)m
>>324 ds.table.select("id=1")でDataRow[]が取り出せたような…
これでデータセットに対するselect文は実現出来ない?
>>328 ありがとうございます。
発端というのが、SQL文が長くなってしまったので、
DataSetを一時テーブル代わりに、小分けにして実行できないかという
安直な思いつきだったのです。
DataSetを2つ作ってから要素を取り出して、
疑似LEFT OUTER JOINとかやってみたのですが余計に大変だなとw
そんな訳で…申し訳ありません。きちんと背景から書くべきでした。
330 :
nobodyさん :2007/12/19(水) 01:40:10 ID:kIBGOFX3
現在のページのファイル名を取得できる プロパティとかありませんか? 用途としては自分自身のページにパラメータをつけて 再度呼び出し、Request.QueryString()でその値を 取り出すためです。
331 :
nobodyさん :2007/12/28(金) 00:08:34 ID:EfHkVobu
VWD2005(VB.NET)を使ってます。 javascriptでサブウインドウを作って、閉じる処理をしたいのですが サブウインドウが閉じない場合があるので回避法を教えて下さい。 awin=window.open('a.aspx', 'a'); awin.close(); この場合うまく閉じる。 awin=window.open('a.aspx', 'a'); ポストバック発生 awin.close(); サブウインドウ閉じない。
>>330 俺は定数で宣言してる。
>>331 a.aspx内にウインドウを閉じるスクリプトを書き、
なんらかのイベントを受け取らせて実行させればいいんじゃね。
つか、ウインドウを開いて何のイベントも発生させず、
しかし、ポストバックを起こして閉じたいなんてどういう用途なんだ。
333 :
331 :2007/12/28(金) 22:24:13 ID:???
>332 回答ありがとうございました。 実際のコードは間に種々の処理がありますが、最小限の再現コードを 書いただけです。 とりあえず、解決しました。 a.aspxからopenerを一定間隔で監視し見つからなければ自身を 閉じることで実現しました。 openerが遷移した際は、opnerにhiddenを埋め込んでおきa.aspx側から 監視することで遷移を判断しました。
Request.CurrentExecutionFilePath 辺りとか?
335 :
330 :2007/12/30(日) 22:06:04 ID:???
Request.CurrentExecutionFilePathと System.IO.Path.GetFileNameを使って 取り出せました。 ありがとうございました。
しつもんしつもん。 ローカル環境(Web Developer 2005+SQLServer2005)でWebアプリを製作して、 とりあえず動くようになったのでサーバーにアップしたのです。 あ、サーバーはファーストサーバーのエクスプレス2です。無料のね。 なんとかかんとか設定を終えて、いざ実行!・・・したら、エラーがでるのです。 System.NullReferenceException:オブジェクト参照がオブジェクト インスタンスに設定されていません。 ってね。 ローカル環境では問題なく動作するのに、サーバーにアップするとエラーになるってのは、 どうしてなんでしょうか???
オブジェクト参照がオブジェクトインスタンスに設定されていないからだろ
ActiveReportsを64ビット環境でどうにか使えるように出来ないでしょうか?
340 :
初心者 :2008/01/24(木) 15:18:55 ID:RPd1Q97N
ASP.NET でRDOとかでSQLサーバーに接続できるのでしょうか? それともAODだけなのでしょうか?
341 :
nobodyさん :2008/01/24(木) 15:36:11 ID:7JZT46In
Hoge.aspxで <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder" Runat="Server"> <asp:Label ID="heading" runat="server"></asp:Label> </asp:Content> のようなブロックがあったとして、Hoge.aspx.vbからasp:Labelを取得したいんですが、 どうやればいいのでしょうか? 単純に Page.FindControl("heading") では取得出来ないようで・・・ よろしくお願いします。
342 :
341 :2008/01/24(木) 17:22:36 ID:7JZT46In
上の件については解決しました。 無理にFindControl使わずに、headingをそのまま使えるみたいですね。 しかし、新たな問題が。 Page.Request.QueryString("param1") として取得したクエリ文字列に日本語が入っていた場合、 AscW関数で取得した数値が一律65533になってしまいます。 どうにか日本語のまま取得出来ないでしょうか? よろしくお願いします。
343 :
341 :2008/01/24(木) 17:50:53 ID:???
何度もすみません、解決しました。 web.configに <globalization requestEncoding="Shift_JIS" /> を書くことで日本語で取得できました。
344 :
nobodyさん :2008/01/24(木) 21:04:09 ID:swcPOcpz
>>343 目先の結果だけで変更しちゃっていいものなのか?
と、ちょっと思った。
345 :
341 :2008/01/24(木) 21:23:24 ID:0wPjeug7
ではどうするのがいいのでしょうか?
VS2005使っています。マスターページを利用しているaspファイルの コンテンツに、vbファイル内にて取得したhtml文を出力させたいのですが どうやったらよいのでしょうか?コードは次のようになります。 ■test.aspxの中身 <%@ Page Language="VB" MasterPageFile="~MasterPage.master" AutoEventWireup="false" CodeFile="test.aspx.vb" Inherits="test" %> <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> ?ここに、test.aspx.vbの変数AAAAAに格納されたhtml文を出力するコードを書きたい。? </asp:Content> ■test.aspx.vbの中身 Partial Class CountMonth Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal Sender As Object, ByVal e As EventArgs) Handles Me.Load AAAAA="<table><caption>サンプル</caption><tr><td colspan=0 align=center><b>ほげ</b></td></tr></table>" End Sub End Class
>>345 344とは別人ですが,
「考えてShift_JISに変えることで問題を解決させた」なら良いけど,
「Shift_JISに変えてみたら解決した(ように見えた)」なら不安や疑問が残るのは当然。
限定された利用環境でしか通じない(=限定された利用環境では通じる)
ということを理解してるなら問題無いと思う。
345は自分の想定している利用環境を見つめ直してみると良いんじゃない?
自分用アプリだとしでもDB絡みとか考えることは色々あるかも知れない。
文字の符号化の問題はなにかと躓きやすい問題の一つ。
>>346 変数AAAAAに書かれたコードの安全性を検証できないんじゃないかとか考えたり。
TreeView のあるノードをクリックしてポストバックした後 さきほどクリックしたノードがハイライトになっているようにしたい。 どのようにすればいいでしょうか。 参考になるサイトありましたらリンク先でもはっていただけると助かります。 よろしくお願いします。
350 :
nobodyさん :2008/01/31(木) 20:49:43 ID:pr1Jn4LS
>346 普通に <% =AAAAA %> でいいだろ?
351 :
nobodyさん :2008/02/01(金) 12:55:47 ID:Ik8bhfAO
始めたばかりなのですが、質問です。 とりあえずウィザードで作ったページに、_Defaultってクラスが生成されました。 Page_Load()とかに制御が来るのは分かりました。 このインスタンスっていつ削除されますか? デストラクタを書いたら、起動時に飛んでくるんですけど...; 中でソケット通信していて、終了する時にはCloseしてやりたいのですが、 いつ終了されるか分からなくて...。 宜しくお願いします。
VB2005にてマスターページを使っている ページのコントロールを取得、各プロパティを変更したいです。 Me.ControlsをForで回して取ろうとしたところ マスターページのControlsが取得されてしまいうまくいきませんでした 他に方法はありませんでしょうか? 変更対象が100個くらいあるので・・ 1つ1つ変更するのはできれば避けたい所です。 ご教授よろしくお願いします
353 :
352 :2008/02/01(金) 15:54:44 ID:???
自己解決。 Master.FindControlで探してきてDirectCastで取ってこれました
マスタページを使うよりユーザコントロールでなんとかしちゃったほうが シンプルでメンテしやすい(Javascriptからの扱い等)と思うのは俺だけ?
355 :
nobodyさん :2008/02/07(木) 10:29:47 ID:WbXuHs4A
Close以前にOpenがないだろ? そしてSqlDataAdapterは非接続型だ。 後はわかるよな?
ASP.NETのセッションIDはどういった単位でユニークになりますでしょうか? IPアドレスが違えばユニークになると思いますが それ以外にはたとえばUserAgentが変わってもユニークに なりますか?
どのような環境でもユニークになるから気にしなくておk
>>357 sessionid がクライアントから投げられてこなけりゃ新しく生成される。
だからたとえ同じUAでも別途立ち上げれば別セッションとして扱われる。
UAが投げてるRequest見ると分かりやすいかも。
FiddlerだのWebDevelopmentHelperだので見ると幸せになれるかも知れん。
360 :
nobodyさん :2008/02/11(月) 10:12:41 ID:8IeW4FxX
DataAdapter は接続型だろ。 ただ、Fillメソッドの中で Open と Close してるだけ。
は?
データアクセスコンポーネントをデザイナツールで作成し、 TableAdapterのGetDataでデータテーブルを取得した後 ObjectDataSourceコントロールを使用せずに、コードでGridViewと連結しました。 この場合のGridViewの複数の列に対して非表示の設定を行いたいのですが どのようにコーディングすればよいのでしょう?
DataTableのColumnsの数を調整する
そうなのか、DataTableで調整するんですか GridViewの列数をカウントしても0となってるんで悩んでました
信じてどうする
366 :
nobodyさん :2008/02/18(月) 18:21:09 ID:p++OLHN+
ASP.NETで構築したサイトがあるのですが、社内のイントラWebなので 統合Windows認証で認証を行うようにしてあります。 先日、IE6からIE7に切り替えたのですが、上記のサイトに接続する際にユーザ名と パスワードを確認するダイアログが出るようになりました。 従来どおり、ダイアログが出ないようにするにはブラウザの設定が必要なのでしょうか? インターネットオプションの信頼済みサイトには上記のサイトが入っています。 IE6では、これを設定すればダイアログが出ないようになりました。
自己解決しました。 今までは信頼済みサイトにサイトを入れていたのですが、イントラサイトに入れなおして ログインのオプションを調整したら入れるようになりました。 お騒がせしました。
すみません。質問です。 ASP.NETをはじめたばかりなので、どのコントロールを 使ったらいいかというレベルです。 掲示板みたいに、ログファイルを整理して表示するページを作っているのですが、 どのコントロールを使ったらよいのでしょうか。 DataListを見ると、1行おきに設定できるのは、色だけであり、 フォント関連のタグは指定できません。 Tableも、値を追加することは出来ても、フォント関連のタグは 指定出来ません。 ASP.NETは、デザインで、オブジェクトを配置してプログラムする スタイルですので、プログラムのループで、オブジェクトを配置というのも 出来ませんよね・・・
369 :
368 :2008/02/19(火) 15:04:42 ID:???
追加で補足です。
例えば、以下のサイトのサンプルの掲示板では、
書き込む時にログファイルにタグも含めて書き込んでしまい、
データを表示するときに、すべてのデータをLabelに表示する
という形式を取っています。
ttp://aspnet.cguild.com/download.html ASP.NETの場合は、こういうやり方しかないということなのでしょうか。
私は、2ch.netみたいに、データだけのログファイルがあり、
それを自由にレイアウトしながら表示するというものをしたいのです。
これが、Perlだとすぐにイメージがつかめるのですが、ASP.NETとなると
プログラムの全体概要のイメージが出来ないのです。
それで、どういうコントロールを使ったら良いのかを質問してみました。
>DataListを見ると、1行おきに設定できるのは、色だけであり、 >フォント関連のタグは指定できません。 DataBoundイベントでも引っこ抜いて、動的に生成すれば大抵のことはできる。 マウスでD&D、ちょいちょいとプロパティ設定で、はい出来上がりではない。 >ASP.NETは、デザインで、オブジェクトを配置してプログラムする そらホームページビルダーだろw 基本的にデザインビューは、知らない人が保守で見たときに オブジェクトの相関関係が目で見て分かりやすいってものだと俺は認識してる。 コードで書けばいい。 >データを表示するときに、すべてのデータをLabelに表示する Labelなんてspanタグだ。"<span> %s <span>"だと思えばいい。 >ASP.NETの場合は、こういうやり方しかないということなのでしょうか。 んな訳ない。好きなように出来る(一部、死ぬほどやり辛いことはあるが)。 ちょっと初心者過ぎる気がするので、本を一冊買って来た方が良いと思う。
>>370 レスありがとうございます。
> DataBoundイベントでも引っこ抜いて、動的に生成すれば大抵のことはできる。
> マウスでD&D、ちょいちょいとプロパティ設定で、はい出来上がりではない。
なるほど。私がイメージしてたものとは違うということのようですね。
コントロールの使い方について学んでいく必要があります。
> コードで書けばいい。
開発環境を使わずにメモ帳を使ってということですよね?
そっちのスタイルでも書いている方は結構いらっしゃるようですね。
> Labelなんてspanタグだ。"<span> %s <span>"だと思えばいい。
spanで囲むだけだったのですか。
何か特別なオブジェクトに格納するので、あまり長い文字は入れたり
しない方がいいのかなと思ったりしていました。
だったら、あの仕様でも良いですね。
> んな訳ない。好きなように出来る(一部、死ぬほどやり辛いことはあるが)。
> ちょっと初心者過ぎる気がするので、本を一冊買って来た方が良いと思う。
分かりました。書籍を購入して読んでみます。
しかし、ちょっと気になったのですが、ASP.NETなど製品版の場合、PHPやPerlに
比べてネットだと情報量が少ないですよね。。。開発をしようとすると非常に費用が
かさむ世界なのでしょうか。。
>>371 >開発環境を使わずにメモ帳を使ってということですよね?
違う違うVS2005。言いたかったことは、君が思ってるよりも
コード(aspx.vbや.vb)の手打ちで実装させることが多いということ。
TextBoxのonblurイベントからJScriptFunctionを仕込んだり、
GridViewに複数列をキーとしたソートを実装したり、
JScriptでの結果をASPにreturnして、さらにその結果をJScriptに返したりとか、
デザインビューのプロパティやコンテクストメニューとかに
項目が存在していなくても、コードを書けばなんとでもなることが多い。
>PHPやPerlに比べてネットだと情報量が少ないですよね。。。
。。。と付ける程少なくないと思うが。つかMSDNとヘルプでほぼ事足りる。
ASP.NETのクイックチュートリアルとか読んだか?試したか?
>開発をしようとすると非常に費用がかさむ世界なのでしょうか。。
ヒント:天下のM$様が開発された代物
つか、個人(だよね?)でASP.NETを使うメリットなんてないと俺は断言する。
>>372 >このメリットは、本当に現場で活かされているのか
活かされてるも何も、うちの会社ではGoTo文使うような扱いを受ける。
どうしても使わざるを得ない場合は設計を見直す。
MVCモデルとかOOPとかその辺の本も買ってきな。
補足: >活かされてるも何も、うちの会社ではGoTo文使うような扱いを受ける。 文字列にタグを入れ込んで表示することが、ね。
>>373 レスありがとうございます。
> デザインビューのプロパティやコンテクストメニューとかに
> 項目が存在していなくても、コードを書けばなんとでもなることが多い。
プロパティに項目がなければ、なすすべが無いみたいに思っていたのですが、
現場の開発ではそうでもないのですね。
私は個人的に、工夫をするコードを書くと、あらかじめ準備しているクラスを活かしきれて
いないことから、重いだけの無駄な処理をしているようなイメージを持っていたのですが、
このあたりが間違っていたようですね。
> ASP.NETのクイックチュートリアルとか読んだか?試したか?
それは読んでませんでした。@ITの記事を読みながらやってましたので。
愚痴のような話ですが、Microsoftの入門者向け情報で、VBなどは読んでいたのですが、
ウィザードを使って、作って、ほら便利でしょ。終わり。という系統のが非常に多くて、
それに応用性が無いと思って読まなくなってました。M$のは中級者向けのがないですよね。
リファレンスはしっかりとしてますが、具体的な応用性がいまいちイメージできなかったり
しています。
> つか、個人(だよね?)でASP.NETを使うメリットなんてないと俺は断言する。
そうです。今は個人でやってます。会社でやることも考えて勉強のような位置づけです。
やはり、チームを組んでアプリを組む場合にメリットがあるわけであり、どんな場合でも
メリットがあるわけではないのですね。参考になりました。
ありがとうございます。
>>373-374 > 活かされてるも何も、うちの会社ではGoTo文使うような扱いを受ける。
> (文字列にタグを入れ込んで表示することが、ね。 )
> どうしても使わざるを得ない場合は設計を見直す。
コントロールを配置する方向で実現する方法があるのですね。
工夫をしてそのような方法が出来るかを見てみます。
> MVCモデルとかOOPとかその辺の本も買ってきな。
ASP.NETは、他のフレームワークと比べてMVCを意識しなくていいという
記事もあります(記事はASP.NET 1.0ですが)が、やはり、開発にはMVCを
意識して、役割を分けて作る必要があるということなのですね。
http://www.atmarkit.co.jp/fdotnet/special/aspstruts01/aspstruts01_04.html MVCで検索するとjavaが良くヒットしますが、ASP.NETを例にしたものは、
簡単な文章のものしか見たことがありませんが、これは、MVCを理解して、
それをASP.NETで応用するという意味でしょうか?
>>374 さんの話は、<asp:〜 runat=server>タグに限った話ですか?
それとも<br>なども含めた話ですか?
DataListの使い方について質問です。 DataListのDataSourceを文字列にすると、意図するように表示されるのですが、 ADO.NETでDataReaderから取得した文字をDataSourceに指定すると、 1マスに1文字となってしまいます。 取得した文字の確認の為、Label等に出力させてみても、改行などは入って いないのですが、DataListにすると、1文字ずつに分断されて表示されてしまいます。 これは、何処が問題なのでしょうか? DataListのコード <asp:DataList id="datalist" runat="server" CellPadding="1"> <ItemTemplate> <%# Container.DataItem %> </ItemTemplate> </asp:DataList> つづく
379 :
378 :2008/02/21(木) 16:11:00 ID:???
つづき string[] st = {"aaa", "bbb"}; datalist.DataSource = st; datalist.DataBind(); の出力結果は、 aaa bbb OleDbDataReader dr = cmd.ExecuteReader(); dr.Read(); string st = dr["タイトル"] + "," + dr["メッセージ"]; datalist.DataSource = st; datalist.DataBind(); の出力結果は、 a a a , b b b b
app_codeフォルダを作成し、その中にコードファイルhoge.csを作成したのですが、 そのhoge.csのusing 宣言でSystem.Dataが認識されません。 System.入力後にインテリセンスでもSystem.Dataが出てきませんし、メンバも利用できません。 参照設定でSystem.Dataを参照しても変わりません。 どこを修正すればよろしいのでしょうか?
>>379 上のコードは文字列の配列を渡しているのだから、
下のコードも同じように文字列の配列を渡すようにすれば良いじゃない
string[] st = { dr["タイトル"], dr["メッセージ"] }; でどう?
>>381-382 それでうまくいけました。
渡すデータの形が悪かったのですね。
ありがとうございました。
パスワード入力のinputってポストバックしたら消えるけど、この値を常に表示させたいが どうすればいいですか
すみません。クッキー以外でお願いします。 ブレークポイント設定して順に追ってみたのですが、どのタイミングで消えるのか分かりませんでした・・・
どうしてもというのであればSessionにつっこむ
やっぱりSessionしかないのですね。ありがとう
>>384 PassBox.Attributes.Add("value", "パスワード")
でいかが?
390 :
384 :2008/03/01(土) 13:09:02 ID:???
ページ内でエラーが発生してcatch句で処理する場合など、 エラーが発生したことを表示させるにはLiteralとかで表示させるのが一般的なのでしょうか?
global.asaxでまとめてcatchしてエラーページに飛ばす。
サイト発行で完全コンパイルしていますが、特定ページのみコンパイルしない状態を作ることは出来るのでしょうか。
ASP.NETでASP.NETを実行してるユーザーの権限とかいじらずに デフォルト状態でファイルとかにログを吐くにはどうしたらいいのでしょうか?
普通にglobal.asaxとかで出来ない? 出来ないならNetwork Serviceアカウントに権限与える必要あり。 FileSystemAccessRuleクラス当たりをググってみて
App_Dataにでもはいとけ
>396 うまくいきました。
398 :
nobodyさん :2008/03/08(土) 19:12:02 ID:J6kJ8MXk
asp.netのSessionについて調べているのですが、 Session.SessionIDプロパティの値って、いつ設定されるのでしょうか? 最初にwebアプリのaspxファイルにアクセスした時ですか?
はい。該当の仮想ディレクトリにアクセスされた時です。
うそつけ
自宅でASP.NETの勉強をしようと思い参考書を買ったのですが、不具合が… 参考書では >Windowsコンポーネントの追加と削除」→ >Windowsコンポーネントウィザード」→ >インターネット インフォメーション サービス(IIS)」にチェック→ >「詳細」を左クリックします。 もうこの時点でアウト。 『インターネット インフォメーション サービス(IIS)』自体が表示されてません。 非常に困ってます。どうすれば表示されますか?教えてチャンですいません。
402 :
sage :2008/03/08(土) 22:46:29 ID:J6kJ8MXk
Sessionオブジェクトに値を設定したときかな。 IsNewSessionプロパティを見れば判るかも。
>401 環境は?XPの場合Home Editionだと×。IISはProfessional Edition 以上
404 :
401 :2008/03/08(土) 23:10:59 ID:???
OSはXP Home Editionです。 Professional Edition以上とは参考書に全然書いてないんで、安心しました。 勉強段階で行うのはアプリの動作確認だけだし、 使ってるレンタルサーバが「ASP.NET対応!テスト使用にもどうぞ」って謳ってるので、 IISは必ずしもクライアント側では必要ないのかも? という気がしてきました。 (間違ってたらご指摘下さい。) お早いレス、有難うございます。
>>404 まあ、必要ないっちゃあ必要ない。
ただ、デバッグとかするのにはあるほうが数倍便利。
>参考書では いつの参考書だ?
>>404 OSはXP HEは駄目だと表記されてない書籍というのは相当怪しくないか?
あと、出来れば、プログラムが無限ループになる可能性もあるから、
レンタルサーバの使用は避けた方がいいと思うけどな。
あと、XP HE でも、ASP.NETは動かすことは可能だぞ。2005以降のIDEだと
自動でローカルで動作確認が出来るツールが入ってくるし。
408 :
nobodyさん :2008/03/10(月) 20:47:04 ID:X6+NrWjc
>>404 Virtual PC + Windows Server 2003 180日評価版
変数をstaticで宣言した場合、いつまで保持されるのでしょうか ポストバックしても残ってますが そのページ内でのみ残ってるのでしょうか
ASP.NETワーカープロセスが終了するまでじゃないの
それはないわ
正確にはアプリケーションドメインがアンロードされるまでだが、 ワーカープロセスが終了するまでというのはぜんぜん違うというほどではない。 で >それはないわ どういう意味で言ったのかね?
413 :
409 :2008/03/14(金) 00:11:32 ID:???
ありがとうございます。 Session変数みたく扱えるってことですね。逆にむやみやたらと使うと ワーカープロセスが終了するまで残ってしまうのでよくないですね
旧ASPのコードをそのまま動かす方法はないでしょうか? Google AdSenseのモバイル広告を使いたいのですが旧ASPのコードさかないので・・・
さかない→しかないの間違いです
ASP.NET3.5+AJAXではじめるECサイト構築入門って本買ったんだけど ウリの一つのネットショップのサンプルファイルがCDから洩れてるし。 MasterPageHorizontalMenu.ascx.vb 誰か↑のファイルなんとかしてくれ。
あほか、機能くらい書けよw 実現してやるから
質問です。 環境:VisualBasic 2005 ASP.NET2.0 AJAX Control Toolkit CascadingDropDownのListBox版というのは不可能なのでしょうか? CascadingDropDownはListBoxに適用できないため自力でやるしか方法はないのでしょうか?
420 :
nobodyさん :2008/03/19(水) 14:24:55 ID:zbaC+I0y
IIS6.0でASP.NET3.5を動かすことはできるのでしょうか? 設定の方法が載っているサイトなどあれば教えてください。
421 :
nobodyさん :2008/03/19(水) 17:19:26 ID:n1YREe+h
すみません。自分はJavaプログラマでしたが、スレッド恐怖症です。 デッドロックとかむかつきます。 ASP.NETなら、スレッドは関係ないですか?PHPみたいにスレッドが関係ないといいです。 よろしくお願いします。
423 :
421 :2008/03/21(金) 20:41:42 ID:???
>>422 どうもレスありがとうございます。漫画喫茶からのアクセスなのでどうしても
お礼が遅くなってしまいます。私が聞きたいのは、Javaだとサーブレットでは
通常はdoGetもしくはdoPostメソッド内での処理を書くのですが、それらメソッド外(いわゆるグローバル変数)を使います。
その場合、サーブレットは1つのクラスがマルチスレッドで動いているものですから、グローバル変数はマルチスレッド対応の
ソースコードを書かないとバグを引き起こします。しかし、PHPだと言語の仕様上そのような配慮はいらないです。
VB.NETでWEBのソースを書く場合はどうなのかとおもいまして。
また、答えていただけたら、幸いです。
それはマルチスレッド云々の問題ではなく、グローバル変数の利用法に 配慮したコーディングが出来てないだけじゃないのか・・
PHPだと配慮しなくてもOK Javaだと配慮しないとNG で、ASP.NETは?って聞いてんだろ。きっと。
>>421 PHP:マルチスレッド非対応
Java:マルチスレッド対応
ASP.NET:マルチスレッド対応
以上。
って言うのもこのスレ的にアレなのでASP.NETを使ってみて欲しい。
今回のケース(VB.NET)では一番簡単なマルチスレッド対応として
SyncLockを使えば良いだけに思える。(Javaのsynchronizedっぽいの)
慣れてきたら色んな排他制御の仕組みを適材適所で使い分けましょう。
例えばReaderWriterLockクラスはお手軽度では結構上位かな。
>>424 グローバル変数の利用法に配慮したコーディングって……
具体的にどういうコーディングか考えたらわかると思うけど,
マルチスレッドを考慮するってことに含まれるでしょう。
427 :
nobodyさん :2008/03/23(日) 21:39:50 ID:x4MgCEzm
ASP.NETでマルチスレッドってどんな場合に使用するのでしょうか? 当方初心者で思いつかないのですが
428 :
nobodyさん :2008/03/24(月) 03:23:35 ID:ct6byZwV
デザイナでDropDownListコントロールを配置し、 データソースの設定をし、DBより取得したレコードを DropDownListに表示しています。 それはいいのですが、使用時に未選択を示す 空文字の行がありません。 つまりDBに"1","2","3"と3つレコードがあり、それをDrowpDownListに 取り込むことはできたのですが、実際使用する時には ""の行も必要なので困っています。 1.こういう場合どうするべきでしょうか?(DB側のテーブルに空文字の行を追加することは避けたい) 2.また、フォームのLoadイベントでリストの元データになっているDataTableにアクセスしたかったのですが、 やり方がわかりませんでした。 どうやればアクセスできますか? イメージ的にはMe.dataset.Tables[〜〜 のようにフォームを初期化するために使用したデータセットがどこかに保存されているような気がするのですが。。
>>428 1.静的アイテムを定義しておいて、AppendDataBoundItems=Trueにするのが簡単かな
2.DataBoundイベントで行データにアクセスできるけどそれじゃ駄目?
430 :
428 :2008/03/25(火) 01:21:28 ID:???
>>429 >1.静的アイテムを定義しておいて、AppendDataBoundItems=True
これでばっちりです、これが知りたかったです。
ありがとうございます。
>2.DataBoundイベントで行データにアクセス
うーん、どこかの変数にリストボックスの作成元になっている
データセットへ直接アクセスするようなことはできないでしょうか?
431 :
423 :2008/03/27(木) 19:17:41 ID:jex5dQtQ
どうもありがとうございます。 よくわかりました。わたし、Java初めて3年になるんですが、 もうフレームワークやらなんやらで、ほとほとつかれました。 MSのならば、言語仕様がしっかりしてるとおもいました。 一応スレッドはあるみたいですが、がんばってみます。 思い切って、ASP.NETをやってみます。どうもありがとうございました。 お礼が遅れてすみませんでした。今日、仕事帰りに漫画喫茶にこれました。
432 :
nobodyさん :2008/03/28(金) 00:19:18 ID:oYl8aU09
開発時と運用時でフォルダ構成が違うため相対パスが違うので プログラムで相対パスを書く時に困ってしまっています。 開発時画像を表示する相対パスを書いて、それを運用時のフォルダへコピーし、実行すると 画像への相対パスが変わってしまうため表示できません。 運用フォルダでは画像ファイルは*.aspxファイルより上の階層にあります。 開発時と運用時の相対パスの違いって どうやって切り替えるとよいでしょうか? それか実行時に動的にwebconfigあたりから相対パスを読み出してくるような方法ないでしょうか?
相対パス、相対パスって言ってるけど意味分かってるんだよね? 開発と運用で相対位置が上位と下位に分かれてるなんてどーしよーもないよ。 というか開発時と運用時で画像への相対パスが違うって事自体理解できん。 運用に合わせて開発環境整えればいいだけだと思うんだけど・・・ どういう理由でできないの?
434 :
432 :2008/03/28(金) 01:40:35 ID:???
>>433 相対パスの意味はOKです。
やはり運用環境に整えるのが当たり前ですか。
運用環境では*.aspxの配置してある階層より上の階層に画像があるのが
問題なんですね。
今運用環境が以下なのですが、
http:// (root)/test.aspx
このtest.aspxの階層を一つ下げて
http:// (root)/home/test.aspx
などとすれば画像へのパスが
http:// (root)/img/a.jpg
となり開発時運用時共に同じ構成で作成できます。
今回は運用環境が実際は定まっていなかったので
運用環境のフォルダ構成を見直すことで
開発時と統一したいと思います。
ありがとうございました。
>>434 Web.configに絶対パスを書いて画像を指定するときに置き換えてやればいいじゃない
便乗なんだけど、パス書くときに~/で書けば自動変換してくれるけど、 <script>タグの場合は、runat=serverにしたらエラーなるけど、何か方法ないですか
437 :
432 :2008/03/31(月) 05:18:43 ID:???
>>435 ですね、
そう言う方法が知りたかったです。
ですが今回はフォルダ構成に関しては開発環境=運用環境が
基本と言うことをお教えいただいたのでそうしますね。
ありがとうございます。
438 :
nobodyさん :2008/03/31(月) 05:30:55 ID:RxSssc/i
DataListコントロールを利用してDBからのデータを表示しているのですが、 思うように表示できません。 イメージ的には水平に表示させていってウィンドウの右端までいくと 次の行に続きを表示したいんです。 1,2,3,4, 5,6,7,8, みたいな感じです。 今回の例ならRepertColumnsに「4」を指定し、 RepertDirectionを「Horizontal」にすればよいのですが、 実際はウィンドウの幅がわからないためRepertColumnsの値がわかりません。 どうすればよいでしょうか? ウィンドウサイズが変更された場合に自動的に 1,2,3, 4,5,6、 7,8 と並びを変えたいのですが。。
>>438 RepeatLayoutをFlowにしてインライン要素で敷き詰めたらどうだろうか。
440 :
438 :2008/04/02(水) 01:45:15 ID:???
>>439 RepeatLayoutをFlowにしてみたんですが、一行に1つずつのアイテムが
下へずらずらと表示されるだけでした。
インライン要素で敷き詰めるとはどうゆうことを指すのでしょうか?
すみません。
441 :
416 :2008/04/02(水) 10:00:56 ID:Y/05D5yF
>>438 まず1から8までの各データをSPANタグ(インライン要素)で囲んだだけのHTMLを作って表示してみる。
ウィンドウ幅に余裕があるかぎりデータが横に並べられ、幅を変えるとそれに合わせて改行位置が変わることを確認できるはず。
これをDataListで再現できればいいわけだ。
RepeatLayout=Flow、RepeatColumnsをできるだけ大きい数(笑)にすればとりあえず再現できるね。
443 :
438 :2008/04/04(金) 00:38:51 ID:???
>>442 >まず1から8までの各データをSPANタグ(インライン要素)で囲んだだけのHTMLを作って表示してみる。
こちらはうまくできました
>RepeatLayout=Flow、RepeatColumnsをできるだけ大きい数(笑)にすればとりあえず再現できるね。
こちらは無理でした。itemtemplateの内部を<span>で囲ったんですけど。。
ItemTemplateの中で表タグ使ってるのが問題かもしれません。
と思って外したんですがやはり無理でした。
ここまで来るとASPというよりタグの問題かもしれません。
そもそもDataListがtableタグを使って表現している以上
ItemTemplate内でtableタグを使った場合、ウィンドウサイズが変動しても自動で列数が変わるとか
無理な気もしてきました。。
444 :
438 :2008/04/04(金) 00:48:24 ID:???
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 訂正 そもそもDataListがtableタグを使って表現しているので テーブル内で<span>使ってもテーブル自体の列数がウィンドウサイズによって 動的に変動するとか無理なような気がしてきました。
RepeatLayout=FlowだとDataListはspanタグを吐くだろ?
446 :
nobodyさん :2008/04/04(金) 22:07:24 ID:btrOMdCP
SqlCommandでパラメータ使ってますが、省略可能なパラメータって定義できますか? 検索条件によってパラメータが無い場合もあるので、どのように対応すべきか悩んでいます。
条件によってcommandTextから変える
448 :
446 :2008/04/05(土) 19:28:34 ID:/o0gPsTY
>>447 レスありがとうございます。やはり動的にSQL文を生成するしかないのですか。
449 :
438 :2008/04/05(土) 20:09:31 ID:???
>>445 ほんとだ。。
検証ミスってすみません。ちゃんとspan吐いてました。
こんなん書いたら
<asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1" RepeatColumns="1000" RepeatLayout="Flow">
<ItemTemplate>
<table>
<tr>
<td>
<asp:Label ID="Label1" runat="server" Text='<%# eval("出版社名") %>'></asp:Label>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList><br />
こんなん出力されてました。
450 :
438 :2008/04/05(土) 20:09:52 ID:???
<span id="DataList1"><span> <table> <tr> <td> <span id="DataList1_ctl00_Label1">集英社</span> </td> </tr> </table> </span><span> <table> <tr> <td> <span id="DataList1_ctl01_Label1">小学館</span> </td> </tr> </table> </span><span> <table> <tr> <td> <span id="DataList1_ctl02_Label1">講談社</span> </td> </tr> </table> </span><span>
451 :
438 :2008/04/05(土) 20:11:49 ID:???
ブラウザの見た目としては 集英社 小学館 講談社 メディアワークス 徳間書店 角川書店 竹書房 こんなんなっちゃいまして 期待としてはテーブルの中に入った出版社名が 右へずらっとウィンドウの右端まで表示したいのですが、 どうしても下へ並んでしまいました。。
>>438 Repeaterコントロール使えば良いんでね?
ItemTemplateの中身をひたすら繰り返すだけのシンプルなものになるから。
後はdivでもなんでも使えばよかろ。
453 :
nobodyさん :2008/04/05(土) 21:42:06 ID:/o0gPsTY
>>451 CSSの対応で、どうでしょうか?
>>450 の場合だと
span#DataList1 table{ display:inline; }
とすれば横並びになりますが。
<ItemTemplate> <div style="float: left"> <% Eval("Shuppansha") %> </div> </ItemTemplate> ↓ <div style="float: left"> 集英社 </div> <div style="float: left"> 小学館 </div> <div style="float: left"> 講談社 </div> みたいに出力される。
>>448 あとは、それを見込んでクエリを書くか。
WHERE (param = @param OR @param IS NULL)
みたいな。
456 :
nobodyさん :2008/04/05(土) 23:48:02 ID:/o0gPsTY
>>455 ありがとうございます。求めてたのはこれです。
457 :
438 :2008/04/06(日) 17:14:55 ID:???
うまくいきました!
まず
>>453-454 で教えて頂いたようにtableのstyleを「display:inline」とします。
これで解決しました。
また、今回の要件を満たすにはtableのstyleをdisplay=inlineとした上で、
Repeaterコントロールを使う方が良いと思いました。
DataListでもプロパティを設定すれば多少無理矢理な形で可能なのですが、
スマートでない感じがしました。
ありがとうございました。
458 :
452 :2008/04/06(日) 22:35:04 ID:???
客先のブラウザで全画面表示したら貧相な画面になりましたとか気まずいから、
>>438 みたいな、横幅可変でなるべく全体使いたいって話が最近良くある。
狭い画面での表示と両立してくれって要求になるとかったるいけどw
20〜24インチぐらいのワイド液晶ある人はyahooやinfoseekとamazon比較してみると良いかも
459 :
nobodyさん :2008/04/07(月) 00:19:01 ID:880v00YK
ユーザーコントロール作って、その中のコントロールのボタンに Click時にクライアントスクリプトを動かしたい場合は、ユーザー コントロールの貼り付け先にスクリプト書く必要があるのでしょうか? ユーザーコントロール側にスクリプト書いて、コントロールの 貼り付けだけで動作するようには出来ないのでしょうか?
簡単なスクリプトなら、動的にクライアントスクリプトを追加するように、ユーザーコントロールに書くとか
461 :
nobodyさん :2008/04/07(月) 23:28:59 ID:HZpb0WP/
TextBoxとボタンを2セット配置しまして TextBox1の上でEnterキーが押された時はボタン1の処理、 TextBox2の上でEnterキーが押された時はボタン2の処理、と 処理を分ける場合はどうすればよいでしょうか? 今のところどちらでEnterキーを押してもボタン1の処理が実行されてしまいます。
462 :
nobodyさん :2008/04/08(火) 00:18:51 ID:O6FEAP9E
FormViewでメーカーCDを連結しているLabelがありまして、 実際にはここにメーカー名を表示したいのですが、良い方法ないですか? とりあえず今はPage_Loadイベントで現在のメーカーCDをVisible=falseのメーカーCDと連結した LabelからとってきてSqlCommandでExecuteReaderして別テーブルからメーカーCDをキーとしてメーカー名を取って非連結のLabelに表示しています。 動作に支障はないのですが、メーカーCDを取得するためだけにフォーム上に Labelを1つ無駄に配置するというのがなんだかもったいないです。 いちいちメーカーCDのラベルを経由せず、直接現在のメーカーCDを取得するような方法ありませんか?
>>461 テキストボックス内でEnter押してSubmitを発生させた場合、
最初のSubmitボタンが押されたものとブラウザが判断するので・・・
1:formのイベントでキーをとっ捕まえてEnterキーかどうか判断
2:window.event.srcElementあたりでそれを発生させたオブジェクトを取得
3:後は煮るなり焼くなり
4:クロスブラウザに注意
AJAXControlToolkitで質問です。コントロール郡をツールバーから貼り付けるまでは 出来るのですが、TargetControlIDの欄が真っ黒になって、設定できません。 しかもこの欄をクリックすると、VSが落ちてしまいます。 このような現象に会われた方いらっしゃいますか? 参照の解除、再設定やらツールバーのリセットしても改善しません。
466 :
462 :2008/04/09(水) 02:59:47 ID:???
>>464 おかげさまで無事取得できました。
CType(Me.FormView1.DataItem, Data.DataRowView)("取得対象フィールド名")
467 :
464 :2008/04/09(水) 22:56:48 ID:???
>>466 この場合、aspxファイル内でFormView.DataKeyNamesにメーカーCDのフィールド名をセットして
FormView.DataKey.Value(キーが複数ある場合はValues)でキーの内容を取得する方が多分スマートかな。
わざわざコードビハインド側でセットする必要もないしね。
↓のような感じ
<asp:Label ID='MakerCDLabel' runat='server' Text='<%= this.FormView1.DataKey.Value %>' />
468 :
462 :2008/04/10(木) 01:50:33 ID:???
>>464 DataKeyNamesプロパティを利用して
キーから対応する名前を取得するには
通常DataKeyNamesに主キーの列名を指定する必要がありますよね?
今回取得したいのは主キーでないので無理そうです。
ありがとうございます。
>>461 Panel使えば簡単にできる
そういうプロパティがある
470 :
461 :2008/04/11(金) 03:22:57 ID:???
>>469 検証してきましたらうまくいきました!
こういうのが欲しかったです。
ありがとうございました。
471 :
眠れない :2008/04/15(火) 21:15:36 ID:???
aspで携帯サイト開発するとき、改頁の機能はどうすれば、携帯画面に出ることができるのでしょうか。知っている方はいらっしゃいましたら、教えていただけないでしょうか。
日本語でおk
GridViewでヘッダーとか設定した後、手動でDataBindするとレイアウトが解除されて ノーマルな状態でBindされてしまいますが、回避する方法ありますか?
aspx側でText='<%# item[0] %>'みたくバインドしたいのですが cs側でitemをどのように宣言して扱えばいいのでしょうか? itemはList<string>がいいのですが
すいません。ソッコー自己解決しました。そのままパブリック宣言でおkでした
publicよりprotectedの方が良いんじゃねーかなー…
>>473 DataBoundイベント時に設定すればええやん
画像をクリックした時に、セッション変数に値をセットした上で、別のページに遷移したいのですが、 ImageButtonのPostBackUrlに遷移先のページ、Clickイベントでセッション変数への値のセット としてもうまく動きません(Clickイベントが発生しません) こういう場合はどの様にするのがベストなのでしょうか?
>Clickイベントが発生しません aspxのImageButtonソースとClickイベントを書いて
479 :
447 :2008/05/03(土) 06:14:49 ID:???
>>478 ImageButtonのソース↓
<asp:ImageButton ID="imgPass" runat="server" ImageUrl="~/img/header_pass.jpg" PostBackUrl="~/passwordchange.aspx"
ToolTip="パスワードを変更します" />
イベント↓
Protected Sub imgPass_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles imgPass.Click
Session("ChangePassword") = Session("LoginId")
End Sub
となっています。
Session変数に値をセットしている所にブレイクを貼っても、ここにきません。
ちなみに、masterページに書いています。
よろしくお願いします。
OnClick="imgPass_Click"の記述がないよ。 <asp:ImageButton ID="imgPass" runat="server" ImageUrl="~/img/header_pass.jpg" PostBackUrl="~/passwordchange.aspx" ToolTip="パスワードを変更します" OnClick="imgPass_Click" /> としてみて。
作成したASP.netサイトを自マシンにインストールし 自マシンに対して外部(イントラネット内)に公開する事は出来たのですが、 自マシンで作成したASP.netサイト(Default.aspx)を 特定マシンに(IISインストール済み)配置(公開)するにはどうすれば良いでしょうか? ・WEBサイトのコピー ・WEBサイトの発行 をプロジェクトの上で右クリックして、公開したいPCを指定しても エラー(失敗してしまう)になってしまいます。
483 :
481 :2008/05/03(土) 16:50:09 ID:???
>>482 > アクセス権
レスありがとうございます。
因みにアクセス権の設定を行う方法として次のうちどれを行えば良いのでしょうか?
(初心者ですみません。)
1.公開したいサーバ上の管理ツールよりアクセス権の設定を行う。
2.公開したいサーバ上のIISマネージャより設定を行う。
3.「1.」「2.」両方の設定を行う。
484 :
447 :2008/05/04(日) 02:05:59 ID:???
>>480 どうもです。
試してみたけど動きません。
マスターページじゃないaspxファイルに貼ったImageButtonだとちゃんと動くので、
masterページに書いているのが原因なのかな?とも思ってるのですが・・・
あと、ツールボックスからコントロールを貼り付け、コントロールをダブルクリックして
出来たイベントハンドラに処理を書いていて、他はOnClickとか書いてなくてもイベントが発生するのですが、
自分で書く必要がある場合ってどういう時なんでしょうか?
485 :
447 :2008/05/05(月) 02:15:18 ID:???
>マスターページじゃないaspxファイルに貼ったImageButtonだとちゃんと動くので、 色々試した結果、これ間違ってました。 正確には、「PostBackUrlプロパティに、自ページ以外のページが指定されている場合は、OnClickイベントが動かない」でした。 OnClickイベントは、PostBackされた後にサーバーで処理される。と理解しました(間違いがあれば指摘ください) PostBackUrlプロパティを空白にして、OnClickイベントでServer.Transferで要件を満たせました。 色々ありがとうございました。
本当は、ASP.netをメインでやりたいのに Windowsアプリの開発ばかりやるハメになってる。 WEB系やりてーよぉー。 .NET FrameWorkはかなり熟知してるんだが。。。
マスターページ機能って便利だけど、パフォーマンスが落ちたりするんでしょうか? ヘルプの記述を見ると要求後にマージするとあるので、なんかパフォーマンスが 落ちそうな気がするんです。 asp.netを使うページだけmaster機能、性的なページはダイナミックWebテンプレート、とか 使い分けた方がいいんでしょうか? ヘルプ 「ユーザーがコンテンツ ページを要求すると、マスターページとマージされて、マスタ ページの レイアウトとコンテンツ ページのコンテンツが結合された出力が生成されます。」
cobolしか触ったことのない俺がとりあえずASP入門するのに最適な サイト・書籍を列挙してくれないか? VS2008が使えるやつで頼む。
>>489 > cobolしか触ったことのない俺がとりあえずASP入門するのに最適な
> サイト・書籍を列挙してくれないか?
> VS2008が使えるやつで頼む。
こぼら には無理
cobolのみならC#.netの入門書からがいいんじゃないか。 .net framework自体の知識も基礎は必要になるから。 vs2008対応のasp.netのよい本はまだ出てない。 「asp.netでいってみよう」は評判良いが発行は古く asp.net2.0未対応。
>>489 COBOLerならJAVAに行くべきだな。
「Java for Cobol Programmers」がおすすめ。ただし邦訳はない、全部英語。
どうしてもASP.NETなら、古本屋で
「.NETのしくみとVB.NETプログラミング入門―COBOLユーザーに捧げる」
を買って読んでから、 「基礎からのASP.NET SE必修! (プログラマの種シリーズ) 」
かな。
すまん、ちょっと教えて欲しいのだが、 ClientのJavaScriptから、非同期でポストバックして.aspx.cs上のメソッドを実行させるか、 コールバックしてイベントを発生させることは可能? 適当なButtonを作成して、GetPostBackEventReference(this.Button1, "");でやってみたり、 PageにIPostBackEventHandlerを追加してRasePostBackEventメソッドにコールバックさせてみたり したのだが、いずれもブラウザが再読み込みをしてしまう・・・ 具体的には、TextBoxで特定キーを押下後に、TextBoxの中身を確かめて、 特定の表示をしたいんだけど、JavaScriptでOnKeyUpをキャプチャーし、押されたキーを判断し、 JSでポストバックし、再読み込みせずにaspx.cs上のメソッドを実行させたいんだけど、 そんなことって可能ですか?(´・ω・`)
他スレで質問したところ解答が無いので こちらでも質問させて下さい。 ASP.netで特定のサーバにhoge.aspxを配置して稼働させる方法は、 お蔭様で分かったのですが、これまではロジックを hoge.aspx の中にゴリゴリ書いていたものをロジックを別クラスに分けて コンパイルを行った上で同様の手順でサーバに配置したところ 「このアプリケーションは利用できません。」 なるエラーメッセージが表示されてしまいます。一体何が原因なのでしょうか? (同様の手順でコンパイルしIISに配置しています。)
>>493 昔調べた限りでは出来なかった。AjaxExtensionでも入れれば。
>>494 VisualStudio使えば?
そんなエラーメッセージだけからでは理由がつかめないから、
例外をキャッチして詳細なエラーを吐くページを作っとけ。
適当予測ではApp_Code以下に置いてないとか。
あと、別にコンパイルは必須ではない。
>>495 さん
レスありがとうございます。
普通にVisualStudioは使っています。
追加したクラスファイルは、普通にApp_Codeに入っています。
プロジェクトの上で右クリック → 新規項目の追加 → VBクラス
とするとVisual Studioの方から誘導する様なメッセージが表示されて
App_Code直下に配置されたと記憶しています。
原因はどうもIISの設定っぽ気がするのですがいまいち分かりません。
明日もう一度試してみようと思います。
497 :
nobodyさん :2008/05/07(水) 22:26:37 ID:wvo/I4za
ASP.NETには直接関係ないかもしれないけど、英語版Visual Studio使ってます もちろんMSDNが英語だけど、日本語版MSDNに置き換えることってできますか?
>>495 そのAJAXでできないのよ・・・
再読み込みナシで、特定のメソッドを実行できればいいんだけど・・
>>496 俺はC#だから外しているかもしれんが、
作ったClassのNameSpaceをUsesしていないだけでは?
>>498 using ***の事ですか?
VBだと imports?
>>499 そそ、using
C#だと、普通にClassを作った限りでは、usingしなくても使えるけど。
表示されるエラーをすべて晒してみるのが手っ取り早いと思う。
>>500 > そそ、using
> C#だと、普通にClassを作った限りでは、usingしなくても使えるけど。
> 表示されるエラーをすべて晒してみるのが手っ取り早いと思う。
それがどうもIIS側の設定っぽいエラーなんです。
エラーを晒したいのですが環境が自宅には無くて出来ません。
明日、
>>500 さんに教えて頂いた事を踏まえていろいろ試してみて駄目だったら
エラー内容を控えてこちらにてご質問させて頂きます。
>>498 Remotingかwebサービスで対応できると思う
>>503 ありがとう
なるほど、できるっぽいけど煩雑な手順を踏まないといけないのね・・
いちおうLinkButtonか、Buttonをスタイルシートで非表示状態、
または背景と同じ色で配置して、このコントロールのイベントを利用することで、
仮想的に特定のメソッドを実行させてるけど、あまり美しくない・・・
IPostBackEventHandlerを継承したユーザコントロールを作ったりすれば、
少しはキレイになるのかしら・・・
>>504 クエリ文字列かなにかをもとに目的の処理をするaspxを作っておいて、それにXHRでリクエスト投げる
という単純な方法じゃだめなの?
ActiveDirectory ドメイン環境で、 iisのアクセス権の設定で、基本認証にすると ユーザ、パス入力のダイアログ出るんですけど、 クライアントPCにすでにドメインログオンしてるので、 ダイアログ出さずに認証通したいのですが、 どうやればいんでしょう…。 以前、IEだとダイアログなしで認証できてたサイトがあったので、 方法はあると思うんですけど。firefoxとかだとダイアログでてました。
507 :
506 :2008/05/08(木) 23:25:54 ID:???
一応自己解決 web.configに <identity impersonate = "true" /> 追加でできるらし。 ここでもうひとつ疑問点。 ドメイン外に設置したサーバ上のwebページで、 ドメイン内からアクセスしてきた、ログオンユーザの ユーザ名を取得する方法ってないでしょうか??
web.configにパラメータを設定したいのですが web.configへのキーの追加方法が記載された、何か参考になるサイト()はありますあか? 現在、web.configに適当にキーを設定してプログラムから読み込み、コンパイルを するとweb.configへのキーの書き方が違っているみたいでコンパイルエラーが出てしまいます。
俺.configにパラメータを設定したいのですが、 俺.configへの彼女の追加方法が記載された、何か参考になるサイト()はありますあか? 現在、俺.configに適当にキーを設定してアーッ!
画面を上下に分割して(つまりFrameで上下に20% / 50%)画面上部に社員番号を入力し 「検索」ボタンを押すと、画面下部の詳細画面に詳細結果を出力するにはどうすれば良いでしょうか? ベテランの人お願いします。 Default.aspx SearchTop.aspx Result.aspx [ Default.aspx ] ***************************************************** [ SearchTop.aspx ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 社員番号 ■■■■■■ [ 検索 ] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ Result.aspx ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 社員番号 1234 社員名 とまお 好き男 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *****************************************************
Frameヤメレ
MasterPageは使いたく無いのです。 確か何かFrameに対するtargetを指定して実行する方法があったと思うのですが。 お願いします。
>>514 今どきframe使うのがいるのに驚いた。
frameは非推奨タグなの知らないの?
なんでMasterPageが出てくるんだ?
MasterPageは便利な機能だが必須ではない。
>>515 ええっホントですか?如何せん、ASP.net初心者ですので。
始めて知りました。因みに推奨されている方法にはどんな物がありますか?
AjaxとClientCallBack関数の違いってあるんですか? そもそも両者JavaScriptをか介しますが。
>>515 frameの件は.NET関係ない。残念ながら常識のレベル。
なお、.aspxにDB接続とかのロジック書いたりもやめるように。
で、一つの方法としてだがDefault.aspxにTextBoxとButtonとGridView、
SQLDataSourceを置いてバインドしてやるのが一番楽じゃね。
初回表示時にGridViewを見せたくないならvisible = falseするなり、
検索ボタン押下のタイミングでDataSourceとパラメータをセットして、
DataBindしてやればいいと思う。
検索窓をわざわざフレーム切りたいってことは、使い回しをしたいということかな。
もしそうなら、セットでユーザーコントロールにでもしておけばOK。
意味不明なら初心者本でもどうぞ。
>>517 方法論に対する実装の一つ。
つか、AJAX Extensionのように.NET側から
動的にコントロールを更新できないので、俺の用途ではイラネ。
>方法論に対する実装の一つ。 なんか違うな…。スマン。 正確な用語を使える程のレベルじゃないのでこのまま逃げます。
>>518 > 検索窓をわざわざフレーム切りたいってことは、使い回しをしたいということかな。
使いまわしたいって分けではないのですが、あえて検索結果を別フレームに表示
する事がDataGrid ・ GridView双方で出来るのか試してみたいのです?
1ページで行う事は普通に出来ます。
敢えて別フレームに結果を表示したいのです。
>518 >.aspxにDB接続とかのロジック書いたりもやめるように。 これはどういう意味ですか? DB接続のコードは書籍なんかでもaspxファイルに書かれて いるようですが、なにか問題はあるんですか?
>>521 フレーム使ってファイルを複数に分断するデメリットが大きい。
フレームで作るのは10年前の作り方という気がする。
商用Webサイトでフレームつかってるところがほとんど
なくなったの考えてみて。
まぁDataGrid使ってみれば分かるよ
結果のソート、ページングなどもできて便利。
521じゃないけど でも実際はSEOの関係でフレーム非推奨になったわけで、主な用途はイントラなんで 代替となる機能がサクッと実現できないのが困る。
まぁ確かにそれもあるんだけど、それを言ってしまうと、 VB6の方が何でも出来てよくなかった?とかその辺の話にな(ry
>>522 クイックチュートリアル読んで、
コードビハインドの意味を考察してみるといいよ。
MS謹製の書籍でも.aspxにビジネスロジック書いてたりすることがあるが、
説明しやすくためであるのと実運用で使うのは意味が異なる。
コードとビジネスロジックの分離。 3階層 とか ObjectDataSource とか でググれ つづきはwebで・・・
現在VS2005で勉強がてらクライアントコールバックを勉強しているのですが、 これって基本的な動きはAjaxと同じですよね? あとパフォーマンスの面で、 ・ASP.net Ajaxをインストールして使用 ・クライアントコールバックで代用 どちらの方が良いでしょうか?
・ASP.net Ajaxをインストールして使用
FormViewのHeaderTemplateとItemTemplateにそれぞれラベルなどをおく。 Headerの方のラベルにFormViewに関連付けたSQLDataSourceコントロールからバインド。 ItemTemplateの方のラベルに別のSQLDataSourceコントロールの値を設定したい。 FindControlでFormView.Row.Findcontrol(///)でラベルを参照して、設定してやろうとすると うまく設定できたり、逆にRowが見つからない(=オブジェクト参照がry)のエラーでとまったりと メチャクチャな動きをしやがる。 大体100回トライしてみて90回くらい失敗、残り10回くらい成功する。 ソースは全く書き換えてない。 似たような経験の片いらっしゃいません?
毎回同じデータが取られてる? データ取りの処理に問題あるのでは?
>>530 ASP.net Ajaxをどうしてもインストールしてはダメな環境です。
因みに自分でASP.net+Ajaxの原始的な方法でAjaxを実装したのですが
飛ばし先のhoge.aspxのPage_Loadの中で
Response.Write("呼出元のhtmlページに返す文字");
と記述すると呼出元のページではResponse.RequestTextには
<!Document*** という余計な文字列も返されてしまうのですが
何か良い方法はありますか?
私は、JavaScriptで次の通り「」の中の部分のみを切り取って出力
しています。
そもそも、この様な方法でも問題無いのでしょうか?
「 呼出元のhtmlページに返す文字 」 <!Document ***
Response.Write("呼出元のhtmlページに返す文字"); Response.End();
>>534 試してみます!!
あざぁーっっっっっっっす!!
>>514 自分も昔ここで同じ質問したことあるんでそのときの経験談書きますね。
まぁ既に出てる話ですので参考程度に。
1.フレームはとにかく推奨されない
2.フレームなしに書き直したところ意外に利便性は変わらない
3.バグが発生したとき対応にすごく困る状況になりやすい
2と3が主な理由ですね。
537 :
nobodyさん :2008/05/17(土) 13:25:15 ID:71sy1o27
以下の様なことをやろうとしています。 @リクエスト →セッション新規作成、セッションIDの名前のファイル作成 Aリクエスト →セッションがすでに存在すれば、 セッションIDの名前のファイルに情報を書き込み、サービスにも利用 Bセッションタイムアウトなどによりセッション破棄 →セッションIDの名前のファイルを削除 で、Bをどのように実装すればよいかで困っています。 3のセッション破棄を検知したいのですが、 global.asaxのSession_Endでは 破棄されるセッションIDが取得できないようですし。 何かいい方法ありませんか?
自分の目が節穴で無ければ、this.Sessionで見えてるこのオブジェクトはなんなのだろう。
そうやって決めうちで削除したり、何かを作ったりするのはやめたほうがいい ClassにPage.Sessionを渡して、あとはClassに処理させる。 Classでは、Page.Sessionのindexをなめて作成したファイルと比較し、 新しいSessionObjectがあればファイル作成、 なければ削除という処理を行う。 これをページを作成するごとに繰り返せばok。
Ajaxの勉強をしているのですが@ITを参考に次の様にコードを入力してVS2005にて 実行をしたところエラーが出てしまいます。どうすればAjaxを実行出来ますか? (Ajax.dllは参照済みです。) [ AjaxXML.aspx ] <!-- AjaxXML.GetMessageOfTheDay(GetMessageOfTheDay_CallBack); function GetMessageOfTheDay_CallBack(response) { alert(response.value); } --> </script> [ AjaxXML.aspx.vb ] Imports Ajax Partial Class AjaxXML Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Ajax.Utility.RegisterTypeForAjax(GetType(AjaxXML)) End Sub <Ajax.AjaxMethod()> _ Public Function GetMessageOfTheDay() As String Return "Experience is the mother of wisdom" End Function End Class
542 :
Ajax2 :2008/05/20(火) 21:55:07 ID:???
[ web.config ] <system.web> <httpHandlers> <!-- Register the ajax handler --> <add verb="POST,GET" path="ajax_/*.ashx" type="Ajax.PageHandlerFactory, Ajax" /> </httpHandlers> ・・・ [ エラー ] Microsoft _JScript 実行時エラー:'AjaxXML'は宣言されていません。
これまでWindowsアプリをメインに作って来たのですが、私一人しかいない現場で 私がASP.netアプリを作る羽目になりました。 作業内容として只単純に、データの照会(取引の一覧を取得し画面に表示するだけ) を行うだけなのですが、私の作成した画面のレイアウトは ・Label ・Table コントロールを***.aspx画面に張りつけてその項目に値をセットしているだけなのですが この方針って間違ってますか? スタイルシートの知識とかは無いので.NETのデザイン画面で適当にデザインをして (スタイルシートなんて使わず)ドラッグしてピヨーッと伸ばして行・列幅の調節 をしています。(html / StyleSheet / JavaScriptについてはアマチュアレベル) ASP.net(.NetFrameWorkについては結構詳しいです。)に関して実務経験豊富な ベテランの方如何でしょうか?ご意見を聞かせて下さい。
>>543 一覧表示に適したコントロールならGridViewがある。
GridViewは表示対象をDataSetまたはDataTableオブジェクトとして扱って
バインドさせるだけでおk
と、言うかその程度なら別にASP.NETとWindowsFormで違いないだろ。
546 :
nobodyさん :2008/05/24(土) 12:49:50 ID:taKpBKe5
GridViewでヘッダの表示を固定することってできますか? エクセルの「ウィンドウ枠の固定」みたなやつで、沢山の行があって 下にスクロールしてもヘッダだけは画面上に表示されるようにしたいのです。 やり方を知っていたら教えてください。
CSSで出来る。ググレ
上でフレームの話が出てたけど、フレームの代わりにdivでスクロール表示させて表示したいけど、 ウィンドウいっぱいに表示するのが、IE6だとうまくできません。参考になるサイトありませんか。
550 :
nobodyさん :2008/05/25(日) 19:56:25 ID:BMpN20e7
エクセルとかPDFをサーバー側で作るとして、それをダウンロード画面に表示するのはどやってるの? 「保存」とか「開く」とか出る画面を出したいけど
552 :
550 :2008/05/26(月) 21:04:10 ID:4YPDbsMz
>>551 あざーす。
ちなみに、これですと物理ディスク上のファイルをResponse.OutputStream.Write()で書き込みしてますが、
物理ディスク上のファイルでないと無理でしょか?たとえば、エクセルなどは動的に作ったらディスクに保存せず
そのままクライアントに流したいのですけど
553 :
550 :2008/05/26(月) 23:03:08 ID:4YPDbsMz
自己レスです。 .NETではファイル生成しなければ無理みたいですね。失礼しました。
釣りかマジかどっちだ??
555 :
550 :2008/05/26(月) 23:30:41 ID:???
え? マジでしょう。スプレッド.NETとかっての使うのは無しの場合では、無理っぽい(らしい)けど、方法ありますか?
言ってる意味多分わかった気もするけど
>>552 の日本語が悪いだろ
557 :
550 :2008/05/27(火) 00:51:48 ID:???
すいませんです^^;新米なので
558 :
551 :2008/05/27(火) 01:25:43 ID:???
>>550 Excelデータのバイト配列が作れる状況ならファイル生成なんて不要。
要はResponse.OutputStreamに必要なデータをWriteできれば良し。
そのデータは当然ファイルから作っても良いし動的に作っても良いわけで。
自分の経験としてはウェブサービス経由で取得したExcelデータを
ウェブサーバ上ではファイルを作成せずに
そのままクライアントに返してました。
ただ,どうやってExcelデータを動的に作成するのか知らんけど
バイト配列を作成する手っ取り早い方法として
一旦保存してFileStreamを読むことになることはあるかもしれん。
GridViewの内側の罫線はデザイナから変更できないのでしょうか? BorderColorプロパティでは外側しか変更されないのですが…
質問です。
FormViewをHTML展開したときに、デフォルトでは
tableが構築されるけど、これを<p>とか<div>にしたい場合は
どこをいじればいいのでしょう?
>>559 GridViewのGridLinesプロパティとか?
561 :
559 :2008/05/28(水) 10:28:14 ID:???
>>560 ありがとうございます。
解決しました。
562 :
nobodyさん :2008/05/28(水) 16:58:40 ID:BjXoHKSe
phpからasp.netに移行しようと思って昨日から勉強しています。 あるサイトのサンプルコードを見て疑問に思ったのですが、 <form runat="server"> <asp:ListBox id="lb_Address" runat="server"> <asp:ListItem>東京</asp:ListItem> <asp:ListItem>神奈川</asp:ListItem> <asp:ListItem>千葉</asp:ListItem> <asp:ListItem>埼玉</asp:ListItem> </asp:ListBox> <asp:TextBox id="tb_Name" runat="server" /> <asp:Button id="btn_Submit" Text="Submit" runat="server" /> </form> なぜこのようにわざわざaspの独自タグ?(サーバコントロールと書かれていましたが)で記述するのでしょうか? phpからきた自分としては、htmlで出来る部分はhtmlでやって、 プログラム的な部分だけC#なりVB.NETなりで記述するものなのでは?と思ってしまうのですが、 これはhtmlで<input>等と直接記述するのと比べて何か意味があるのでしょうか? 馬鹿っぽ質問で申し訳ないですがよろしくお願いします。
>>562 <asp:....>の部分はIISで適当なHTMLタグに置き換えられて
ブラウザに送信される。
<aspの部分をそのまま送ったらブラウザが理解できない。
asp.netはブラウザの種類を判別して、最適なタグに
置き換えてくれるのだ。
564 :
562 :2008/05/28(水) 17:32:16 ID:BjXoHKSe
>asp.netはブラウザの種類を判別して、最適なタグに >置き換えてくれるのだ。 そうだったんですかー 納得できました。どうもありがとうございます。
565 :
nobodyさん :2008/05/28(水) 21:32:20 ID:HG8kee+E
>>562 htmlで出来る部分はhtmlでやって、プログラム的な部分だけC#、とは言っても、
リストボックスを例に出すぐらいだから、ユーザの選択内容をプログラム側に渡すでしょ?
PHPで言うところの$_POST["lb_Address"]みたいにさ。
ここで$_POSTと同じ役割の機能としてASP.NETでは、Request.Form["lb_Address"]と書けば、
リストボックスの選択内容をサーバ側コードで一応取得できるんだけど、これはASP.NETの
標準的なプログラミングモデルではやってはいけない。
代わりに、lb_Address.SelectedValueみたいな感じで取得する。
逆に、リストボックスのどれかの値をあらかじめ選択した状態のページを生成する場合、
PHPならprintでselectとoptionタグを書き込むだろうけど、
ASP.NETでは同じようにResponse.Writeというもので一応直接htmlタグを出力することも出来るが、
やっぱり普通はやっちゃいけない。代わりにthis.lb_Address.SelectedIndex = 3みたいな感じでセットする。
PHPやASPからだと、そのへんの考え方を理解するのに少し時間がかかるかも
コニツワ! ASP.NETに、PortalAPI(JSR168風な)ってあるん?
567 :
562 :2008/05/28(水) 22:04:30 ID:???
>>565 ご丁寧にどうもありがとうございます。
phpユーザの為に似たような書き方もできるようにしてるけど推奨されないということですかねー
少し考えていた感じとは違うので時間かかりそうですが、
1からやるつもりで頑張っていきたいと思います。
とどのつまり、オブジェクト指向ってことです
DBのフィールドを見て処理を分岐させるために、 SqlCommand.ExecuteScalar()で値を取ってきているのですが フィールドがNULLの場合もあります。 こういう場合はどのような型で結果を受けるべきなのでしょうか? Nullable(Of Integer)では落ちました。 DBNULLとVBのNothingは違うということなのかな…。 今はとりあえずObject型で受けてから、IsDBNull()で聞いて分岐させてます。
ありがとうございます。
排他制御について質問です。 一覧表示->更新処理が行える画面なのですが、 ユーザーAとBが同時に一覧を取得して、先にAがあるレコードを更新した場合 Bはもう一度一覧を取得し直さないと更新が行えないようにしたいです。 現在はSqlCommandのTransactionを利用して以下のような流れです。 1.更新前処理で更新対象行のレコードから、全項目を取得 2.取得した項目をキーとしてSELECT実行 3.存在ありならば更新がかかっていないとみなしてUPDATE->Commit 存在なしならば他から更新されたとみなしてRollback->更新を促すメッセージ表示 GridViewのUpdateメソッド、およびテーブルにDateTimeの列を追加等が 出来ない環境なのですが、他に良い案や定石などありますでしょうか。 なお、同時更新は滅多に起こることのない環境です。
>>572 レコードにバージョンを表すフィールド(TimeStamp, 最終更新日時, あるいはただの連番)を追加するか、
全フィールドを比較するか以外に、オプティミスティック同時実行制御を行う方法なんてないんじゃない?
GridViewのUpdateメソッドも、デフォルト状態では結局のところ全フィールドの比較を内部的に実行していたと思う
どうしてもそのテーブルを変更できないなら、別テーブルに同じ主キー貼ったものを切り出して、バージョンを表すフィールドを追加して、更新系の画面では元のテーブルとバージョンテーブルをチェック&更新するようにするとか
SELECTで取得→ハッシュで比較→COMMIT/ROLLBACK
575 :
572 :2008/06/02(月) 01:51:03 ID:???
>>573 ,574
回答ありがとうございます。別テーブルに切り出すのは良い案かもしれません。
今はSqlCacheDependencyを利用した変更通知を探っています。
MSDN見ながらのテストでは変更通知が連続してきたり、
逆に来なかったりでズタボロですが…。
おいおいどこに行く気だよ 前列比較のがましじゃないか?
577 :
nobodyさん :2008/06/02(月) 10:07:07 ID:kZgOWgo+
ブラウザ上でユーザに編集はさせたくないけど、載ってる値をpostしたときに サーバへ飛ばすTextBoxってどのような設定にすればいいですか? ReadOnlyをTrueにしたら値がサーバにやってこなかったです。 都合でLabelは使えません(JavaScriptでも編集したいため)。 別途hiddenフィールドを作るしかないですかね。。。
ASP.NET 3.5 のレンタルサーバって国内はまだ無いですかね?
自宅で開業して人柱erになる
>>577 エスパーじゃないので目的がわからないけど,
クライアントから送信されるデータを信用しろというのは無理な相談だし,
普通にセッション変数を利用すれば解決する問題だったりしない?
581 :
580 :2008/06/04(水) 00:22:51 ID:???
JavaScriptの文字が見えない馬鹿=自分。
>>580 てことはJavaScriptで使えれば、Labelでいいんじゃね
var elm = document.getElementById("<%=Me.Label1.ClientID%>");
ASP.NETって初心者には敷居高いですよねー 最悪でもVisualBasic使いこなせるレベルでないと、入れない気が。 ココから始めると結構分かりやすいぞ、みたいな、超初心者でも コツコツ学んでいける方法や入口を教えて頂けると助かります。 宜しくお願い致します。
>>583 GUIでなんでも済ませられるし(細かいところはソース直書きだけど)、かなり楽だと思うよ
でもイベントとかプロパティとかVB扱ったことないと、戸惑うことが多いかも
いきなりASP.NETをするよりVB2005とか2008の参考書買って勉強した方がいいかも
>>583 パソコン教科書 Microsoft Visual Web Developer 2005 Express Edition入門
がオヌヌメって書こうと持ったら、すでに2008のがでてますね。
2005の方しか内容知らないけど、初心者のオイラにはすんげー役に立ったよ。
586 :
583 :2008/06/05(木) 00:38:53 ID:HpXjKLmr
>>584 >>585 有難うございます。
「10日でおぼえるASP.NET 2.0」って本を買ってみたんですが、
本を見ずにもう一度同じ様に書けるか、となると、もうさっぱりorz
コツコツやってみます。
VS2008std ターゲット.net3.5で開発しています。 新しいプロジェクトで 「ASP.NET Web アプリケーション」を作成したのですが、 デザインモードに切り替え、ツールボックスからLabelをD&Dしたのですが ドロップできません。(ドロップ無効のカーソルに変わる) ソースに直に記述 <asp:Label〜 してもデザイナ上ではエラーになります。 しかし実行は可能でブラウザでも表示されている。 ファイル→新規作成→Webサイトの「ASP.NET Web サイト」でプロジェクト?を作成すると Labelなどの標準コントロールがドロップできます。 「Web アプリケーション」プロジェクトでは標準コントロールは使えないのでしょうか?
>>587 俺の所では新しいプロジェクトから
ASP.NET Webアプリケーション
選んでも問題なくラベル貼れるけど。
>>588 えぇっ!
じゃぁ環境の問題なのか・・・
なにか悪いことしたかなぁ
VS2005も共存してるのがまずいのかなぁ
とりあえず再インストールしてみます。
590 :
587 :2008/06/05(木) 16:04:17 ID:???
原因がわかりました。 WebApplicationを作成したフォルダ名がまずかったみたいです。 C#Testフォルダに作成するとドロップできないみたいです。 #という文字がいけないのかもしれません。 本当にありがとうございました。
>>582 ASPのラベルってHTMLに展開されると
ただのインライン要素(<span>)とかになっちゃうじゃないですか。
その場合、JavaScriptでテキストを変更できますか?
InnerHTMLとか試してみたんですが、IEはできるけどFirefoxでは
できなかったりで、結局諦めちゃったんですけど。
css設定して、これでFireFoxでもおkwww って思ってたら Mac標準のSafariで全然駄目・・・ menuコントロールつかえねー orz
郵便番号を入れると住所が途中まで(市町村くらいまで)出てくるような ユーザ登録ページがよくありますが、あれは何らかのパッケージプログラム のようなものを利用しているのでしょうか? それともSQLサーバーとかに全部の郵便番号と住所を取り込んでいるのでしょうか?
大抵、郵便局が作ってくれるCSVをまんまDBに取り込んでるだけじゃないの?
メール配信システムを作っているんだけど。配信先リストは登録画面で配信情報を入力するときfileUploadコントロールを使いCSVで読み込む。 画面は 登録画面→確認画面→登録というようにして画面はMultiViewを使いたい。 MultiViewを使えば画面間の情報の受け渡しは楽なのだがfileUploadで読み込んだリストはどうやって保持するか、途中で処理をやめてもゴミデータが残らない方法ってない?
途中で止まって困るならトランザクション使えばいいんじゃまいか?
>>596 ViewStateで保持すればいいので?
>>599 もうちょっと詳しく教えてください。
どこかが提供しているwebサービスを使うという意味ですか?
602 :
601 :2008/06/07(土) 16:39:50 ID:???
12万件程度なら全然大きくない。
むしろ小さいね
>>602 つ「適切なINDEX作成」
つ「実行計画確認」
>>602 Webサービスを利用するならDB処理なんて必要ないわけで。
(自前でDB用意するなら指摘されてるようにインデックスを作ることになるかと。)
>>603-606 ありがとうございます。
割とシンプルな処理のようなのでSQLにインポートして
インデックス作ってみます。
AjaxZIP使ってサーバサイドから分離しちまうのが一番手軽では ってそれだとスレ違いか
社外へほいほいアクセスできる環境も少ないしね。 ってイントラの話じゃない?
ASP.NETってIFRAMEで別のサイトを表示とかしても問題ないのでしょうか?
ほとんどプログラム言語に触れたことが無くて、 2週間前までASP.NETが何なのか知らなかった状態から 言語はC#で、という縛りもつけて 「やれ」という指示で課題に取り組み始めたんですがさっぱり。 参考書籍を買おうかと思っているんですけど ASP.NETの参考書でオススメのものってありますか?
Visual Studio 2005によるWebアプリケーション構築技法
MovableTypeのように、 ページやコントロールで出力されるHTMLをファイルに出力したいのですが 出力されるHTMLはどうやれば取得できるのでしょうか?
614 :
nobodyさん :2008/06/11(水) 22:38:50 ID:wlI2c4q6
質問よろしいでしょうか。 Visual Web Developer 2005 Express Edition でウェブページ作成の勉強をしてます。 そこで、ぐぐってもわからない問題が出てきました。 データベースSQLserverの情報をページ上に表示するのに、 DataSetのTableAdapter、ObjectDataSource、GridViewを用いて表示しています。 表示の際、検索で表示させるためにTableAdapterで検索パラメータを持つクエリを追加し、 ObjectDataSourceでそのクエリを選択してGridViewに表示させようと試みました。 そこでObjectDataSourceでクエリを設定する時に、パラメーターソースの選択の設定を するのですが、そこのDefaultValueの設定を何も設定しない場合、デバッグでのページ表示 でエラーが起こってしまいます。 エラーについては 「System.ArgumentNullException: 値を Null にすることはできません。」 と表示されます。 どなたかこのエラーの原因についてわかりませんでしょうか? ちなみに色々試してみると検索する項目がint型の場合はエラーが起きず、DefaultValueを 設定していなくても、値が0で検索され表示されるようです。
>>614 デフォルト値をブランクにしないで、
何か適当に設定すればいいんじゃね?
XMLファイルをDataSetに読み込んで、加工(アンカーをつけたり)して ページに表示しているサイトなのですが、 アクセスが集中(1秒間に10〜20アクセス)すると使用メモリが極端に大きくなり しまいにはすべて403エラーになってしまいます。 こういう場合、どのように回避すれば良いでしょうか? そのページのアンカーからはパラメータを渡して また同じページにリンクしています。 検索エンジンが来るとサーバが落ちてしまい、 困っています。
あのさー、せめてどの程度のデータをDataSetに入れてるとか、 アンマネージドなリソースの有無とか説明してくれないと・・・
>617が言うとおり状況がよくわかんねえけど、 DataSetをキャッシュするかページをキャッシュするかどっちかしたら。
619 :
616 :2008/06/15(日) 12:10:06 ID:???
>>617-618 すみません、DataSetに読み込んでいるデータ量は200KB程度のXMLです。
アンマネージドのリソースはありません(DBなし)。
ブログのように毎日の報告をリンク付きで表示していて、
その固まりを10日分表示しています。
キャッシュですね、考えてみます!
ありがとうございました!
FormView の ItemTemplateにDropDownListを入れて そのDropDownListに DataSourceの指定とかしたいんですが出来ません。 ((DropDownList)HeaderFormView.FindControl("List")).DataSource = DS ((DropDownList)this.HeaderFormView.Row.FindControl("List")).DataSource = DS 上記2個試しましたが、オブジェクトがインスタンスされていません。 とエラーになります。 FormView の ItemTemplateはどの時点で有効になったりとか調べたり出来ませんか?
621 :
620 :2008/06/17(火) 21:19:54 ID:???
自己解決 4時間もかかったよ・・・ FormVireのItemTemplateはPageLoadではまだいないみたいで 使いたいコントロールのprerenderでDataSourceを指定したらうまくいきました。 まだまだ知識が足りないと実感した日だった・・・
622 :
nobodyさん :2008/06/18(水) 20:28:21 ID:HnUDlBar
開発環境から運用環境へWebサイトの発行をしました。 ところが運用環境ではGACの参照設定ができてないようです。 Web.configに記述はあります。 運用先環境にこの参照設定を追加するにはどうしたらいいでしょうか。エスパーしてください。 追加したいのは以下の参照 <add assembly="Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxx"/></assemblies></compilation>
【環境】 ASP.NET .NET Framework2.0 OS:Windows2003R2 IIS:6.0 です。
Webインストーラ組み上げて、GACに登録するようにすれば?
VS2008 でWebアプリを作っているのですが VSに付属しているASP.net WEBサイト管理ツールでログインユーザを作成しようと 「セキュリティ」タブをクリックすると、SQL Serverがないと叱られました。 このWEBサイト管理ツールを使うにはSQL Serverが必須なのでしょうか?
>>625 ログインユーザの登録管理をSQLでやってるから必要ですね。
>>626 そうなんですか、勝手にmdbファイルでも作成されると誤解してました。
ありがとうございました。
<俺用メモ> ICallbackEventHandlerの使い方 ・指定のメソッドを実装する ・テーブルにSELECTかけてDataSetに読み込んだ後、 return DataSet.getXMLで文字列をJScriptに返してから、 new ActiveXObject("MSXML2.DOMDocument");で resultを読み込んでやればおk ・ボタン押下なんかのイベントにしこむと 押下時に画面更新が発生する件は Me.Button1.Attributes.Add("onclick", callbackRef & ";return false;") と、return false;を追加してやればおk VB側からJScriptを呼び出すのは、無理っぽい。 </俺用メモ>
畜生!俺がバカなだけだがMS死ね!何が__pendingCallbacksだ! ソリューション見ても意味が全然わからねぇ、MS死ね!
VBが既に時代遅れなのです
フォームのテキストボックスに入力した値をDBに登録する、って処理をするときにHTMLエンコードとかした方がいいものですか? 必要ならしなかった場合にどんな危険性があるでしょうか?
>>631 クロスサイトスクリプティングの危険があるんじゃなかったっけ。
ユーザ入力のはしつこいぐらいチェックしたほうがいいよ
>>631 チェック不要で何でも突っ込んでOKな仕様なら不要だろ。
入力値のクリーニングが少しでも必要との認識があるなら、
>>632 の対応で良いとオモ。
>>631 DB格納時にわざわざHTMLエンコードした文字入れるのは止めましょう。
実際のHTML生成時に必ずHTMLエンコードするようにしてください。
中途半端にならずに納得できるまで調べると理由も理解できるかと。
VS2008です 実行後の画面に差異が生じます。 1.デザイン画面ではCSSが適用された見た目になります。 2.デバッグ実行のブラウザではCSSが適用されない見た目になります。 3.ブラウザでIISを通してみるとCSSが適用された見た目になります。 デバッグ実行(仮想サーバ?)ではCSSは適用されないのでしょうか? aspxファイル、cssファイルは同一のディレクトリにあり、パスの間違いではなさそうです。
636 :
635 :2008/06/23(月) 15:15:53 ID:???
特徴としてマスターページを使用しています。
>>635 デバッグ環境での実行時だけ、
cssまでのパスが辿れないとか
そういうオチなんじゃね?
アドレスバーにcssファイルのパス記述して、
参照できるか確認してみたら?
フォーム認証で許可してなかったわっとか
639 :
635 :2008/06/24(火) 08:59:10 ID:???
>>637 ,638
アドレスバーにcssファイルのパスを打ち込んだところ
古いCSSが出てきました。
インターネット一時ファイルをすべて削除したらデバッグでもCSSが適用されました。
ありがとうございました。
640 :
nobodyさん :2008/06/24(火) 14:48:16 ID:t/jniRHC
ボタンコントロールに Attributes.Add( "onclick", "window.open('hogehoge.aspx?id=0&type=test');"; でクライアントスクリプト登録したところクエリ文字列を結ぶ&が&にエンコードされちゃうんですけど 回避可能な方法または別な登録方法はありますでしょうか? Attributes.Add( "onclick", @"window.open('hogehoge.aspx?id=0&type=test');"; でやってもだめでした。 ASP.NET Framework2.0 C#
なんか変になったので全角で書きます。。 >クエリ文字列を結ぶ&が&amp;にエンコードされちゃうんですけど
>>640 何がしたいの?
&を渡したら、&amp;になるってのはさすがに
困るかもしれないが&が&になっても構わないのでは。
644 :
640 :2008/06/24(火) 21:49:51 ID:???
Attributes.Add( "onclick", "window.open('hogehoge.aspx?id=0&type=test');"; で実行するとHTMLに以下の様に展開されてしまいます。 onclick="window.open('hogehoge.aspx?id=0&amp;type=test')" となってしまいQueryStringの「type」が正しく取得できないのです。。
Attributes.Addよりも
>>642 が教えてくれたように
OnClientClickプロパティにJavaScript書く方がスマートだね。
で,ちょっと実験してみたけどAttributes.AddでもOnClientClickでも
確かに&amp;にエンコードされる。
けどどちらにしてもtypeの値は正しく取得できたよ?
以下,テストに使ったコードのサンプル
(インデントは全角スペースに置換したため注意)
protected void Page_Load(object sender, EventArgs e)
{
//以下の2行はどっちでも同じHTMLを出力される
//Button1.Attributes.Add("onclick", "window.open('Default.aspx?id=0&type=test');");
Button1.OnClientClick = "window.open('Default.aspx?id=0&type=test');";
//GETパラメータの全てのキーと値をタイトルに設定
foreach (string key in Page.Request.QueryString.Keys)
{
Page.Title += ":" + key + "=" + Page.Request.QueryString.Get(key);
}
}
ボタン(Button1)一個貼り付けて実行してみればわかるかと。
646 :
640 :2008/06/24(火) 23:35:47 ID:???
ありがとうございます。
>>645 さんの動作確認ブラウザはIEでしょうか?
当方でもIE6では&amp;でエンコードされていてもtypeの値は取れました。
ただFirefox2.0ではNull参照例外が発生したため、困惑している次第です。
エンコードされていても取得できるのが正しいのか正しくないのか。。。
p.s.
OnClientClickの件、ご指摘ありがとうございます。
>>646 Null参照例外?ASP.NET側の?
文字列がURLエンコードされていても、
それをQueryStringとして処理するのはサーバー側だぞ。
普通、ブラウザは関係ない。
もし、変数を代入したりしているなら
>>645 の通りベタ打ちしてみたら?
ちなみにFirefox2.0、Win2k、ASP.NET2.0、VS2005で
検証してみたがなんのエラーも出ずに正常動作した。
>>646 エンコードされるのが正しい。わりとそのへんいい加減ではあるが、
エンコードされてない&は、犬に食われて無くなっても文句は言えない。
いわゆる 標準 だな
ASPからASP.NET2.0に移行したんですが、ASPより体感で遅くなりました。 ASPならほぼ瞬時に切り替わるページが、.NETだと1〜2秒かかります。 SQL server profilerを見ていると、 DBとのやり取りは比べ物にならないくらい速くなっているので、 レンダリング周りだと思うのですが、そんなものなのでしょうか? (初回コンパイルで遅いのではなく常にです) GridViewにバインドする際に整形したいので、 dateFormatter(eval("YYYYMM"))のようなことはやっていて、 ヘルプを読むとevalはパフォーマンスに影響するというのを見ましたが、 原因はこれだけとも思えず…。 というか、eval使わないとなるとRowDataBoundイベントで1セルずつ 整形処理とかおよそ.NETらしくないように思いますし。
せめて列数とか件数とか、ViewStateが巨大になってないかとか 認証とかどうなってるのかとか、トレースやデバッグ設定どうなってるのとか VS上かIISかとか あーだこーだ
全体的に遅かったので、抽象的な質問になりました。すみません。 特に遅い画面といえば、10列 x 100行程度の一覧画面で ローカルでの表示でも5秒程度かかります。 ※クライアントの意向によりページングは使用していません ASPのころは同様の列、行数で切り替わりは1秒程度。 認証はwindowsで偽装はfalseにしています。 本番機でのtrace、debugはもちろんfalseですが、 bufferingはtrueにしています。 サーバースペックはCPUがXeonでメモリ4G程度としか知りません。 ViewStateのサイズは確認していませんでした。 bufferingもtrueにしていることですし、調べてみることにします。 ありがとうございます。
連投すみません。5秒は言い過ぎでした。多分3秒くらい。
DataSetの扱いが悪いとか
とりあえずtrace有効にして怪しいとこがないか見てみたら。 そんなデータ量で何秒とか明らかにおかしいと思う。
656 :
645 :2008/06/27(金) 22:44:24 ID:???
>>646 返事が遅くなってすまん。
こっちで確認したのはIE7とFirefox3でした。
今別の(Firefoxが入っていない)PCにFirefox2をクリーンインストールして
試してみたけどやっぱり正常にtypeの値取れたよ?なにか別の原因かと。
>>647 確認thx
657 :
nobodyさん :2008/06/29(日) 13:39:00 ID:u/QaY2OJ
テーブルアダプターを作り それをaspxのObjectDataSourceコントロールのデータソースの構成から 作ったテーブルアダプターを紐づけたいのですが ビジネスオブジェクトの選択のコンボボックスの中にも表示されず プロパティのTypeNameに直接テーブルアダプター名を打ち込んでも 読み込めませんでしたとエラーが出てしまいます。 スペル間違えは確認しましたがそれはなく、迷っています どなたか解決方法を教えていただきませんか? 宜しくお願いします。 VS2005+VB+Oacle9iです
DataListを使って一覧表示しています。 文字列を表示するときに、Labelを使うと、文字列の中に改行文字があっても、改行してくれません。 イメージとしては、掲示板の本文みたいな表示しにしたいのですが、 ItemTemplateとしては、何を使うべきなのでしょうか?
<br>に置換すれば?
660 :
nobodyさん :2008/06/30(月) 23:02:12 ID:CMrqWlxQ
webサイトを作ろうとやっているわけなんですが、 アップの後に確認してみたところ、どうしても Parser Error Message: Could not load the assembly 'App_Web_default.aspx.cdcab7d2'. Make sure that it is compiled before accessing the page. と出てきてしまい <%@ page language="C#" autoeventwireup="true" inherits="_Default, App_Web_default.aspx.cdcab7d2" %> が悪いと出てくるわけなんですが、どうすればいいのか理解ができない状況です・・・ もし、ここが悪いんじゃね?っていうのがあれば教えていただければ幸いです。
661 :
nobodyさん :2008/07/02(水) 06:22:34 ID:vJfryalk
ASP.NETこれからはじめようとおもっていて、 色々なサイトを巡り情報を収集しています。 Webアプリ開発人口がWindowsなどのアプリケーション開発者に比べて少ないようで、 多くのサイトで、Webアプリが普通のWindowsアプリケーションと比べて、 +α覚えないといけないので難しいとか、イメージが沸きにくいと書かれていました。 ASP.NETはそのような従来のWindowsアプリなどの開発者に最適で、 同じような感覚でWebアプリが書けるといったことも随所で書かれていました。 私はこれまでにPHPしかやったことがなく、 Windowsのアプリケーションなんてどういうものか想像すらつきません。 最初からWebアプリにしか興味がなく、Webアプリしか作ったことがないような人間には、 ASP.NETは理解しづらいものなのでしょうか? PHPユーザーのためのASP.NET入門のようなサイトがあったら是非教えてください。
逆に
>>661 さんに聞きたいんだけど、なんでASP.NETをやろうと思ったの?
Webアプリ作りたくてPHPを習得済みならPHPでいいんじゃないかと思うけど、
PHPでafter Railsなフレームワークを使っていたのなら、 むしろASP.NET MVCとかの方が理解しやすいかもね。
664 :
661 :2008/07/03(木) 01:03:09 ID:???
レス遅くなってすみません。
>>662 趣味の延長線です。
より多くのことをやってみたいというだけの理由です。
他の言語(C#)をさわってみたかったというのも理由です。
>>663 フレームワークは使ったことがありません。
正確には昔CakePHPに手をつけましたがどうにも理解できませんでした。
PHPでもオブジェクト指向が中途半端にサポートされていて、
オブジェクト指向的な書き方や、使い方はできるのですが、
独学でやってるもので、オブジェクトとして正しいものがかけているのかは疑問があります。
ASP.NET MVCというのははじめてききました。
そういったものがあるなら、CakePHPをもう一度勉強してみたいと思います。
フレームワークについては全くといっていいほど知らないので、そちらの習得を最優先したいと思います。
>>664 そういう理由なら、.NETのWindowsアプリに挑戦した方がいいよ。
ASP.NETにいきなり入ると覚えることが多すぎて頓挫しやすい。
.NETには独特の知識が必要だから、まずは.NETそのものに慣れることを勧めたい。
<%%>で時刻をバインドしたいけどできますか?
何の時刻を何にだよ
趣味でプログラムを作っていて、 Windowsアプリなら自分が納得できるレベルのものを作れるようになりました。 そこで、次はASP.NETに挑戦というか、 今まで作ったWindowsアプリを画面だけそのままに 中身の処理はすべてサーバー上に移動ってことをしたいんですけど、 そのために必要な知識を手に入れるためのお勧めの本やサイトを教えてください。 言語はC#を使っています。
まずやってみれば? Windows Form Applicationが作れるなら 後はVS付属のヘルプとGoogleで大概のことはできると思うが。 本じゃないと納得できないのなら .NETエンタープライズWebアプリケーション開発技術大全
>>668 > 今まで作ったWindowsアプリを画面だけそのままに
> 中身の処理はすべてサーバー上に移動ってことをしたいんですけど、
ASP.NETも所詮はWebアプリケーションを実装するための仕組みなんだが…。
Windows Formsとまったく同じものができると考えると危険だぞ。
> 今まで作ったWindowsアプリを画面だけそのままに ミリ
>>668 ようこそ、silverlightの世界へ。
673 :
668 :2008/07/06(日) 20:16:22 ID:???
>>670 >>671 クライアントにWindowsフォームを使って、
ロジック部分だけサーバー上に置くのって不可能ですか?
>>668 >>672 .NETエンタープライズWebアプリケーション開発技術大全と
silverlightの本買ってきます。
674 :
668 :2008/07/06(日) 20:17:17 ID:???
途中で書き込んでしまいました。
>>668 >>672 VSのヘルプって見たことないので、
ゆっくりと見てみようと思います。
ありがとうございました。
>>673 >クライアントにWindowsフォームを使って、
>ロジック部分だけサーバー上に置くのって不可能ですか?
それなら(ASP.NETで作れる)XMLウェブサービスを開発すれば良いと思うよ。
まぁウェブアプリケーションでWindowsフォームに似せた
リッチクライアントを開発したいならば,
>>672 の言うとおり
「ようこそSilverlightの世界へ!」と言うのも楽しいね。
>それなら(ASP.NETで作れる)XMLウェブサービスを開発すれば良いと思うよ。 いいと思うけど多分いろんなところではまると予想しておこう。
>>673 Webアプリを作るという前提で。
>.NETエンタープライズWebアプリケーション開発技術大全
↑これは定番のバイブル的な本だけど、1.1ベースなのと読むのがしんどい。
まずは、同じ著者のこっちの方をお勧めする。
「Microsoft Visual Studio 2005によるWebアプリケーション構築技法」
可能であれば店頭で見比べてみて。
>Microsoft Visual Studio 2005によるWebアプリケーション構築技法 これはオレも推薦する。 小手先の技術じゃなくて、必要性や目的・手段などの解説が秀逸
もう今やWinFormの全てがWebFormで実現できるじゃまいか
UpdatePanel に GridView を配置しています。 UpdatePanel の外に UpdateProgressを配置しています。 GridViewはページングを有効にしており、たとえばページ2をクリックをし、読み込み中にページ3をクリックすると UpdateProgressがエラーをはきます。 エラー内容は Microsoft JScript 実行時エラー: Sys.InvalidOperationException: ScriptLoader が スクリプトを既に読み込み中の場合、ScriptLoader.loadScripts を呼び出すことはできません。 というものです。 スクリプトの二重読み込み禁止にするにはどうすればよいでしょうか?
ついにClassic ASP板が落ちた
ASP.NET(VS.NET 2005)で時間のかかる処理を待たずに画面を表示したいと考えdelegateとBeginInvokeを利用して非同期実行にしました。 (処理の経過はDBに書き込んでそれを見ています) この、非同期にしたメソッドがしばらくすると(0:30〜1:30程度で一定していません) 「スレッドを中止しようとしました」(ThreadAbortException)とのエラーで終了してしまいます。 1.このエラーはなぜ起こるのでしょうか? 2.時間のかかる処理を待たずに処理を進めるにはどうしたらよいのでしょうか?
>>682 非同期処理の中でResponse.RequestとかServer.Transfar使ってない?
>>683 ありがとうございます。そのあたりは使っていません。
ネットで調べても「ThreadAbortException」はその辺りで発生するという情報しかなくて困っています。
非同期処理の認識が間違ってないか確認したいけど、メイン側の処理が終わったら ThreadAbortException発生してページ表示完了になるから、後からサブ側の結果を 反映するのは無理だよ。メイン側では必ずサブ側の待ち受けする必要あるから
>>682 こっちもうまく理解できてないけど。
> 2.時間のかかる処理を待たずに処理を進めるにはどうしたらよいのでしょうか?
・画面上の非同期
と、
・サーバ処理上の非同期
は分けて考えないと。
前者の目的は
・ユーザの待ちを減らして操作感を良くすること。
方法としては、
・AJAX(あるいはComet?)使ったり、
・別ウィンドウでリクエストを飛ばしたり、
・結果は次にポストバックした時に調べるようにしたり、
するといいかも。
後者の目的は
・ASP.NETのスレッドを節約したり、
・並行処理で処理時間を縮めたりすること。
688 :
nobodyさん :2008/07/13(日) 19:53:16 ID:PNe/o1jf
マスターページにログアウトボタンがあります。メインのページにあるテキストボックス上でEnterキーを押すと、ログアウトボタンが押されてしまい、ログアウトしてしまいます。これを回避するにはどの様にすればいいでしょうか?
フォーム分けろよ
DefaultButton ?
>>685 ,686,687
ありがとうございます。
説明が下手で申し訳ありませんしたいのはこういう事です。
1.メイン側はBeginInvokeして画面には処理を開始しましたと表示して終了
2.サブ側は処理を行い状況をDBに書き込む
(この処理は夜間にしたいクライアントは電源を切る)
3.状況確認画面ではそのDBを表示して状況確認
とこんな感じです。
>>685 さんの
>Ajaxのフレームワーク利用するなり
>クライアントコールハ゛ック実装するなり
の案はクライアントを切ってしまう関係でちょっと採用しがたいです。
>>687 さんの
>・サーハ゛処理上の非同期
にあたると思うのですが非同期にしたい理由は2.の通りです。
>>686 さんの話で
>メイン側の処理が終わったらThreadAbortException発生して
と言うのがあるのですがこの方法は根本的に間違っているのでしょうか?
ただ、メイン側が終わった時点ではThreadAbortExceptionは発生していないようなのです。
>>691 >メイン側が終わった時点ではThreadAbortExceptionは発生して
>いないようなのです。
よく知らんから勘だけで感想。
アプリケーションプログラムから見える処理終了と、スレッドの
ライフサイクルの関係なんて、どうなってるのか普通はわからない。
だからThreadAbortExceptionの発生するタイミングを単純に
あてにしていいかどうかわからない。(裏付けがあれば別だけど。)
あと、ASP.NETのプロセス自体、いつ再起動しても文句言わないでよね、
っていう仕様になってるから、長時間の処理には向いてない。
別のプロセス(Windowsサービス)にやらせるのがいいのかなあ、多分…。
>>691 じゃあThread.Abort()かThread.Sleep()使ってないか?
これら使うとThreadAbortException発生するよ。
694 :
nobodyさん :2008/07/20(日) 22:18:43 ID:iFuM44Na
直接画像や動画を出力したい場合ってどうやったらいいんでしょうか。 phpでいうreadfileみたいな。
>>694 php知らんけど、やりたいことは
// ファイルの内容を出力
Response.WriteFile()
// バイナリを出力
Response.BinaryWrite()
どっちかだと思う。
ありがとう、やってみます。
Response.TransmitFile の方がいいと思うんだ。
VS2008使用です aspxファイルにjavascriptを直接書くことはできますが jsファイルをaspxファイルから参照するにはどうすればよろしいでしょうか?
aspxファイルにjsファイルを参照するタグを直接書く
メモリの空き容量が一定量を下回ったときに、ページを表示せず 503エラーをクライアントに返したいのですが、エラーを返すにはどのようにすれば 良いかわかりません。 Page_LoadでResponse.Writeしてもうまくいきませんでした。 どなたかヒントだけでも教えてください。
>Response.Writeしてもうまくいきませんでした。 何をWriteしたんだ?? 503とか書いたのか??
.NET の3.5が入ってるなら Respnse.StatusCodeを設定できるのかな。 入ってないなら HttpExceptionをスローが手っ取り早いのかな。
3.5? 昔っからできるんとちゃうのん?
704 :
700 :2008/07/23(水) 23:44:14 ID:???
>>701 Response.Write("503 Service Unavailable");
としてみたのですが、ページの先頭に表示されるだけでした。。。
>>702 StatusCode = 503;
は何も起こりませんでした。
throw new HttpException(503, "Service Unavailable");
とすると、目的のエラーが返されました!
ありがとうございます!
>>703 だって解説に
StatusCode は、.NET Framework version 3.5 で導入されました。
ってかいてあったんだもん
odbcを使用して、PostgreSQLに接続をしたいのですが、 System.Data.Odbc.OdbcConnection odbcConn = new System.Data.Odbc.OdbcConnection( "data source=サーバのIPアドレス;password=pass;persist security info=True;user id=PostgreSQLユーザID;" ); odbcConn.Open(); と記述して実行すると、下記のエラーがでます ERROR [IM002] [Microsoft][ODBC Driver Manager] データ ソース名および指定された既定のドライバが見つかりません。 ちなみに、サーバエクスプローラのデータ接続には表示されています。 原因わかる人いましたら教えていただけますか? よろしくお願いします。
サーバーエクスプローラから、プロパティで接続文字列が見えます。
>>707 お返事ありがとうございます。
サーバエクスプローラから見たプロパティの接続文字列をつかって試して
みましたが、前回と同じエラーがでてしまいました。
よろしければ、もう少し詳しく教えていただけると助かります。
では、ODBCのDSNはどこに作りましたか? システムデータソース に作ってみてください。
途中で送ってしまいました。
それで、名前を test として登録していれば、 接続は System.Data.Odbc.OdbcConnection odbcConn = new System.Data.Odbc.OdbcConnection( "Dsn=test"); でいけると思いますが。
>>711 うまくいきました!
ご丁寧にありがとうごさいます。
713 :
nobodyさん :2008/07/27(日) 02:16:16 ID:PuhlOnPo
質問。
ただの text だけを書いた aspx ファイルを設置して、
まず ASP.Net が動作しているかだけを確認したんだけど
同ファイルで web共有フォルダ上のみ動作しないだわ。
1)
http://a.xxx.co.jp/folder1/sample.aspx --> ok
2)
http://a.xxx.co.jp/folder2/sample.aspx --> '/folder2' アプリケーションでサーバー エラーが発生しました。
物理パス
X:\wwwroot\folder1 <-- 名前のとおり root 設定
X:\folder2 <-- web共有で設定。スクリプトのみ許可
IIS のフォルダ別設定は見比べてみたんだけど違いはなかった。
ローカルでエラー内容確認しようとしたけど AD forest の
認証と SSL の関係で、うまくいかず... orz
ほかに何か確認すべきことはある?
714 :
nobodyさん :2008/07/28(月) 23:29:04 ID:HmIeNyld
安いノートでVS使えたらと思いますがEeePCでは無理でしょうか?
715 :
sage :2008/07/29(火) 00:49:41 ID:jQQEt0MC
>713 自己レス。 X:\folder2 について "NETWORK SERVICE" に read/write 権限を与えてないことが問題だった。 すまん。首吊ってくるわ orz
いってらっさい ノシ
>714 俺には無理だな
718 :
nobodyさん :2008/08/04(月) 23:22:14 ID:ssJofGpT
global.asaxで、Application_BeginRequestイベントを 記述して、各画面がロードされる時に共通で行う処理を記述したら、 Gifとか、インポートしている?CssやJsファイルとかまで このイベントへ飛んできたのですが、 たとえば、要求のあったaspxだけイベントとしてあがってくるようにするなどの 制御ができますでしょうか?
>Gifとか、インポートしている?CssやJsファイルとかまで あたりまえだろ 拡張子で判断するのが邪道だが手軽かな。 PostMapRequestHandler とかできちんとハンドラかくにんしてもいいが。
あ、 >あたりまえだろ って書いたけどIIS6とかまでのデフォルトの構成では飛んでこないな。 ASP.NETまで来たやつは全部飛んでくる、という意味での当たり前ね。
>718 IISで動かすとデフォルトではaspxしか来ないと思うよ。 VisualStudioの開発Webサーバーだとなんでも飛んでくる感じ。
他にもいっぱいくるからチェックはいるよ。 ISAPIのマッピング見りゃ、あーやっぱチェックいるわってなる。
asp.netってIISと.netフレームワークが入っていれば .aspxファイルだけで作成されたアプリならVSでのコンパイルとかは しなくてもいいんですか?
>>723 Visual Studioは必須ではないよ。
最初のリクエストがあったときにIISでコンパイルされるはず。
パフォーマンス挙げるためにプリコンパイルすることもできる。
必須ではないけれど、Visual StudioのExpress Editionに
Visual Web Developerという無料の開発環境があるから
それいれるといろいろ便利だと思うよ。デバッグとかもしやすいしね。
くだらないエラー(構文エラーとか)を事前に排除できるからいいよね。 aspxだけ置いておく →IISでコンパイルされたdllがキャッシュにたまる →それをbinフォルダに設置する …なんて荒技を1.0のころにやった覚えが…。
実際の運用ならプリコンパイル必須でしょうね。
> 実際の運用ならプリコンパイル必須でしょうね。 そうでもない。
別に何分もかかる訳ではないしな。 加えてASP.NETなんてイントラ案件がほとんどだろうし、 一人が一回のみ遅くなったとしてもそれ程問題にもならん。
サーバー上でエクセルの操作(COM使用)をしてクライアントにDLさせる場合って やっぱりサードパーティー(ExcelCreater?)とか使った方がいいんですか? COMを使用する場合に気をつける事とかって何かありますか?
すんません、オートメーションのコードが載ってるページはしってたんですがこのページは知りませんでした・・・
excelの操作だけJava+POIでやったほうがいい
734 :
nobodyさん :2008/08/09(土) 15:17:16 ID:x2zTbbls
アリが喋った!
C#で、ラジオボタンリストのボタンが3つあって インデックス2にチェックを入れた時だけ その横のテキストボックスをreadonlyにしたいのですが、ポストバック無しでやれる スクリプトがわかる方いますでしょうか?
738 :
736 :2008/08/12(火) 21:18:30 ID:???
質問なのですが、 GridView内のテンプレフィールドでDropDownListを置いた状態で そのDropDownListが変更されたとき、その行番号取得してUpdateしたいんですけど どうにかならないでしょうか?
教えてください。長文すみません。 VS2005でASP.NET2.0の開発をすることになりました。 基本的な画面構成として、画面左側に検索条件入力部があり、 画面右側に検索結果表示やその他の操作をする形になっています。 右と左を分けるのはマスタページにて行っています。 このうち、画面左側で入力された検索条件の処理を共通化しようと思い、 これをascx化(hogefind.ascx)し、各画面のaspxにてContentPlaceHolder内に配置しています。 また、OnLoad時の共通処理のため、Pageクラスを継承したHogePageクラスを作成しています。 ここで、HogePageクラスにてhogefind.ascxに関連付けられた?クラスhogefindを オブジェクト変数として使用したいのですが、型がわからない、とされてしまいます。 どのようにすれば、このhogefindを認識できますか?
エラーメッセージは正確に。
743 :
740 :2008/08/17(日) 22:02:53 ID:???
くどくど書いてしまいましたが、簡単に言うと自分で作ったクラスの中で、 ascxのユーザーコントロールにひもづいたクラスを使用するには? ということが知りたいです。 dim hoge as hogefind と書いても、hogefindという型は使えない、となります。 インテリセンスの候補にも出てこないのです。
エラーメッセージは正確に。
>>740 Public Partial Class hogefind
746 :
740 :2008/08/19(火) 10:15:10 ID:???
情報が小出しになってしまって申し訳ないです。てか、俺の説明が下手だな・・・
>>745 それは実施済なのです。
HogeFind.ascx:ユーザーコントロール
HogeFind.ascx.vb:ユーザーコントロールにひもづいたクラス
Class HogeFind
Inherits System.Web.UI.UserControl
HogePage.vb:pageクラスを継承した自作クラス(App_Code内に配置)
Public Class HogePage
Inherits System.Web.UI.Page
このHogePage中でのにHogeFindクラスのオブジェクト変数を使う方法がわからないのです。
dim hoge as HogeFind ← ここで型'HogeFind'は定義されていません、となる
>>746 自作クラスをaspxに対するコードビハインドにしない理由は何かあるのん?
748 :
740 :2008/08/19(火) 13:05:13 ID:???
>>747 hogepageクラスはデザインに依存せず、
全画面の共通処理を定義しているため、
普通のクラスで作成しました。
aspxのコードビハインドからはHogeFindクラスは認識されますね。
通常のクラスからは使うにはどうしたらいいのか・・・
そもそもやろうとしてることが間違ってる・・・?
空っぽのaspxのコードビハインドのクラスを共通化クラスにしたほうがよいのかな。
インスタンスをどっかで保持しとくしかない。 新しく生成したら別物になっちまうからな。
namespaceが違うというオチではなかろうな
WebサイトではなくWebアプリケーションプロジェクトとして作成しな。 まあそれやると他にも影響あるから微妙だけどな…
オレ様のレスを無視したから教えない
UserControlの属する名前空間はえーと・・・なんだったかな global::じゃなかったっけ?これはC#だけど・・・
Webサイトモデルだと参照できないんだよ。 名前空間とかそういう問題以前に。
コンパイルのタイミングがややこしいことになってるからかな…
PHPユーザーですまん。 1月前にASP.NET2.0の本を2、3冊買って読みました。 仕組みはわかったのですが、実際に何かを作って理解したい。 最初はどんなものから作ればいいでしょうか?
PHPユーザとかいてるのにHello worldとは とんでもなくばかにされてるなw
>>759 PHP+Smarty+Mysqlな感じでやってました。
ASPに関してはまったく素人なので、ご伝授お願いします。
>>760 別に馬鹿にしてませんよ。
私はsmartyが何なのか良く知らないのですが
ASP.NET的にいうと、hoge.aspxに相当するんですかね
phpスクリプトの方は、コードビハインドのhoge.aspx.vb(cs)でしょうか
今まで作られたコードを移植してみてはいかがですか?
使った事は無いですが、MysqlにConnector/NETとか言う
ADO.NET用ドライバもあるようですし
762 :
740 :2008/08/21(木) 20:36:37 ID:???
遅くなりましたが、みなさんレスどうも。
WEBサイトモデルだと参照できないようですね。
微妙な制限だなぁ・・・
別の手段を考えることにします。
>>760 自分もLAMP+Smartyでずっとやってました。
自分もまだASP.NETを始めたばかりなので的確なアドバイスはできませんが、
PHPとは考え方を大きく変えないといけないと思います。
WEBの基本的な部分は忘れずに、あくまでイベントドリブンで作る、とかでしょうか。
Pageやコントロールのイベントの発生順序を把握すことが大事かと。
もう英文字を全角で書いてる時点で・・・
764 :
760 :2008/08/22(金) 09:47:10 ID:???
>>761 >phpスクリプトの方は、コードビハインドのhoge.aspx.vb(cs)でしょうか
そんな感じで大丈夫と思います。
>今まで作られたコードを移植してみてはいかがですか?
そうですね。両者の違いを比較できるので面白そうですね。
>使った事は無いですが、MysqlにConnector/NETとか言う
>ADO.NET用ドライバもあるようですし
はい、mysqlのサイトにmysqlのODBCのドライバがありました。
ありがとうございます。
>>762 そうですよね。考え方全然違いますよね。
そこで考えちゃんですよね・・・
アドバイスありがとうございます。
イベントドリブン+イベントの発生順序を見てみます。
>>763 脳内変換お願いします!
はじめまして ASPはじめて間もないのですが、DNS-LessでAccessに接続しています。 参照はできるのですが、レコードの書き込みや削除をしようとすると Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Microsoft Access Driver] 指定されたテーブルから削除できませんでした。 /kensaku.asp, line 490 のエラーが出ます。 ソースは本のサンプルそのまんまなんですが、IISの設定か何かでしょうか?
ちなみに490行目の命令は ObjConn.Execute(StrSQL) ここでエラー出ます。
>>766 コードもないのに原因がわかるエスパーはいない。
イントラ用途でもちゃんとしたDBつかったほうがいいんじゃないの。
フリーのでもいろいろあるんだし。
アクセスなんてロックもいいかげんでしょ。
>>768 サンプルにAccess使うあたりちょっと古い本じゃないかと思ったが予感的中。
(asp.netだと気の利いた本は、まともなデータベース使って解説するから)
これ(新しい)asp.netじゃなくて(古い)aspだよね。ASPは別スレ。
もしasp.netが使えるならそっち使った方が開発は楽だよ。
便利な新機能多いし。
あとざっとしかコードは見てないけど、SQL文の生成で
文字列を連結して作るのはセキュリティ上、危険だとおも。
公開するWebサーバなら絶対やっちゃいけない書き方。
近頃、ハッキングされて個人情報漏洩する事件はだいたいが
SQLインジェクションでやられてる。
asp.netではSQL文に変数いれたいところはパラメータ化する。
旧ASPでのSQLインジェクション対策は知らない。
把握した。 とりあえず、Visual Studio 2008 Express Editionsダウンロードしてきた。 一から作ります。
>740 あっ、思い出した。 Me.LoadControlメソッドを使え。
勘で書くけど、参照ができないんじゃない?
検索フォームで、フィルタリングしたものをグリッドビューに反映させるところまで出来ました。 初歩ですがw それで、検索結果で、「何件ヒットしました。」みたいな件数を表示させたいんですが、どうすればいいんでしょう。
Rows.Count
776 :
nobodyさん :2008/08/28(木) 02:29:35 ID:2GEIcWF8
asp.netを始めたものですが、教えてください。 参考書等を見ると、DropDownListやGridViewにデータをバインドさせるとき、 お約束のようにSqlDatasourceからデータを取得していますが、 みなさん、実際そうされていますか? 例えば、画面にDropDownListが10コあり、それぞれ異なるリストを表示する場合は SqlDatasourceに限らず他のデータソースであっても、同じ数だけ配置されていますか? プログラム側ででDataSourceプロパティにDataSetをセットする方が一般的?
バインドするデータが少なく、将来的にも増加が無いようなら素直にSqlDatasource使ってます。 理由は他のデータソース使うより楽だから。でも10個程度なら自分でDataSetかな・・・。
おとこならGrid使わずに For i=∞ Next でデータを表示させろ
reportなら蟻
780 :
nobodyさん :2008/08/28(木) 12:58:47 ID:tcZ5Xl9o
>>762 Webサイトモデルのその制限は、自作ユーザーコントロールに必要なインターフェイスを定義して、それをインプリメントしとけば型を参照できなくてもたいていのことはできるよ
詳しく話を聞こうじゃないか
ファイル名について相談です。 画面に対応するDBとの接続を記述したクラスについて どのように命名するのが一般的なのでしょうか。 例えば検索画面Search.aspx、Search.aspx.vbに対応する DB接続用のクラスをSearch.vbとすると、 検索一般についてのクラスなのか、画面Search.aspxに対応するクラスなのか わかりにくくなってしまうように思います。 ググってみたところではDAL_Search.vbのような 接頭詞DALが一件ありました。
グリッドビューで表示されたチェックボックスフィールドでクリックしたら即データベースに反映させたいんだけどどうしたらいいんだろう?? 編集フィールドのクリック→チェックボックスをクリック→更新 なら、すぐに作れるだけど、即チェックボックスを押してデータベースに反映させるのはどうしたらいいんでしょう。
自動でポストバックするようにすればいいだけですよ
グリッドビューのテンプレートの編集のプロパティのオートポストバックをTRUEにするだけってことでしょうか? 表示上はチェックがついてもデータベースが更新されていないですが、UPDATEはどこで設定するんでしょう? 初心者ですみません。
786 :
776 :2008/08/30(土) 12:17:07 ID:???
>>777 やっぱそうなりますかね。
デザイン画面に大量のSqlDataSourceがあるのが気持ち悪いなと。
それといまいちObjectDataSourceのメリットが見えててこない・・・
>>780 自分もそれ知りたいです。
あかん、自動ポストバックして、も保存されない。 チェックボックスのハンドラでデータデースの書き込みがよくわからん。 現在のGridViewの状態(checkBoxの状態)をDatabaseに保存するのってどうやるの??
>>775 遅くなってすみません。
それだとページビューのときに表示してる件数しか表示されませんTT
<asp:Repeater ID="Items" runat="server"> <ItemTemplate> <asp:Literal ID="Hinban" runat="server" Mode="Encode" Text='<%# DataBinder.Eval(Container.DataItem, "品番") %>'></asp:Literal> </ItemTemplate> </asp:Repeater> は正しく動作するのですが、 これを UpdatePanel で括ると Container.DataItem がないと怒られてしまいます。 <asp:Repeater ID="Items" runat="server"> <ItemTemplate><asp:UpdatePanel ID="UpdatePanel1" runat="server"><ContentTemplate> <asp:Literal ID="Hinban" runat="server" Mode="Encode" Text='<%# DataBinder.Eval(Container.DataItem, "品番") %>'></asp:Literal> </ContentTemplate></asp:UpdatePanel></ItemTemplate> </asp:Repeater> 上手な回避策はないんでしょうか。
790 :
nobodyさん :2008/09/02(火) 00:11:14 ID:vKzpFC6m
Webアプリよりも上位に位置するファイルを参照できるようにするにはどうしたらよいでしょうか? ソリューション配下に、Webアプリのプロジェクトが2つくらいあって、どちらのプロジェクトでも共通で参照できるようにWebアプリの上位に、CSSやJSなどのファイルを配置したいのですが。。。 IISの場合だと既定のWebサイト直下にCSSやJSを置いて、その下に仮想ディレクトリを作ってWebアプリを配置すると参照できるのですが、同じ構成をVS2008上でどうやってつくりあげたらよいのかがわかりません。 配置関係は以下の通りです。 テスト.sln common.js Webアプリ1 ←ASP.netプロジェクト app_code bin ・ ・ Webアプリ2 ←ASP.netプロジェクト app_code bin ・ ・ 物理パスを同様にしておいても、この場合だと、commonのファイルが見えておらず、スクリプトの関数などを呼び出すとエラーになってしまいます。 IISで同じように配置すると・・・ 既定のWebサイト common.js Webアプリ1 Webアプリ2 Webアプリ1からも、Webアプリ2からも、commonのファイルをちゃんと参照できています。 VS上ではどうやって配置したらよいのやら・・・。 参照設定とかApp_GlobalResourcesあたりでcommonのファイルを追加するのかなとも思ったのですが、それらしきものがなくて。。。 分かる方すみませんがご教授ください。
できない
質問です。 登録会員がWEB上で設定した時間とメールアドレス宛に、自動でメールを送るような使い方をしたいと思っています。 IIS5と.NETの組み合わせでこのようなメールの予約配信は可能でしょうか。
可能です。
意外と難いぜ?
でも可能です。
30 名前:nobodyさん[] 投稿日:2008/09/04(木) 16:14:13 ID:EDn9ySYG フォームで日にちと時間を指定して その日時にメールを送信したいのですが、 cronとやらを使うのが一般的なやりかたですか? よろしくお願いします。 スレ違いだったらごめんなさい。 お前らがちゃんと答えてやらないからPHPスレにきたじゃないか
>>796 ワロタ
キューイングと送信ロジックを裏で動かす算段がついていれば、
悩む必要ないことだって分かると思うんだがなぁ。
798 :
nobodyさん :2008/09/05(金) 09:12:57 ID:eF6Wfezu
GridViewであるレコードを選択しても、たまに違う結果が返ってくるけど何が原因なんだろう
>>792 設定するのがWEBってだけで、配信側はWEBAPである必要ないと思うが
801 :
nobodyさん :2008/09/05(金) 21:51:13 ID:A2hsdpgy
runatって何の略?
run at でしょ
R ur nase are belong to t
804 :
nobodyさん :2008/09/08(月) 22:30:56 ID:lqDRVsX6
質問です。 テキストボックスの初期色:白 ボタン1押下イベント:テキストボックスの色を青にする ボタン2押下イベント:指定なし Page_PreInitからPage_InitCompleteの各処理:テキストボックスの色を黒にする 上記の条件で以下のイベントを実行します 1.画面表示 2.ボタン1押下 3.ボタン2押下 自分の想定では、1.黒→2.青→3.黒だと思ったのですが、実際は 1.黒→2.青→3.青となります 3.ボタン押下で確かにテキストボックスを青くする処理が走っているのに なぜ画面に反映されないのでしょうか また、Page_Loadで黒くする処理を行った場合 ボタン押下イベントよりも後にPage_Loadが走るにも関わらず、色は青いままです イベントと画面表示の関わりに肝がありそうな気はしますが、 ググッても出て来ませんでした・・・なぜでしょうか
ボタン2押下時になにもしないんだから、青のままで正解じゃね??? >ボタン押下イベントよりも後にPage_Loadが走る Page_Loadの後にRaisePostBackEventが走るだろ。
806 :
804 :2008/09/09(火) 08:02:23 ID:???
>>805 説明を間違えました
ボタン2押下時は何もしないのですが、Page_PreInitからPage_InitCompleteで
黒くしているの処理は通っているのでなぜ黒くならないのか、という疑問です
>Page_Loadの後にRaisePostBackEventが走るだろ。
RaisePostBackEventですか…この処理で何かやってるという事でしょうか
調べてみます、ありがとうございました
ASP.NETの動作がわかってるんだろうか・・・心配
808 :
804 :2008/09/09(火) 22:52:14 ID:???
>>807 よく分かっていません
RaisePostBackEventについてもググってみましたがめぼしい情報は出てきませんでした
なんとなく最も基本的なところだと思うんですが入門サイトを見ても
記述が無いし、イベントの処理順とかコントロールの使い方とかばかり…
809 :
nobodyさん :2008/09/11(木) 00:25:15 ID:R125hntO
質問になります。よろしくお願いいたします。 <やりたいこと> UpdatePanelのなかにドロップダウンリスト1とドロップダウンリスト2とボタンが入っています。 最初の状態ではボタンはenabledがfalseになっているものとします(つまり押せない状態)。 まず、ドロップダウンリスト1を変更すると非同期ポストバックで、ドロップダウンリスト2の 選択肢を増やします。その後、ドロップダウンリスト2の値を変更(SelectedIndexChanged)すると 非同期ポストバックでボタンのenabledをtrueにします。 その後、ボタンを押すと、非同期ポストバックではなく、通常のポストバックを起こし、ページ内容を更新します。 </やりたいこと> というわけなんですが、最後のボタンを押す部分で、ボタン自体がUpdatePanelの中に入っているので通常のポストバックが起きません。 UpdatePanel内のコントロールでも強制的に通常のポストバックを起こさせることは可能なのでしょうか? 根本的なことを勘違いしているかもしれませんが、どうぞよろしくお願いいたします。
ボタンをUpdatePanelの外に出して、ドロップダウンリスト2の アイテム変更イベントでボタン有効可否を切り替えるJavascriptを書く。
811 :
809 :2008/09/11(木) 23:58:54 ID:???
>>810 なろほど。確かにそれでいけそうですね。
UpdatePanel内でもコントロールまたはそのイベントで同期させるか非同期させるか簡単に選択できたらいいのに・・。
ありがとうございました。
質問があります。 ユーザーコントロールを作って、色々なページで使い回したいけれど ユーザーコントロールのTextBoxの値をSqlDataSourceの条件に設定するには どのように行なえばいいのでしょうか?どの画面からも設定できなくて・・・
usercontrol.findcontrol("textBox")
しょうもない質問なんですが、セッションIDの破棄ってどのタイミングで行うのでしょう? とあるサイトで、ログアウトボタンを押すとcookieは削除され、ブラウザ上では破棄され た様に見えるのですが、cookieの内容を送りつけるとログイン状態を復元できるのです。 その後再ログインして別セッションを得ても、前回のセッションIDも有効という変な仕様。 (早い話が2重ログインOK) 自前のサイトは、ログアウト時にはサーバー側でもセッションを破棄。再利用不可。 やっぱりIPA行きでしょうか。
セッション切れるサイトきらい sesstion.requesttimeout = 60*24*365と書いとけ
ASPででっかなボタン配置したらデザインでは普通に見えるんですが、 実行するとめちゃめちゃ荒くなってるんですが、これはしょうがないのでしょうか? IE8だとデザインのまま見えて、IE7とか6だと荒れる状態で、IE6とかでもデザインのまま見えるようにしたいのですが・・・
それセッションじゃないだろ? 認証の方だろ?
セッションと認証管理を同一と思いこんでる人が多いが、 そんなのはただたまたまこれまでに多いやり方だっただけだ。
じゃセッション以外の仕組みは?
認証後は、認証情報をセッションで管理しない? つど、ワンタイムトークン発行する方法もあるけど。
しない。
認証クッキーで認証状態を管理しているのに、あえてセッションを使う必要ないし。 もちろん使うやり方もありうるし、場合によってはそれが望ましいこともある。 でも常にそうやるようなもんじゃない。
すまん、言い方悪かった。 当然、クッキー使うにしてもセッションID使うにしても、鯖でも管理するよなと聞きたかった。 有効期限をクライアント側に一任しないよな、という意味で聞きたかったんだ。すまん。
安全性をできるだけ高めたいならそうするが、別に必須でもないでそ
どうせ大抵は20分くらいで切れるように設定するんだし。
まあ、これは好みの問題でもあるけど、俺はサーバ側には、 ステート維持に必須になるような状態はできる限り持たない主義。
まぁ、マニュアルの「ASP.NET の状態管理に関する推奨事項」の項目通りにしとけばok
828 :
nobodyさん :2008/10/17(金) 08:58:27 ID:EdczhNrK
今までXP proにクライアントぶらさげてVWDで作ったアプリ走らせてたんだけど、最近2000 serverのライセンスが余った。 XP proで安定動作してるんだけど、2000serverに換える利点ってあるかな? セッション数くらい?
XPのIISでクライアントの接続数が事足りるのか?2000Serverバッチ恋。
IISのセッション数はなんとでもなるけど、 TCPIP.SYSの接続数の問題がある罠
831 :
nobodyさん :2008/10/18(土) 02:07:40 ID:ILpwoZPF
クライアントは12台だけど同時に全部はないんで、行けてる
833 :
nobodyさん :2008/10/24(金) 03:32:47 ID:icuWvk1z
型指定されたDataSetとTableAdapterをApp_Codeディレクトリ意外の場所(クラスライブラリプロジェクトなど)に作成することってできないのでしょうか? App_Codeの下にしか作れないとすると、1ソリューションに複数のWebアプリが含まれる場合(参照するデータベースも同一)、 型指定されたDataSetとTableAdapterはWebアプリ毎に(同じクエリであっても)重複して作成する事になってしまうような気がするのですが・・・。 それともそもそもDataAccessレイヤを別プロジェクトとして分ける必要がある規模のシステムでは推奨されない機能だったりするのでしょうか? その辺りがいまひとつ良く分からずに悩んでいます。 皆さんその辺りはどのようにされているのでしょうか?
>>832 サーバにExtentionはインストールした?
Web.configの記述は見直した?
>>833 できるよ
クラスライブラリを使用する側のweb.configでTableAdapterが使う接続文字列を指定するのを忘れないように
使用するコンポーネントの制約で、MasterPageを禁止されてしまいました。 ただ、デザインのほうは、ヘッダがあり、左側にメニューがならび、メニューをクリックすると 右側が変化するというものです。 この場合、フレームを使わなくても実現できるのでしょうか? ちょっと上のほうを見てみましたが、タブ表示にしているようでしたので…。
>>834 返答していただきありがとうございます。
Extentionはインストールしております。
Web.Configの記述も見直しましたが特に問題はありませんでした。
また試しにAjaxControlToolkit.dllを削除して実行した所、他のdllでも同様のエラーが発生します。
「ファイルまたはアセンブリ 'XXXXXXXXXXXXX'、またはその依存関係の 1 つが読み込めませんでした。アクセスが拒否されました。」
('XXXXXXXXXXXXX'はdll名)
サイトルート直下のbinフォルダに入っているdll全てに対してエラーが発生しているようです。
>>835 マスターページは、複数のページで共通レイアウトがある場合に重複コードを無くす目的で使うものなんだから、全てのページにヘッダとメニューを書けば実行結果は同じになる
せめてヘッダとメニューをユーザーコントロールにしておけば、コードの重複も最小限になるよ
>>836 そういうエラーが出た経験があるような気もするけど覚えてないなぁ
新規にソリューションを作成しなおしてサーバに配置しても動かないんだったらなんかのインストールとかIISの設定自体がおかしいんだろうし、
そこから関連するコンポーネントとかを追加していって、ある時点でエラーが出るんだったらそいつが犯人だろうし。
そうやって調べるしかわかんない
838 :
833 :2008/10/25(土) 10:36:55 ID:???
>>834 ありがとうございます。
クラスライブラリプロジェクトにDataSetとTableAdapterを作って行き、各Webアプリケーションプロジェクトでそちらを参照すれば良いという事でしょうか?
その場合、DataSetはApp_Codeディレクトリは作成しなくても問題無いのでしょうか?
>>837 ありがとうございました。
ユーザーコントロールで試してみます。
>>836 自分はIIS7でたぶん同じ症状でした
IIS7ならIISマネージャ上で「アプリケーションへの変換」で解決
c:\inetpub\wwwroot\binにdll置いても読んでくれるみたいです
IIS6だと「アプリケーションの設定」かな?
質問です。 VistaにインストールしたVisual Studio 2005を使いASP.NETでの開発をしております。 デバッグ時に起動する"ASP.NET開発サーバー"上で動いているサイトを異なるブラウザでアクセスすると、 Firefox、Windows版Safari、SeaMonkedyでの表示が異常なほど遅くなります。 IE、Opera、Google Chromeは問題ありません。 結局、IISに発行すると、遅くなってたブラウザでも問題なく普通に表示できるので、開発サーバーだけでの問題と思います。 WindowsXP上での開発はそのようなことはなかったはずなので、実際はVista+開発サーバーでの問題かもしれません。 CSSやJavascriptのバグは開発時に潰したいので、非常にストレスで困っております。 どなたか、Firefox等でも問題なくアクセスできる方法ご存じないでしょうか?
842 :
834 :2008/10/27(月) 23:48:32 ID:???
>>838 うん
DataSet(とTableAdapter)はクラスライブラリプロジェクトにだけ定義すればいい
Visual C# 2008 Express Edition で ASP.NET を使ったサービスの開発とか 普通に出来るんですか?製品版を買うのと比べて、なにか制約事項があったり するんでしょうか? まずは、WinServer2k3にOracle10gXEとIISを入れて、極々簡単な日記システム でも作ってみようかと思っています。無料とはいえ、落としてくるのもそれな りに大変そうなので、まずはこちらで質問させて頂きました。
ASP.NETでの開発ならC#じゃなくてVisual Web Developerってやつ。 クラスライブラリ作るときなんかはC#のほうもいるから両方入れとけ。 制約事項はドキュメント読んでね。(普通に使えるけど)
VWD2005で画像の表示ページ(View.aspx)を作成しています。 SQLデータベースに、画像のファイル名とタイトルなどを登録していまして、 「前へ」、「次へ」ボタンで画像を送るようにしています。 ボタンは、イメージでクリックされるとJScriptで画像やタイトルを変更する ようにするには、JScriptからどのようにデータベースの操作をすればよい のでしょうか? SQLデータベースには、VB(View.aspx.vb)で接続できるのですが…。
846 :
nobodyさん :2008/10/28(火) 20:36:40 ID:wPLaDBkw
>>845 htmlを再読込することなく、やりたいということ?
その方法だと、ASP.NET AJAXを利用するしかない。
具体的にはポストバックした後に実行されるプロシージャ内に、
画像を描画するClientScriptを記述するメソッドをするだけ。
ポストバック→DBに接続→ファイル名を取得
→JavaScriptで画像を切り替えるスクリプトを登録
そんな感じ。
Ajaxを使いたくないなら、前と次のファイル名をすべてhtml内に配列で持って、
それから読み込むようにするしかない。
それもだめならhtmlの再読込を許すしかないね。
>>845 はい。htmlを再読込すると、いろいろ飾りがあるので、かなりうっとうしくなって
しまって…。
実は、Ajaxをインストールしてあるのですが、つまずいてしまって。
もう一度やってみます。
848 :
nobodyさん :2008/10/28(火) 21:06:12 ID:wPLaDBkw
>>847 AJAXだと、ちょっと違うかもしれないけど、
AJAXにもPage.ClientScript.RegisterStartupScriptみたいなメソッドがあって、
それを利用すれば、htmlの再読み込みしなくてもJavaのプログラムを実行できるよ
いまPCがなくて、実際に書いたコードがないので具体的な例は出せないけど・・・
それ以外の方法としては、さっきも書いたけど、
ファイル名をJavaScript内の配列で持つようにして、クリックするたびに
その画像をimgタグのsrcとして指定するような感じしかないかな?
>>848 JavaScript内の配列にデータを入れるという方法に興味があります。
これは、前の質問にも繋がる?のですが、VBのプログラムでJavaScriptの配列に
データを入れ込むことが出来るのでしょうか?
>VBのプログラムでJavaScriptの配列に var a = new Array(<%=カンマ区切りの文字列を返すFunction%>) あとICallBackEventHandler
ありがとうございます。 やってみます。
852 :
832 :2008/10/29(水) 12:37:24 ID:???
返事が大変遅れてしまって申し訳ありません。
>>837 、
>>840 さん、返答ありがとうございます。
あれから試行錯誤したところ、Web.Configに記述していた
<identity impersonate="true" userName="XXXXXX" password="XXXXX" />
の記述行を変更すると、エラーが消えて正常にページを表示できるようになりました。
記述する行が正しくなかったようです。
ご教授してくださった皆様、ありがとうございました。
>>850 それこそ、全部Page.ClientScript.RegisterStartupScriptでいいと思うよ
string commaText = "カンマ区切りのファイル名";
string javaScript = "var a = new Array(" + commaText + ") ";
Page.ClientScript.RegisterStartupScript(javaScript);
あと、現在の表示している画像の配列のindex数を保存する変数をJavaで登録して、
クリックするたびにindex++なりindex--して、配列数オーバーのindexなら0に戻すとかして
画像名を取得したら、imgタグにファイル名を渡してあげればいいはず。
そらでタイプしてるから間違ってたらごめん
質問させてください。 VS2003で作成したものとVS2005で作成したものを比べると、後者の方が 遥かに画面のちらつきが目立つんですが、これは何が理由なんでしょうか? 作り的には、ほぼ同じような作り方をしてるつもりなんですが。 今の所、ちらつきを無くすにはAJAXを使う方法しか見つかっていませんが、 それをVS2005でやるのは大変だと思います。やるならVS2008だと思いますが 期限や予算の関係で今すぐに、という訳にはいきません。 顧客に、VS2005でちらつきが抑えられないならVS2003の方がまだマシだ という話をされると困りますよね。同じような経験をされている方っていませんか?
855 :
854 :2008/10/29(水) 19:58:57 ID:???
↑大事な所が抜けていた気がするので補足ですが、「ポストバック時」のちらつきです。
は?
それは気のせいだから気にするな。 疲れてるから休め。
>854 なんとなく勝手に埋め込まれるhiddenのフィールドのサイズが2005で増えたプロパティとかの分が死ぬほど膨らんでて POSTされてるデータ量が増えて遅くなってるんじゃないかなとか思ったり。 それだったらIISのgzipを有効にしてごまかしてみるとか。 まぁ、WebFormってそういうものだしと思ったり… 勝手にポストバックされたりとか意図しないところで勝手なことをいろいろやられてしまうあたりがWebFormは怖くて使えないところ… だからASP.NET MVCには期待してる。
ASP.NETでi-mode対応の開発をしてる人っていません? cookie駄目て事で頭抱えてるんスけど。 cookielessでsession使おうと思ったんだけど、一発目のPOSTに対して勝手に GETメソッドが走るんで、POSTされた情報が全部消えてしまう('A` Page.BeginRequestメソッドにはGETの後でしか来ないみたいだし。 やっぱ自前でsessionをDBに管理するしかないンすかね?
860 :
854 :2008/10/30(木) 03:20:59 ID:???
>858 レスどうもです。hidden、ビューステートあたりのデータ量を 削る方法が無いか検討してみます。
VWDなんだけど、select文で質問。 select文が「?」で記述されてるんだけど、項目がたくさんあるんで「?」だと1回ずつしか使えなくて不便。 変数で記述する方法があるって聞いたんだけど、どこで変数を定義してどうやって使えばいいんでしょう。
少しは自分で考えたり調べたりってことをしないのかね。 調べたけどわからないので質問しましたって言いそうだが。 sqlcommandクラスからparameters.addwithvalue(key, value)でも調べろ
ASP.NET MVCって遷移先とパラメータが単純にURLに入りますよね? ということは、単純にサーバ側で受け取るなら、ユーザが適当にHTTPのPOSTで送ってきたら、 正直に受け取っちゃうことになりませんか? 今まで、勝手にポストバックとか意図しないところで勝手にいろいろやられていたから、 隠されたパラメータでそのあたりが防がれていたと思うんですが、 ASP.NET MVCを使うなら、そのあたりを自前で実装しなくちゃならんのですか? {id}に常に暗号化したデータを入れるような‥‥
864 :
863 :2008/10/31(金) 17:20:05 ID:???
偽装してwordに差し込むのと、FDFに差し込んでPDFにするのと、どっちが楽? 総合的に判断して。
ActiveReportを使うのが一番楽
すごいけど有料かー。 ところで.NET Framework 3.5のOS一覧に2000serverがないんだけど、vistaで開発したアプリを2000serverのIISで実行することって出来ないのかな。 アプリが完成したんで今、実行機に2000serverのインスコ中なんだけど・・・。
win2k serverのiisではasp.net 2.0は動かないよ win 2003か2008が必要
vistaのVWD側で2.0でビルドしたら普通に動いたわー。 3.5は無理だった。
サーバーAにあるページaでボタンを押すと サーバーBにあるページbに遷移します。 この際にページaのテキストボックスに入力された値をページbで受け取りたいのですが どうしたらよいですか? 見られたら困るのでクエリーストリングはNGで データベースやファイルへの読み書きも不可です。
>>871 異なるサーバで、クエリ以外でやろうとするなら、POSTするしかないんじゃないのかな。
でもPOSTだと、異なるサーバ(ドメイン)にポストしようとすると、ブラウザが許可しないかもね。
異なるサーバ上のページ間でやりとりをしようとすると、確かに不便そうだなぁ
昔はいろいろできたけど、今はセキュリティの関係から許可されてないことも多そうだし。
>>872 POSTでもリクエストBODYは丸見えですよ
>>871 DBに書き込むのをかたくなに拒否する理由は?
>>873 クエリでみられなきゃいいのかとおもってさ。
というかDBやファイルの使用を拒否してるんじゃなくて、単純に別ドメインの、
別サーバに反映させたいから、他の方法を聞いてるんじゃないか?
クエリで見えても、中身がわからなければ問題なくて
サーバAにポストバックして、サーバAからResponse.Redirectなどで
サーバBに遷移するなら、ページaのテキストボックスをサーバAで暗号化して、
それを任意の手法でサーバBで受け取って複合化すれば、
できるっていやーできそうだけどね。
暗号強度の高い共通鍵暗号なんか利用できれば、
簡単に解読はできなさそうだし。
いや、思いつきなんだけどね。
>POSTでもリクエストBODYは丸見えですよ 多分そんなことは分かって書いてると思うよ…
876 :
871 :2008/11/05(水) 22:45:32 ID:???
ありがとうございます、 POSTする(リクエストBODYは丸見え)か DBを使うかしかないということですね。 表面上見えなければOKなのか、DBを使うべきなのか確認してみます。 DBは頑なに拒否というか、「それだけのために」という思いからだったのですが それしかないということであればそれで調整してみます。
>>876 やったこと無いけど、セッションでなんとかならないかな
stateserver使ってセッション外出しにしといて
両サーバのMachineKeyだったかを同じにしとけば
なんとかなるような気がしなくもない
878 :
871 :2008/11/06(木) 23:08:56 ID:???
結局POSTでOKということになりました。
どうもありがとうございました。
>>877 調べてみたら「複数サーバーでセッションを共有できる」とありますね。
ただサーバーは既にあるものを利用する形になるので今回はちょっと無理そうですが
状況が許せばベストな方法かもしれませんね。
別サーバでセッション共有は難しいと思うよ。
>C# 暗号 で検索すると、いろいろ出るから試してみ 出てくるページにろくなものがない件
882 :
833 :2008/11/09(日) 13:20:28 ID:???
Loginコントロールで使うデータベースにSQ Server以外を使う事って可能ですか? できれば具体的な実装方法を解説しているサイトなど紹介して貰えるとありがたいです。
というか、ログインコントロールなんて使わなくても、 フォーム認証関連の機能をカスタマイズすれば、 簡単に他のDBでもできると思うんだけど、それじゃだめなんかね。 極論で言えば、認証を認めるか認めないか、TrueかFalseを返すルーチンだけ 自分でつくる(したがってどんなDBでもいい)だけでいいんだから、 まったく気にすることなく利用できると思うんだけど。
ログインコントロールというかMembershipProviderまわりはけっこう多機能だよね 使えれば使えるにこしたことはないと思うし
ログインコントロールで、IDを入れて、パスワードを入れて、「ログイン」ボタンをクリックせずに リターンキーを押すと、IDとパスワードがクリアされるんですが、リターンキーを「ログイン」ボタン をクリックしたときと同じ動作にすることはできないのでしょうか? (ID、パスワードは登録しているものです)
>>887 DefaultButtonに設定しても駄目?
>>888 ログインコントロールのプロパティーとかで設定するのでしょうか?
記憶が正しければ、formのプロパティじゃないか? formに対して、Enterキーを押すことに対するデフォルトボタンなんだから。 というか、Returnキーって懐かしいな。 今もNEC製パソコンはReturnキーって書いてあるの? それとも、PC-9801とか、PC-9821とか、PC8801世代の人かな?
>記憶が正しければ、formのプロパティじゃないか? >formに対して、Enterキーを押すことに対するデフォルトボタンなんだから。 なるほど。ちょっと見てみます。 ん?ということは、ログインコントロールをばらさなければなりませんかね? ちなみに、学生の時に88を大枚はたいて買いました。すぐに98が出ましたが…。
試してみたが、Loginコントロールにクリアボタンはないので、 Enterキーを押下時にログインボタンが押されてるか、 他のボタンが押されてることになってるような気がするんだが、 なんで消えるんだ? Constructorで、IsPostBack判断せずにLoginコントロールの 初期化をしたりしてる気がする。
sage
>>892 書込を見て、そういうことなのか…と思い、確認しました。
すると、登録されたユーザーの場合、
ID、パスワードを入れて、そのままEnterキーを押す
→ Page_Load が呼ばれる。
ID、パスワードを入れて、「ログイン」ボタンをクリック
→ Login1_LoggedInが呼ばれる。
という状態でした。Page_loadには何も書いていなかったので、また、まっさらな
ページが表示されたということだと…。
ただ、解決策が思い当たらない…。
>>894 とりあえず、RequiredFieldValidator使うとか
>>894 ID、パスワードいれて、Enterキーを押すと、Page_Loadが呼ばれるけど、中身は消えないよ。
Page_Loadの中でログインコントロールを初期化してるんじゃないの?
あと、EnabledViewStateをOFFにしてるとか。
つかIEだと、EnabledViewStateをfalseにしても、パスとIDは消えないね。
なんか特殊なことしてるんじゃないの?
897 :
23 :2008/11/13(木) 20:05:30 ID:???
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns="
http://www.w3.org/1999/xhtml " >
<head runat="server">
<title>無題のページ</title>
</head>
<body>
<form id="form1" runat="server">
<asp:Login ID="Login1" runat="server" EnableViewState="False" OnLoggedIn="Login1_LoggedIn"></asp:Login>
</form>
</body>
</html>
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Login1_LoggedIn(object sender, EventArgs e)
{
}
}
中身はこんだけ。
いろいろコーディングしてるなら、別ページを用意して、最低限のコントロールと、
コーディングだけして試してみたら?
>>897 丁寧にすみません。
パスとIDは消えませんでした。不正確ですみませんでした。
ページがロードされても前の状態を保っていました。
コントロールをばらして、RequiredFieldValidatorで、「ID、パスワードを入力した後、ログインボタンを
クリックして下さい」といったお願いを書こうと思います。
>>898 いや、正確なパスワードを入れてボタンを押すなり、Enterキーを押せば
Login1_LoggedInのイベントが発生して、
不正確なパスワードを入れてボタンを押すなり、Enterキーを押せば、
Login1_LoginErrorのイベントが発生するら、
それでやればいいと思うんだけど違うの?
Page_Loadは再読込される度に絶対に呼ばれるわけで。
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Login1_LoggedIn(object sender, EventArgs e)
{
}
protected void Login1_LoginError(object sender, EventArgs e)
{
this.Label1.Text = this.Login1.UserName;
this.Label2.Text = this.Login1.Password;
}
protected void Login1_LoggingIn(object sender, LoginCancelEventArgs e)
{
}
}
これでログインエラー時に入力されたパスワードとUserNameも取得できるわけで。
formをあちこちにちらばせられない時点で Enterキーによる任意のコントロールのSubmitは無理だよなぁ。 マスターページ使っててformタグを途中に入れたら怒られた気がする。
901 :
nobodyさん :2008/11/14(金) 00:39:30 ID:XFofzK8r
>>900 javascript使えば可能そうだけどね
これって文法VBと同じなの? それとも、C#?
>>899 Page_Load
Login1_LoggedIn
Login1_LoginError
のそれぞれのイベントで、「ログイン」ボタンを押さずにそのままEnterキーを押した、
認証できた(ID、パスワードも取得できる)、認証できなかったという状態の取得が
できることはわかりました。
あとは、そのままEnterキーを押したときにどう対応すればよいということを考えれば
よいということで、メッセージを表示すると考えたのですが…。
>>904 あなたが何をしたいのかわからなくなりましたよ。
Enterキーでポストバックしないようにしたいって事?
Enterキーで入力カラムを移動したいとか?
ボタン押すのとEnterキー押すのは等価でいいような気がしますが・・・
>>904 まず前提としてPage_Loadは、認証できようが、できまいが、ログインボタンを押そうが、押すまいが
絶対にイベントが発生するので無視な。
>「ログイン」ボタンを押さずにそのままEnterキーを押した、
>認証できた(ID、パスワードも取得できる)、認証できなかったという状態の取得が
>できることはわかりました。
ログインボタンを押さず、Enterキーを押されたとき、
認証できた、できなかった状態を取得できることもわかった。
>あとは、そのままEnterキーを押したときにどう対応すればよいということを考えれば
>よいということで、メッセージを表示すると考えたのですが…。
そのままEnterキーを押した時って、それは認証できたときと、できなかった時の対応と同じじゃないの?
>>901 onsubmitイベントからキーイベント引っこ抜いて〜って感じだな。
EnterキーでのSubmitって個人的には結構重要な要素だけど、
作る側としてはformごとにhidden仕込まなくていいからホント楽だよな。
明細一行ごとにhidden仕込みまくってた頃にはもう戻れんわ。
(更新form用と削除form用とドリルダウンform用と…とか)
>>907 でも、ASP.NETだと、イベントが発生したコントロールを特定できるから、
そんなことしなくても、一つのformでも十分だと思うけど。
なんか特殊な事例とかある?
質問です。 ユーザーがログイン済みか判定するにはBeginRequestイベントで毎回確認するのがセオリーなのでしょうか?
ログイン済みじゃなかったら、自動的に別ページに飛ぶんでないのけ? つか、ログイン関係について質問してる人は同じ人か? だとしたら、もう教えて君に近い存在になってると思うぞ? いちいち聞けば誰かが教えてくれるかもしれんが、 もうちょっと自分で調べて、自分で実験したほうがいいと思う。 そのほうが誰かの返答を待つより効率がいいだろうし、 自分のスキルも上達して、あなたのためになると思う。 少なくとも、ここ数十レスで書かれたログイン関係の コントロールについては、基本さえあれば、ほんの 10分程度の時間があれば検証して実験する程度の スキルを身につけることができる。
>つか、ログイン関係について質問してる人は同じ人か? いや違います。 私は、ID、パスワードを入力して、ENTERキーを押したときと、「ログイン」ボタンを押した 時に同じ動きにしたかっただけなので…。
>>911 違うのか、ならすまなかったな。
こっちで実験した感じでは、ログインボタンを押した時と
Enterキーの時では動作が同じだが、何が違うんだ?
ID、パスワードに正しいものを入力した後(パスワードのところにカーソルがある状態)、 そのままEnterキーを押すと、IDはそのまま、パスワードが空になっています。 → 認証後に移動するページに飛ばない。 Enterキーを押さずに「ログイン」ボタンを押すと、認証されて、認証後のページに飛ぶ という状態です。
↑すみません。レスを勘違いしてアップしてしまいました。
>>913 なんかわからんが、ネットワーク工事も終わって、
午後は暇になりそうだから、
飯食ったらテストしてみるよ
>>913 ブレークポイント仕掛けてデバッグしてる?
おのずと違いがわからないかい
Login.aspx というページで、ページ内にボタンを配置したユーザーコントロールを 入れています。 そのままEnterキーを押したとき Login.aspx のPage_Load → ユーザーコントロールのPage_Load → ユーザーコントロールのImageButton_Clickを通る。 (ImageButton_Clickの中には何も書いていません) 「ログイン」ボタンを押したとき Login.aspx のPage_Load → ユーザーコントロールのPage_Load → Login1_LoggedIn を通る。 といった感じでした。 ユーザーコントロールのImageButton_Clickが呼ばれることで、Login1_LoggedIn が 呼ばれないようです。
>>917 要は、そのイメージボタンをクリックしてるのね
デフォルトボタンをログインボタンにすれば解決じゃないの?
ImageButtonを置いてあることを先にいいなさいよw
すみません。
921 :
919 :2008/11/15(土) 17:16:55 ID:???
今実験してみた。 ImageButtonが、Loginコントロールより前にあると、 Enter押下時にImageButtonのイベントが発生する。 逆にLoginのほうが上にあると、Loginのログインボタンが押されたことになる。 つまり上にあるほうが、Enterキー押下時のデフォルトボタンになるということらしい。
922 :
919 :2008/11/15(土) 17:18:52 ID:???
んで、どうすればいいかというと、 <form id="form1" runat="server"> <asp:ImageButton ID="ImageButton1" runat="server" OnClick="ImageButton1_Click" /> <asp:Login ID="Login1" runat="server" EnableViewState="False" OnLoggedIn="Login1_LoggedIn" OnAuthenticate="Login1_Authenticate" OnLoggingIn="Login1_LoggingIn" OnLoginError="Login1_LoginError"> </asp:Login> </form> protected void Page_Load(object sender, EventArgs e) this.form1.DefaultButton = "Login1$LoginButton"; protected void Login1_LoggedIn(object sender, EventArgs e) protected void Login1_Authenticate(object sender, AuthenticateEventArgs e) e.Authenticated = true; protected void Login1_LoginError(object sender, EventArgs e) this.Label1.Text = this.Login1.UserName; this.Label2.Text = this.Login1.Password; protected void ImageButton1_Click(object sender, ImageClickEventArgs e) これで問題なさげで、Loginのログインボタンがデフォルトボタンになるっぽいな 下のプロシージャは{}省略
923 :
919 :2008/11/15(土) 17:20:00 ID:???
ポイントは、コンストラクタに記述した this.form1.DefaultButton = "Login1$LoginButton"; かな。これでLoginコントロールのボタンコントロールをデフォルトボタンとして設定できるっぽい 他に影響がなければ、これでいけると思う。 これで解決かな?
というわけで、
>>910 のお詫びがてら、
>>915 で約束したとおり義理は果たしたということで。
夕飯たべてくる
ありがとうございました。 this.form1.DefaultButton = "Login1$LoginButton"; で動作しました。 私はVBでやっていたので、 Me.form1.DefaultButton = "Login1$LoginButton" でした。 大変時間を頂いてすみませんでした。
×まぁ、謝ることのほどでもないよ ○まぁ、謝るほどのことでもないよ orz
URLのパラメータによって、ページの内容を変化させたいけど パネルの入れて表示/非表示切り替える方法以外はどのような方法がありますか?
>>928 どういうふうに変化させたいの?
コントロールの一部だけか、
レイアウトは同じなんだけど複数のコントロールをごっそり変えたいとか、
またはページそのものを違うものにしたいのか、
コントロールは同じなんだけど、デザインテンプレートだけを変更したいとか。
>>929 ごっそりです。
書籍を特定するクエリが飛んできたら、その書籍の詳細を表示
なければ見つかりませんと表示
って具合です。
該当ページがなければ、Response.Redirectで詳細がありませんページに飛ぶとか。 親フレームでクエリを受け取って、該当する書籍がなければ違うページを 子フレームやインラインフレームに読み込むとか。 Panelを使うにしても、UserControlで、プロパティ一つが切り替えるようにするとか。 他になんかあるのかな。マスタページとか嫌いだからその辺はわからない。
929です。
>>931 ありがとう。参考にします。
multiviewとか
929です。 ああ、MultiViewがありましたね。久しぶりで忘れてました。これ使ってみます!!ありがとう。
それは何をするものなの?
937 :
age :2008/11/16(日) 22:34:02 ID:gZOlu/94
>>937 そのページをちゃんと読めば、常に別インスタンスって書いてあると思うよ。
ページのインスタンスを保持するのが良くないというのは、
一度、表示に利用したインスタンスはすぐ破棄したほうがいい(使いまわわすこともないし)という
ことだと思うんだけど、ポスト後に同じインスタンスにアクセスすることなんてできるんかいな?
>また保持すべきではないのは、サーバー側に負荷が掛かるから、という認識でよろしいのでしょうか?
保持すべきでないというより、保持できないと思ってたんだけど、
違うなら他の人の指摘待ちかな・・・
保持はできるんじゃね。 保持したインスタンスをどうやって特定してアクセスするかはしらねえがw そのページにも保持するなとは書いてないぞ 保持することは現実的じゃないと書いてある そもそもページのインスタンスそのものを保持する必要性が理解できん 最大限でもViewstateだけ保持すれば事足りると思うんだが
>>936 IISなしでASP.NETが動くらしい
>>939 ひょっとしてメモリにデータを保持するアクセスカウンタ的な使い方なんかな?
VS無しで開発してる人なら有用なんじゃないか?それ以外はメリットあるように思えんが・・・
XPのIIS接続数制限を回避したい、とか。なんにしても微妙だけど。
VistaHomeや、XPHomeで開発したい人とか。 IISだけの脆弱性を回避したいとか。 Server固有のエラーとかは発生しないものなのかね。 ASP.NETとして動いている部分が100%互換性がないと開発用にも使えないよね。
ASP.NET開発サーバがコンピュータ名でアクセスできたらいいんだけどな… たしかFiddlerとかうまく使えないよね… いや、IEだったらlocalhostでも使えたかな…
947 :
nobodyさん :2008/11/20(木) 00:38:49 ID:PklGUJ5B
>>939 >保持はできるんじゃね。
インスタンスはASP.NETランタイムが破棄するから保持できなだろ。
保持したいときは静的変数。
>>947 いや、だから、それはシステムが保持していないってだけだろ
お前の言うように、破棄される前に静的変数に保存しとけば保持されるはずだろ
んで、それを保持しておくことにほとんどメリットがないから
大元の@ITのページでも現実てきではないと書かれてるんじゃないかね
インスタンスを静的変数に保持するってことは、 インスタンスの先頭アドレスのポインタを変数に保存しておくってことでしょ? でもインスタンスが生存しているか、破棄されているかは.net次第だから、 結局、そんなもの保持してても意味ないと思うんだけど 後で使うから破棄しないでね(ハート なんてできたっけ?
いや、>947が静的変数って書いたから静的変数にって書いたけど、 別に静的変数じゃなくてもいいんだが。 インスタンスはそれが参照されていれば破棄されないから たとえばセッション変数に保持しとけばあとから参照可能じゃね (セッション変数にオブジェクト入れるなという話はあるんだがなw) 保持できないから意味がないというから、保持できるんじゃないかと思っただけで できるできないに引っかかっただけだから 実際試したことないんで、保持できなかったらすまんw
>>950 そうなるとガーベジコレクタの話になるんかな
なんか不安だから静的変数も必要なくなったらnullを代入しなくちゃいけないんかなと
違うところで不安になってしまった
ま、それはともかく、確かに保持できても意味はないよね
じゃあ、なんのためのSessionやCokkie、ViewStateって話で。
>実際試したことないんで、保持できなかったらすまんw
大丈夫、保持できるかできないかに引っかかってることは理解してるからw
仮に保持できたとして、積極的に保持したほうが便利なんてことがあるのかな。
自分じゃあまり思いつかないな。
PageはIDisposeを実装してるので、
参照が残っていても使えなくなってる可能性もありそう
ポインタとか言ってる所を見ると、
>>949 は
単にガベージコレクションの動作を知らないだけだとは思うけど
>>952 いや、オブジェクトを変数に格納するということは、
オブジェクトのポインタを変数に格納することと同義だから、
>>949 は間違ってるとは言えないと思う
IDisposeは、それが参照しているローカル変数が属するスコープから抜けた場合に
自動的に実行されるものなわけで、スタティック変数やグローバル変数として保持している限り、
ルートオブジェクトから参照できるオブジェクトとして、ガベージコレクタの収拾対象にはならないはず
>>953 IDisposeはDisposeメソッドを実装することを強要するだけで、
そのDisposeメソッドが呼び出されることはだれも保証してないと思うんだが
参照が保持されてればGCの対象にならないだけで、
IDisposeがインプリメントされているかどうかは無関係のはず
(ただし、.NETのGCは2段階になってて、正しく実装されたDisposeは
1段階目のGCを抑制することになるが、インターフェィスはメソッドの
実際の実装までは規定してないからな)
>>952 はPage.Disposeを呼び出すとそのPageオブジェクトは、たとえ参照が残っていても
使用不可能になってるぞと言ってる
問題は、Page.DisposeはASP.NETが自動的に呼び出すかどうかなんだが
その記述は見つけられなかった。
なんでPage.Disposeは通常は呼ばれないと思ってるんだが、
ページ上のサーバコントロールについてはDisposeが呼び出されるってのを
見たことあるんだよなぁ...Page.Disposeも呼ばれてても不思議はない。
だれか実験してみてくれw
>>954 言葉が書き足りなかったね
>IDisposeは、それが参照しているローカル変数が属するスコープから抜けた場合に、
>(将来的にGCによって)自動的に実行される
という意味なので、IDisposeについては意見は一致してると思う。
問題は
・スタティック変数やグローバル変数として保持しているインスタンスを、
ASP.NETが破棄するかどうか(IDisposetを呼び出すかどうか)
なわけだよね。
スタティック変数やグローバル変数はGCからみてルート中のルートだから
普通は破棄されないと思うんだがw、
確かにどんな動作してるから実験してみるしかないわなw
だれか頼むw
>>955 お前の意見だと
GCはDisposeメソッドを(自動的に)呼び出す となるんだが
おれの意見は
GCはDisposeメソッドを呼び出さない だぞ
GCが呼び出すのはあくまでファイナライザで、正しく実装されていれば
ファイナライザ中でDisposeが呼び出されるであろうことが期待される。
お前のいうGCが自動的に呼び出すの意味がこれであるなら、
それは実装によるので保障されてないと言っている
Disposeを呼ぶのはあくまでそのインスタンスを生成した所有者の責任だ
いままでIDisposeって書いてたけど、ほんとはIDisposableだった
もしかして微妙に話がかみ合わないのはそのせいか?
実験したいがいまその環境がないんだよなぁ
>>956 あー、ちょっとまってくれ、こっともC++/CLI前提で話をしていたかもしれない
>C#とC++/CLIを比較した場合のリソース管理の相違点は、
>C#のusingステートメントに相当する機能が、スコープに統合されている点です。
>たとえば、ローカル変数にDisposeパターンを実装したオブジェクトを記述した場合、
>そのローカル変数が属するスコープを抜ける時に、Disposeメソッドが呼び出されます。
ガーベッジコレクタの話ともごっちゃになってるな。
すまない、ちょっと調べてみる。
ページの中にボタンを設け、抜粋ですが iTextSharp でPDFを作成し、表示しています。 今の状態ですと、ページが切り替わるのですが、これを別ウィンドウで表示することは できるのでしょうか? Protected Sub Bt_Print_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bt_Print.Click Response.ContentType = "application/pdf" 'PDFドキュメントを作成 Dim doc As Document = New Document(PageSize.A4) PdfWriter.GetInstance(doc, Response.OutputStream) ・ ・ ・ doc.Close() Response.End() End Sub
ASP.NETのMVCももうそろそろ正式版になりそうだけど PHPでいうところのsmartyみたいなテンプレートエンジンはまだ一切出て無いんですかね?
PHPでいうところのsmartyはそのままaspxじゃないの?
962 :
nobodyさん :2008/11/25(火) 22:46:47 ID:tBm7rCDq
Visual Stuido 2008 Professional Edtionつかって、Vista Business上で開発しています。 まだ参考書に従ってサンプルのコードを打ち込んでるレベルです。 最初にWebフォームを作る際、「別のファイルにコードを書き込む」チェックボックスにチェックを入れて作ってるのに、 なぜかときどき、インラインコードになってしまうときがあります。 ページを新規作成してボタンを配置して、ダブルクリックしたらクリックイベントが.aspx.csの方に出来たのに、 いったんVisualStudioを閉じて、.slnファイルを起動して再度ボタンをダブルクリックしたら、 なぜか.aspxファイルのインラインにクリックイベントが出来てしまいました。 どういうときにこの現象が出るか、再現性がいまいちわからないのですが、 インライン←→コードビハインドが勝手に切り替わるのを防ぐにはどうしたらいいのでしょうか。 また、インライン←→コードビハインドの簡単な切り替え方がありましたら教えてください。
SP1入れた? あとaspxファイルの <%@ Language="C#" Inherits="MyStuff.MyClass" %> が無くて継承元のcsが見つからずにそんな状況になるとか。 想像だけど。
現在、VS2005(ASP.net)にて通常のhtmlページ内にJavaScript を色々と記述し勉強しているのですが、IDE上で実行を行うとブラウザが起動 しJavaScriptのコード等も問題無く起動するのですが、エラー一覧に次の様 なエラーがかなり出ています。 ※ソースウィンドウからデザインウィンドウに切り替えるとエラーは、0になります。 エラー 1 検証 (XHTML 1.0 Transitional): 要素 'body' に対しては、 開始タグと終了グの間でテキストを使用できません。 ※<body id="idBody"> エラー 2 検証 (XHTML 1.0 Transitional): 要素 'body' に対して は、開始タグと終了グの間でテキストを使用できません。 エラー 3 検証 (XHTML 1.0 Transitional): 要素 'table' を要素 'p' の中に入れ子にすることはできません。 エラー 6 検証 (XHTML 1.0 Transitional): この名前は大文字を含んでいます。ここで使用することはできません。 エラー 8 検証 (XHTML 1.0 Transitional): Attribute 値は引用符で囲まなければなりません。 これって直さなくてはならない物なのでしょうか?エラーとはなっていますがどちらかというと警告レベルな気が してなりません。また、ブラウザ上でJavaScriptコードは正常に動作しており実行時にブラウザの左下に警告メッセージも表示されていません。
あと入力値チェックについて質問なんですけどWEBブラウザは、設定によりJavaScriptが禁止されている場合もありますよね? という事は、幾らJavaScript側で入力値チェックをしても無駄な気がします。 皆さんは入力値チェックはサーバ or JavaScript どちらで行っていますか?
966 :
962 :2008/11/27(木) 01:17:41 ID:???
>>963 レスありがとうございます。
解決しました。
コントロールの属性から「runat="server"」が消えていました。
使ってたコントロールはHTMLツールボックスからドラッグしたボタンで、
「runat="server"」をソースに手動で(VS2005にあった「サーバーコントロールとして実行」がなくなったので)入れてたのですが、
たぶん、ctrl+zかなんかでその属性がない状態にもどったときにダブルクリックしたらインラインになっていたのだと思います。
お騒がせしました。
>>964 XHTML 1.0 Transitionalという約束に従ってhtmlを記述しているにも関わらず、
(少なくともVSはそう思ってる)
その文法が間違っているんだから修正すべき。
曖昧な記述に対してブラウザが対応してくれてるだけで、
問題が発生するブラウザが存在しないとも限らないから。
>>965 JavaScriptでやるかやらないかは一長一短だけど、
JavaScriptではやらなくても良いけどサーバ側は絶対にやらなきゃ駄目
969 :
964 :2008/11/27(木) 23:37:28 ID:???
>>967 ええっっと。両方ですか。。。
サーバ側だけばっちし固めておけば良いと思ってたんですけど。
>>968 先ずはサーバ側のチェック処理を固めて時間に余裕が出来たら
JavaScriptでもチェック処理を行おうと思います。
>969 まずサーバの方は必須なのでがっちり固める。 チェックのたびにいちいちリクエスト投げられると使い勝手が悪いような項目はJavaScriptで即座にチェックするという感じで。
>サーバ側だけばっちし固めておけば良いと思ってたんですけど。 その判断は別に間違いではない。 ただ、javascriptが有効な場合にクライアント側でもチェックすることで、 ユーザビリティが向上したり、サーバの負荷を減らせることもある。
972 :
969 :2008/11/28(金) 00:17:46 ID:???
>>970 >>971 あざーす。参考にさせて頂きます。
あと一つ質問なのですがShilverLightって流行ってるんですか?
あと、VisualStudio2005ではShilverLightは使えないのでしょうか?
馬鹿の臭いがする
974 :
nobodyさん :2008/11/30(日) 23:26:29 ID:F+XZtgWf
ASP.NET2.0のログインコントロールとロールで認証を行おうとしています。 ルートは誰でも許可で、Adminというフォルダを作り、AdminフォルダのWeb.configで <authorization> <allow roles="admin"/> <deny users="*" /> </authorization> として、adminというロールが設定されているユーザ以外はAdminフォルダ拒否にしました。 ルートにログインコントロールを配置したフォームを作り、DestinationPageUrlに、 Adminフォルダのフォームを指定すると、 adminロールのユーザは指定したフォームが見れて、adminロール以外のロールが設定されているユーザは、 不許可のサーバーエラーになりました。 前置きが長くなりましたが、質問です。 このようなログインフォームで、指定ロールのユーザではないが"別のロールのユーザ"が指定された場合、 DestinationPageUrlに飛ばずに、ログイン画面での再入力を促す(ユーザ名やパスワードが間違ってた時のように) ようにするにはどう設定するのでしょうか。
iframeで表示されているページをJavaScriptで切り替えたいと
思い次のコードを記述しているのですがエラーが発生してしまいま
す。一体何が原因なのでしょうか?
【ソース】
//JavaScript
var strURL2 = "
http://www.google.co.jp/webhp?sourceid=navclient&hl=ja&ie=UTF-8 ";
function ifr()
{
waku.location = strURL2;
}
<!-- リンクの文字-->
<A href="JavaScript:ifr()" id="idHrefFocus">あいうえお</A>
<!-- iFrame -->
<iframe src="
http://dictionary.goo.ne.jp/ " name="waku" id="id_iframe" width="100%" height="80%"
style="z-index: 126; left: 24px; width: 98%; position:absolute; top: 544px; height: 38%"></iframe>
【エラー内容】
エラー:')'がありません。
コード:0
ログインする時に別ウィンドウ開いてログインしたいけど何かヒントください
ググレカス
VWDでサイトを作成し、開発環境では動くようになりました。 これを、レンタルサーバーで公開するとき、DBはそのサーバーで作成するのでしょうか。 (今ある開発環境でのDBを持って行くことはできるのでしょうか)
WebControlのmenuがあるページを作っていますが、NavigateUrlを使わずに PostBackされた先でクリックされたmenuItemを判断してページに飛びたい んです。 この場合、どのメニューがクリックされたかをどうやって知ればいいんでし ょうか?
>>978 DBがSQL Serverと勝手に解釈して話を進めるが
たいていの場合、DBまではレンタル鯖屋が作成する。
そのDBへ接続するためのIDとパスワードをもらってテーブルの作成以降を
ユーザが行う。テーブルなんかはManagementStudioとかでスクリプト経由で
テーブルを作り直すことになると思われる。
>>979 >WebControlのmenu
って何?
981 :
MS :2008/12/06(土) 03:30:24 ID:???
>>980 System.Web.UI.WebControlsのMenuクラスだろ常考
素人は黙ってろ
982 :
nobodyさん :2008/12/06(土) 10:42:32 ID:p1onuMwg
死ねばいいのに
>>980 ありがとうございました。DBはMS-SQLを使っています。
トライアルというのがあったので、そこで実験してみます。
984 :
nobodyさん :2008/12/07(日) 19:50:13 ID:MG3uyWjt
Visual studio 2008、SQL server 2005 Expressで開発してます。 ログインコントロール使ってログイン処理が出来ていたのに、マシンを再起動してからログインできなくなりました。 新たに作ったプロジェクトに新規でログインコントロール貼ってもだめです。 管理者用WebサイトでASP.NETWebサイト管理ツール画面を開いて、「セキュリティ」タブを開こうとすると、以下のエラーメッセージが出ます。 「選択されたデータ ストアに問題があります。無効なサーバー名、資格情報または十分なアクセス許可がないことが理由として 考えられます。ロール マネージャの機能が有効化されていないことも理由として考えられます。下のボタンをクリックして ページにリダイレクトし、新しいデータ ストアを選択してください。 次のメッセージは問題を診断するのに役立つ可能性があります: SQL Server データベースに接続できません。 」 データストアの選択ボタンを押して、表示されたプロバイダを選んでテストにすると、 「データベースへの接続を確立できませんでした。 SQL Server データベースをまだ作成していない場合は、Web サイト管理ツールを終了し、 aspnet_regsql コマンドライン ユーティリティを使用してデータベースを作成および構成してから、 このプロバイダを設定するためにこのツールへ戻ってください。 」 と表示されます。 aspnet_regsql.exeやって完了してるし、SQL Server 2005のDBのテーブルににもアクセスできているのに、 ログインだけができません。 どうやったらログインできるんでしょうか。
ググレカス
986 :
983 :
2008/12/07(日) 20:32:56 ID:MG3uyWjt 「原因はわからないけどUser Instanceをfalseにしたら動いた」という記事があったのでfalseにしたら、 IDE上で接続テストは成功し、テーブルの中身も見れますが、 F5でデバッグ開始するとやはりログインできません。 また、VisualStudioを終了して、再度プロジェクトを開くと、User InstanceがTrueに勝手に戻ってしまいました。 OSを再起動するまでは普通に動いていましたが、原因わかる方いましたら教えてください。