【質問】ASP.NETスレ Part2【議論】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/03/22(火) 17:32:11ID:???Part1 - 【質問】 ASP.NETスレ 【議論】
http://pc5.2ch.net/php/kako/1040/10406/1040698263.html
0162160
2005/11/16(水) 23:29:46ID:???独習シリーズ気になってたので買ってみます
0163nobodyさん
2005/11/16(水) 23:51:03ID:???独習ASP.NET持ってる
独習Cとか、独習シリーズが好きだから
独習ASP.NETに関しても期待通りの
素晴らしい内容でした
少し難しいかなって所もあったけどね
著者はXMLに関しても精通しておられる
方なのでASP.NETとの連携に触れていて
すごく面白いかもね
導入の段階から事細かに記載されていて
導入に関してすっごく役に立ちました
また、クラスについてもファイルアップローだと
なるソースコードがまるっと記載されていて
すっごくためになった
実際、少し触って実用してます
でも、結局ASP.NETを制限無く走らせるなら
WindowsServer2003を買いなさいって感じに
直接的ではなくとも書いてあって、少し欝かも
本書で気になる所があったら
概要だけでもお教えしましょうか?
ってか独習シリーズを買う前に
サンプルソースを入手した方がいいかもね
ttp://www.seshop.com/
0164nobodyさん
2005/11/17(木) 11:31:28ID:???Windows2003ServerじゃなくてXPProとかのIISで動かすと
コネクション数が10以上になると動作しなくなっちゃうんだよ
一人でブラウザ10個立ち上げたら終わりってそれじゃぁ使い物にならんよ
(知らなくて業務で使って痛い目を見た
0166nobodyさん
2005/11/18(金) 01:29:25ID:???残念
『サーバーソフトウェアとしては使用できない』旨の
記述がある Windows 2000 Professional では規定違反
EULAに『サーバーソフトウェアとしては使用できない』旨の
記述のない Windows XP Professional での
サーバーソフトウェアの運用は問題ない
ただし「最大接続数」の制限によって端末10台以内からの利用に限られる
XPは業務鯖に使用しても規定違反ではない
なぜなら書いてないのだから
0167nobodyさん
2005/11/18(金) 10:30:55ID:???トンクス
0168nobodyさん
2005/11/18(金) 22:03:24ID:???もしかしてIIS以外でも動く?
0169nobodyさん
2005/11/18(金) 22:14:46ID:???ApacheでASPを使えるようにされたものだけど
Windows Server 2003
Windows 2000 Server
IIS+ASPが際限なく使用できるのでApacheが不要
Windows XP Professional
Windows 2000 Professional
一応IIS+ASPが使用できるのでApacheは不要
まあ、態々Apacheで使いたいのは
Windows XP Home Editon
Windows ME
の人くらいだね
Linuxユーザは・・・・だし
0171nobodyさん
2005/11/20(日) 10:37:32ID:???Apacheならmod_monoを使うから
mod_aspdotnetはLinuxでは使わない気がする
0172nobodyさん
2005/11/23(水) 21:35:23ID:RRcqFkrO確か、ASP(無印)では「バッファ切って(もちろん最初にヘッダを送った上で)一行づつResponseに書いていく」という
方法があったと思うのですが、ASP.netでも同じことが出来るのでしょうか?
単純に「Response.Buffer=False」にして、(ヘッダを送り出してから)OutputStreamに一行づつ書いていけばOK?
0173nobodyさん
2005/11/23(水) 23:00:38ID:???それ、最悪の場合タイムアウトになったときに
クライアント側に中途半端なデータが届くことにならないか?
5000行程度のCSV出力がどれほど時間がかかるプログラムになってるか知らんけど
そのダウンロードさせる画面だけタイムアウト時間に余裕を持たせておくのが
妥当だと思うんだけど。
0174172
2005/11/23(水) 23:28:18ID:???お返事ありがとうございます。
う〜ん……書き込んだ時点で心配してたのは、クライアントサイドのタイムアウトなんですけどね(^^;
サーバーサイドのタイムアウトは(「無限」にするのも含めて)コードで弄れますけど、クライアントサイドのタイムアウトには干渉できませんよね?
全体の処理速度が遅くなることには目をつぶって、とにかく処理を継続させること→一行づつでもデータを送り出し、セッションを維持することを考えて、
>>172のようなことをやろうと思ったのですが……こういう考え方はあまり一般的ではないのでしょうか?
0175nobodyさん
2005/11/24(木) 00:27:22ID:???どうしたらいいでしょうか。GrobalのSession_EndにResponse.Redirectを書いても
遷移してくれません。
0176nobodyさん
2005/11/24(木) 00:28:55ID:???基本的にはASP.netでも可能。
でもあくまで個人的な趣味だが。
タイムアウトのエラー画面が出てしまうとまずいから
とにかくそれを回避させたい、っていう状況で
データを小出しにすりゃエラーを回避できる、
その代わりただでさえタイムアウトが出かねないほど重いのに
更に全体としてのパフォーマンスを落としますよ、と
もし俺の後輩がやってたら怒鳴ってるな。
0177nobodyさん
2005/11/24(木) 00:35:07ID:???global.aspxのSession_Endは
最終アクセスから一定時間経ったりサーバを落としたりする時に
サーバ側で行われる処理。
クライアント側と関係ない。
0178172
2005/11/24(木) 00:53:41ID:???お返事ありがとうございます。
御指摘、ごもっともです(^^; 真っ当な処理をするなら
(1)ユニークなファイル名を生成
(2)非同期で(1)のファイル名にCSVを作成。
(3)(1)のファイル名が排他で開けなければ「処理中」を表示。開けたらDL開始
だと思います。似たような事はやったことあるんですけどね(^^;
今回は工数削減&コードをシンプルにすることを優先すべきと判断しました。
>>174のとおり、DL時間そのものは相当に遅くなる事は承知しています。元受さんにはOK貰ってます(苦笑)
「基本的にはOK」ということなので、小さいプロトタイプを作って実験してみましょう。ありがとうございました。
0180nobodyさん
2005/11/24(木) 07:59:34ID:???なくなったらタイムアウトしたって
判断したらどう?
0182nobodyさん
2005/11/27(日) 13:14:55ID:kujR+W+Xこんな感じでUTF-8文字列を送って
日本語にデコードしようとしても
文字化けしてうまくいかないので
Response.Write(Request.QueryString);で
みてみたら%u7e3a%u30fb%u2287みたいな
謎の文字が出力されておりました
escapeしてから送ってunescape後に
デコードせにゃならんのでしょうか?
0183nobodyさん
2005/11/27(日) 14:10:27ID:???Request.Urlだとデコードするまでもなく
UTF8文字列が日本語に変わってました
よくわかんないけどまあいいや
0184nobodyさん
2005/11/27(日) 16:52:19ID:???SJISならunescape(Request.QueryString)で日本語に
なるからええけどEUC-JPはどうしたもんじゃろか
エンコードされた文字列を文字化けせずに
取得するやり方ってないもんでしょうか
やっぱPOSTしなきゃあかんのかなぁ
0185182
2005/11/27(日) 17:43:15ID:???文字化けせずにすむみたいです
どうせRequest.QueryStringとおんなじだろうと
思ってて盲点でした
最初からコイツに気付いてさえいれば…
0186nobodyさん
2005/11/27(日) 17:45:21ID:???例えば
http://www.hoge.com/default.aspx?hogehoge
も
http://www.hoge.com/default.aspx?id=hogehoge
も
http://www.hoge.com/default.aspx?id=hogehoge&id2=hogeho
も
?以降を全て1つの変数に格納したいのですが・・・
0187nobodyさん
2005/11/27(日) 23:34:51ID:???0188nobodyさん
2005/11/28(月) 00:42:33ID:???Request.ServerVariables("QUERY_STRING")
で取得できました。
0189nobodyさん
2005/11/28(月) 20:20:51ID:fjEsBsI5ユーザーコントロール(以下UC)の事で質問なんですが、
UC自体にスタイルシートを指定するのではなく、
aspxファイルに配置した後でスタイルシートを指定したいのですが、上手くいきませんでした。
このUCは各画面ごとに違う位置に絶対位置で指定したいため、
このような事を行いたいのですが、
配置した後でスタイルシートを適用することは出来ないのでしょうか?
また、出来ないとしたら何か他にいい方法は無いものでしょうか?
0190nobodyさん
2005/11/28(月) 20:42:16ID:???子画面にはDataGridがあります。この行を選択したときにSelectedIndexイベントが
起こるのでここでセッション変数に値を入れています。(セッション変数は2種類)
その後でその子画面を閉じて親画面に遷移したいです。
セッション変数に入れた後Response.Redirect(親画面)としたら子画面が親画面になって
しまい、しかも閉じませんでした。どうしたら閉じて親画面に移れるのでしょうか。
0191nobodyさん
2005/11/28(月) 21:43:17ID:???0192190
2005/11/28(月) 22:06:20ID:DY7sjfNgレスありがとうございます。onloadは知りませんでした。
DataGrid1.Attributes["onclick"] = "window.close()";
でやったらセッション変数に入る前にcloseしていたので
どうしたものかと悩んでいました。さっそく
DataGrid1.Attributes["onload"] = "window.close()";
で試してみます。
0193nobodyさん
2005/11/28(月) 22:18:27ID:???よくねえな
0194nobodyさん
2005/11/28(月) 22:55:45ID:3+gp0watそんなAPIってないんですかね?
0195189
2005/11/28(月) 23:58:08ID:fjEsBsI50196nobodyさん
2005/11/29(火) 04:26:32ID:???質問の仕方が悪い
配置した後って何だ?
読み解くのもマンドクセ
0197189
2005/11/29(火) 07:09:54ID:y0WxLqf0Visual Studioでaspxを開いて、そこにUCを配置し、
その配置されたUCのタグに対してスタイルシートを指定する、という意味です。
元々、UCにはSpreadが配置されており、
そのSpread自体にスタイルシートを直接指定してやればちゃんと適用されるのですが、
画面によってそのスタイルシートを可変にしたいためにこのようなことがしたいのです。
0199nobodyさん
2005/11/29(火) 17:25:33ID:???それはASP.net 2.0からか?
0200189
2005/11/29(火) 19:19:14ID:???0201490
2005/11/29(火) 20:32:40ID:???でやってみたけどだめでした。そりゃそうですよね。
onloadっていうのは親画面のhtmlに書くのでしょうか?
0203190
2005/11/29(火) 22:29:59ID:???DataGridのSelectedIndexイベントでそのテキストに
選択内容を入れて
TextBox1.Attributes["onchange"] = "window.close()";
も試してみたんですけどこれもだめでした。
0204nobodyさん
2005/11/30(水) 01:29:40ID:adoRgA6Mタブブラウザが流行ってたりするんで
そういうユーザーに優しくない気がするから俺は極力つかわないけど。
0205nobodyさん
2005/11/30(水) 01:31:29ID:???aspxファイルと、aspx.vbってあるでしょ(VBなら)。
例えば、処理としてPageLoad時にリストボックスにDBから取ってきたデータをぶち込むとして、
aspxの中に直で記述しても、aspx.vbに分離して書いても結果的に同じ事できるよね?
あれって何のために別れてんの?単純にデザイナーとPGの作業を分離する為?
みんなどっちで書いてるの?
0206nobodyさん
2005/11/30(水) 01:35:43ID:???0207nobodyさん
2005/11/30(水) 01:39:18ID:???そうなんだあ。
@ITとか見るとaspxの中で完結させてるのが多いから
そっちの方が良いのかとちと不安になってみた。
単純にコード掲載するのが楽だからそうしてるだけなのかな。
0209nobodyさん
2005/11/30(水) 01:48:34ID:???datagridのボタンとは別に閉じるボタン作るのはダメなの?
<input type="button" value="閉じる" onclick="window.close();">
って
0210190
2005/11/30(水) 01:55:03ID:???閉じるボタンは別途付いています。閉じるボタンではデータの保持をせず親画面に戻ります。
グリッドに表示されているデータ(下線付きの選択可能なもの)をマウスでクリックしたとき
その内容を保持して閉じることになっています。
0211nobodyさん
2005/11/30(水) 02:38:10ID:???えーと。しばらく静観してたんだけど。
そんな思いつきで適当に手当たり次第書いたって出来る訳ないだろ。
選択肢がクリックされてポストバックされた場合にのみ
(SelectedIndexイベントの最後でも多分可)
bodyのonloadにwindow.close();とするように書いてみ。
0212nobodyさん
2005/11/30(水) 03:13:04ID:???レスありがとうございます。
調べてみたところ、ポストバックの判定はPage.IsPostBackのようですが、
クリックの判定はしなくてもそのときポストバックされるはずだという認識
で試してみます。
0213190
2005/11/30(水) 21:38:49ID:???{
window.close();
}
としてやってみたのですがグリッドをクリックしても閉じてくれませんでした。
IsPostBackはjavascriptの文法にないのかな?
数時間悩んだ末たまたま見つけたところにwindow.openerのことがあったので
http://32key.com/cs/cs/aspnet.htm#008
この通りにしたらできてしまいました。これでぐっすり眠れます。
レスくれた方ありがとうございました。
0215nobodyさん
2005/12/01(木) 01:34:54ID:???0217nobodyさん
2005/12/02(金) 07:53:54ID:???処理がサーバで実行されるのかクライアントで実行されるのか
区別がつくようにしろよ
なんでサーバ側の処理でwindow.closeなんだよ
0218nobodyさん
2005/12/02(金) 11:23:53ID:ayHQHz+M商品テーブルをみて合致するコードがあれば
商品名を表示するというようなことをしたいのですが
PostBackさせるとフォーカスがどこかにいって
しまいます。フォーカスを特定の場所にセットする
ことは可能だと思うのですが、商品コード入力後
必ず同じ場所にマウスをセットするとは限らないので・・・
そもそもコードを入力させるという仕様自体がまずい
のでしょうか?
0220218
2005/12/02(金) 15:38:04ID:???商品コード(textbox)のところでポストバックさせています。
smartNavigationをTrueにするとフォーカスはそのまま
になりました。
しかし、クリックするとwindow.openするような
ボタンがあるのですが、開いたwindowがアクティブ
にならなくなってしまいました。
0221nobodyさん
2005/12/02(金) 16:46:14ID:???私の場合はドロップダウンリストのAutoPostBackをTrueにしているのですが、
smartNavigationをTrueにしてもだめみたいです。
単純にsmartNavigationをTrueにすればいいというものではないのでしょうか?
0222nobodyさん
2005/12/02(金) 16:56:05ID:???VS.NETは持っています
0223nobodyさん
2005/12/02(金) 17:03:26ID:???サーバーを立てれればホームエディションでも大丈夫らしい
へたれな私はサーバーが立てれなかったので
プロフェッショナルにアップグレードしてサーバーをIISにしました
ちなみにアップグレードの費用は1.2万円
0225221
2005/12/02(金) 18:39:30ID:???0227nobodyさん
2005/12/02(金) 23:23:10ID:???いくら.netと銘打っててもクライアント側のJavascriptの知識無しに
使えるもんじゃねえんだよ!
0228nobodyさん
2005/12/02(金) 23:34:27ID:???ASP.net 1.1でいいならWebMatrix。
今後はVisual Web Developer Web Serverかな?
0229nobodyさん
2005/12/04(日) 15:22:32ID:???0230nobodyさん
2005/12/04(日) 16:26:16ID:???0231nobodyさん
2005/12/04(日) 22:42:09ID:???どのようにして検索したら良いか調べても分かりません(>_<)
分かる方いましたらお知恵を貸してもらえませんか?よろしくお願いします。
今はAccessファイルをOleDbを使って読み込んでDataGridに表示することが出来るだけです。
0232nobodyさん
2005/12/05(月) 01:31:00ID:???どういう風に調べた?
少なくとも俺が今試したところだと
>>231内のいくつかキーワードでGoogle検索したら
一発で調べがついたぞ。
0233nobodyさん
2005/12/05(月) 17:52:59ID:???掲示板のプログラムで、普通のときはレスと書き込みフォームがあるけど
書き込みボタンを押して書き込んだときは、(2chにIEで書き込んだときみたいに)「書き込みました」
とだけ画面に出るようにしたいんだけど、
VisualStudioなどでコントロールを配置してしまっているaspxファイルで、そのコントロールを表示させずに
別の文書を表示させることって出来る?出来たらやり方教えて。
0235nobodyさん
2005/12/06(火) 00:23:48ID:???俺も>>233には真っ直ぐ答える気にはなれないのは同意
アンカーは変だけどwww(これだけが言いたかった)
0236nobodyさん
2005/12/06(火) 19:28:15ID:???すぐ視野を狭めてしまうのは
背景の技術を「難しそうだから」とかですっとばすような素人に
ありがちな悪い癖だ。
応用気取るのはもっと広く深く知識を得てからにしとけ。
今回のについては「Server.Transfer」を調べてみな。
発想の転換が必要だが。
0237nobodyさん
2005/12/07(水) 00:08:26ID:???反面、質問者の意図の上をいっちゃってる希ガス。
たぶん>>233はそこまでもとめてないよ。
0238nobodyさん
2005/12/07(水) 02:09:40ID:???きっとASPはやってたけど、ASP.NETに移行してとまどってる感じなのかなあ。
Page_Loadに書いてあげたらいいよ。
0239nobodyさん
2005/12/07(水) 14:30:40ID:hnAWP1c3ヘダーをハイパーリンクにして順を変えれるようにしたいんですが、
AllowSortingプロパティをTrueにしてもハイパーリンクが現れないんですが
どうしたらよいでしょうか?
ちなみにDataGridを新しく作ってAllowSorting = "True"にしたら、
ハイパーリンクが出来ます。何かよい方法はないでしょうか?
0240nobodyさん
2005/12/07(水) 21:38:22ID:???Ajax.MethodからSessionを参照すると(SessionIDも)nullで参照できないんですが、
どなたか解決方法知りませんか?
0241nobodyさん
2005/12/08(木) 00:18:35ID:vd9VCgOzこれと同じことをしようとしてるのですが、どこに追加すればよいのか分からず手順3で詰まってます。
助言頂けると助かりますm(_ _)m
0242240
2005/12/08(木) 13:18:41ID:???参照の仕方がSampleにありました。
0243nobodyさん
2005/12/08(木) 17:18:14ID:???注意点がまとめてあるようなページはありませんか?
0244nobodyさん
2005/12/09(金) 20:26:51ID:???aspxからFLASHにデータを渡したいのですが、どのようにすればできるので
しょうか。
0245nobodyさん
2005/12/09(金) 22:34:49ID:???それをログに出力したいのですが、
ロード部に
try
{
//〜
}
catch( System.Exception e )
{
//〜
}
を書くと、ここには書けないといわれてビルドできません。
ページロード部でエラー内容を出力するにはどうしたら
いいでしょうか。
0246nobodyさん
2005/12/09(金) 22:38:53ID:???0247nobodyさん
2005/12/10(土) 13:22:54ID:???ページ内で未ハンドルのエラーがあったときに動くイベント、
Page.Error をInitializeComponent()にてハンドリングしなさい。
0248nobodyさん
2005/12/10(土) 20:01:41ID:GTg1JArUDataGridですが、SQLサーバーからsmalldatetime型のデータを拾い表示はできるのですが
表示を変えたいと思っています。
現状では時間が入っていますが時間をカットした状態で表示したり、西暦を和暦にしたりと考
えています。
ItemDataBound内でなにか操作をする気がするのですが、どういったソースを組めばいいか
わかりません。ヒントでもいいので教えてください。
0249nobodyさん
2005/12/10(土) 20:08:44ID:???0250248
2005/12/10(土) 22:06:40ID:???今Grid内に画像を表示しているので、その辺りになにかが入ると思います。
とりあえずシンプルにSQLに入っているデータに「ABC」を付け加えたい場合
データリーダーを使ってデータを突っ込んでいるのですがItemDataBound内
でCol(0)に「ABC」を付け加えたい。
これだけ分ればなんとかなると思います。
まったく見当違いの所に着目してるのでしょうか・・
0251nobodyさん
2005/12/11(日) 19:51:51ID:eM8hdFMeボタン押下後に、CSVファイルを作成し、そのファイルをダウンロードさせます。
しかし、Response.Close()後、どのボタンを押下してもサーバー処理を行いません。(submitされません。)
Javaの場合はボタン押下時Javaバッチを起動してダウンロードさせますが、C#の場合はどうすればよろしいでしょうか?
0252nobodyさん
2005/12/11(日) 23:26:37ID:???こんなかんじにすればいいでしょ
http://www.atmarkit.co.jp/fdotnet/dotnettips/168asperrlog/asperrlog.html
0253nobodyさん
2005/12/12(月) 00:54:51ID:???なぜResponse.Close()してるのかわからんが…。
>>108みたにすればCSVファイルをダウンロードさせることは出来るな。
private void Page_Load(object sender, System.EventArgs e)
{
StringBuilder sb = new StringBuilder();
sb.Append("ぽっぽー");
string file_name = "test.csv";
Response.AddHeader("Accept-Ranges", "none");
Response.AddHeader("Content-type", "application/x-csv; charset=UTF-8");
Response.AddHeader("Content-Disposition", "inline; filename=\"" + file_name + "\"");
Response.AddHeader("Content-Transfer-Encoding", "binary");
Response.AddHeader("Content-Length", sb.Length.ToString());
Response.Write(sb.ToString());
}
0255nobodyさん
2005/12/12(月) 02:56:40ID:WRtZcio2ありがとうございます。
そのままコピーしてやってみましたが、やっぱり一度ダウンロードさせると、再度ボタンを押してもうんともすんともいいません。
こういうときって、どう処理しているんでしょうか?
0257nobodyさん
2005/12/12(月) 19:46:43ID:nw7KzFF6素人ですみません。
httpでだめならftpでダウンロードさせることは出来ますか?
0258nobodyさん
2005/12/12(月) 23:58:38ID:???ボタンのイベントでServer.Transferでもしとけば出来そうだけどな。
private void Button1_Click(object sender, System.EventArgs e)
{
Server.Transfer("253のページ.aspx");
}
>>257
FTPするなら、どーぞ。VB.NETだがC♯でも同じように出来る。
http://support.microsoft.com/default.aspx?scid=kb;ja;832679
0259nobodyさん
2005/12/13(火) 03:01:41ID:FfYUBJ4d毎度すみません。
ボタンも動かないから意味なしでした。
結局、作ったファイルをZip圧縮してリンク貼る事にしました。
画像のアップロード機能をFTPでやってみます。
ありがとうございました。
0260nobodyさん
2005/12/21(水) 21:57:09ID:98OGARlK簡単に表示させる事はできないのでしょうか?
0261nobodyさん
2005/12/23(金) 15:27:17ID:TWYIJqxKWindowsXP_PRO SP2
IIS5.1
にてASP.NETのWebアプリケーションを開発しています.
作成したアプリケーションのファイルは,〜.slnのみが
VisualStudioのフォルダにそれ以外の〜.aspxなどのファイルは
IISのフォルダ(wwwroot)に保存されています.
もう一台のPCの環境は
VisualBasic7
WindowsXP_Home SP2
で,まだWebサーバは入れていません.
この2台のPC間で,一方で途中まで作ったファイルを
他方にコピーして続きを作れるようにしたいのですが
そのためには同じWebサーバであるIISを入れる必要がありますか?
それともApacheなどでも可能でしょうか?
なお,2つのPCは互いにLANで繋がっていたりせず,全く独立したPCです.
ご指導よろしくお願いいたします.
0262nobodyさん
2005/12/23(金) 22:27:02ID:???Visual Studio 2005にすればWindowsXP Homeでも
開発できると思うよ。
■ このスレッドは過去ログ倉庫に格納されています