【質問】ASP.NETスレ Part2【議論】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/03/22(火) 17:32:11ID:???Part1 - 【質問】 ASP.NETスレ 【議論】
http://pc5.2ch.net/php/kako/1040/10406/1040698263.html
0582nobodyさん
2006/05/15(月) 18:51:51ID:???全ページに共通のヘッダ(<head>〜</head>内に入れるmeta情報)を入れようと思っています。
どのように作るのが良いのか悩んでいます。
今は、ヘッダ出力のユーザコントロール(*.ascx)を作って
全ページに貼り付けようかなと考えています。
meta情報はアプリのバージョン番号などを入れる予定です。
みなさんはどのように作りますか?
0583nobodyさん
2006/05/16(火) 00:25:27ID:???0584nobodyさん
2006/05/16(火) 08:53:43ID:???0585nobodyさん
2006/05/16(火) 11:11:24ID:???そして実行してみたところフォントや位置などが微妙に
変わってしまいます。
この辺の制御はどこで行われているのでしょうか?
できれば手書きのHTMLをそのまま表示したいのですが
0586585
2006/05/16(火) 11:35:56ID:???0588nobodyさん
2006/05/16(火) 16:58:03ID:???0589nobodyさん
2006/05/16(火) 19:17:18ID:???0590nobodyさん
2006/05/16(火) 21:51:15ID:???マスターページでも出来ると思うし、単純にページを継承するだけでも出来る。
ユーザコントロールで作るっていうのも悪くはないとは思う。
0593nobodyさん
2006/05/17(水) 16:14:45ID:???作ったときJavaServletのように複数リクエスト1インスタンスになって
共有されてしまうのでしょうか?
0594nobodyさん
2006/05/17(水) 23:16:42ID:???んなことはない。JavaServletが腐ってるだけだろ。
共有したいならばApplicationオブジェクトを使う。
0595nobodyさん
2006/05/18(木) 00:27:42ID:???単なる思想の違い。
まあServletの動作は結局引っかかる人が多いけどね。
0596593
2006/05/18(木) 08:13:44ID:???0597nobodyさん
2006/05/18(木) 17:06:41ID:???0598nobodyさん
2006/05/19(金) 00:11:36ID:fSYVgJwk定期的に終了したオークションが無いかをチェックするにはどうすれば良いか、で悩んでます。
今は、終了したオークションをチェックするコードを書いたWEBサーバ上のWEBフォームに、
クライアントPCから1時間毎にアクセスしてチェックを行ってるんですが、
プロバイダがメンテナンス中だったりして確実にチェック出来てません。
出来ればサーバ側で、1時間毎でも良いので自動的にチェックを行いたいのですが・・・。
何か良い方法があれば是非教えてください。
0599nobodyさん
2006/05/19(金) 00:47:07ID:???1時間毎にチェックする常駐アプリまたはサービスを作り、それをシングルトンのリモーティングサーバーにする。
Webにアクセスされたらそいつにリモーティングして状態を取得する。
>>597
つExpressEdition
06001 ◆ExGQrDul2E
2006/05/19(金) 03:15:57ID:???OnClientClickイベントの導入
フローレイアウトがデフォルト
デザイン画面でEnterを押したときにpタグではなくbrタグが入力される
0601nobodyさん
2006/05/19(金) 11:24:35ID:???0602nobodyさん
2006/05/19(金) 23:38:37ID:???0603nobodyさん
2006/05/20(土) 22:28:21ID:???0604nobodyさん
2006/05/20(土) 23:15:48ID:???0605nobodyさん
2006/05/20(土) 23:28:18ID:???でわからないなら無理に答えんでも良い
0606nobodyさん
2006/05/21(日) 18:45:54ID:OFIn6IFCIIS6だかからの仕様変更。
MetaBase.xmlを修正するか、
IISの設定で親のパスを有効にすることで、
対応可能なはずです。
0607603
2006/05/21(日) 19:20:54ID:???は失敗しますた。
0608nobodyさん
2006/05/21(日) 22:33:52ID:???じゃ、MetaBase.xml修正するしかないな。
c:\windows\system32\inetsrv\MetaBase.xml
の下記の値を修正する。
※ASPからの親ディレクトリの参照を許可する。
AspEnableParentPaths="FALSE"
↓
AspEnableParentPaths="TRUE"
・・・で、IIS再起動してみ。
0609603
2006/05/21(日) 22:49:06ID:???0610nobodyさん
2006/05/21(日) 23:18:58ID:???あ〜、IIS5.1かよ。orz
MetaEdit 2.2あたりで編集できるんじゃね。
歯切れ悪くてスマソ。
0611603
2006/05/21(日) 23:43:14ID:???このままでいいや。ハードディスクのボリュームが変わったりしたときに困ったり柔軟性はなくなるけどApplication変数なら1箇所とかそれぐらい直すだけやし。
0612nobodyさん
2006/05/22(月) 01:13:11ID:???0613nobodyさん
2006/05/22(月) 01:47:16ID:???Aアプリ
└Bアプリ
今回はAアプリの中のフォルダをBアプリとして使っていて
Bアプリから../../を使ってAアプリにアクセスしようとしてたわけだからBアプリのパスはBaseとしてとれてもAアプリのパスは取得できず。
.NET1.1ではAアプリに../../でアクセスできたこと自体が不思議だったといっても過言じゃないが。
アプリの中のフォルダをアプリに昇格してアプリが入れ子になっている場合で下の階層のアプリから上の階層を見る場合はグローバルなスコープを持ったテクニックが必要ってことね。
0614nobodyさん
2006/05/23(火) 21:24:14ID:???運用環境へ配布してみるとoracleのエラーがいろいろでます。
ユーザーの権限などが問題のようですが、セキュリティとか
気にしないでとにかく動くようにするにはどういう権限にすれば
いいのでしょうか?
0615nobodyさん
2006/05/24(水) 02:03:02ID:???0616nobodyさん
2006/05/24(水) 02:10:42ID:???ドッキングしてもタブ形式になっちゃう
0617nobodyさん
2006/05/24(水) 02:21:48ID:???0618nobodyさん
2006/05/24(水) 06:48:05ID:???だめなんですよねー
0619nobodyさん
2006/05/24(水) 09:07:24ID:???読み取りと実行をOn/Offしたら動きました。
0620nobodyさん
2006/05/24(水) 14:51:33ID:???弄ってしまわないようにする方法教えてください。
0621nobodyさん
2006/05/25(木) 00:47:34ID:???ツール→オプション→テキストエディタ→HTML/XML→書式→自動フォーマットの適用のチェックを外せばいいんじゃないかと。
0623nobodyさん
2006/05/25(木) 23:28:37ID:???@charset "UTF-8";
と記述すると、Visual Studio が「認識できない '@' block の種類です」と
エラーを出すのですが、これをエラーにしない方法はありませんか?
0624nobodyさん
2006/05/26(金) 00:44:38ID:???昔はデータベースサーバー用のハードディスクを用意したりしたもんだが。
0625nobodyさん
2006/05/28(日) 10:16:02ID:???セキュリティ的にはデータベースを他マシンや別パーティションに用意するのは当然だがな。
配布を考えるとデフォルトがアプリのフォルダにあるのは妥当かと。
0626nobodyさん
2006/05/28(日) 11:54:18ID:???0627nobodyさん
2006/05/28(日) 16:30:52ID:???SQL ServerはExpressしか入って無いんだから。
て別にApp_Dataに置くのはは強制じゃないな、
とりあえずそこが手っ取り早いからそのままにしとくけど。
SQL Serverちゃんとしたのあるならそこ見るようにすりゃいいじゃん。
別にExpressでそうやってもいいけど。
0628nobodyさん
2006/05/28(日) 17:32:33ID:???可能なのでしたら、参考になりそうな所やアドバイスをいただければ幸いです。
0629nobodyさん
2006/05/29(月) 07:48:55ID:???うめこまなけりゃいいわけで
html+スクリプトを溜め込む変数を作り、今までのを変数に溜めます
最後にどかんとそれをresponse.writeすればいいのですよ
インチキaspxですが多少の文法の補正をすれば動きます
0630nobodyさん
2006/05/29(月) 20:28:38ID:???0631nobodyさん
2006/05/30(火) 15:38:14ID:???セッション変数にアクセスする際
user = System.Web.HttpContext.Current.Session("username")
というようにアクセスするとNothingです。
user = Session("username")
ならアクセスできます。
これはなぜでしょうか?
0632nobodyさん
2006/05/31(水) 00:38:06ID:???通常のカレントのHttpContextは存在しない。
0633nobodyさん
2006/05/31(水) 08:27:18ID:???ありがとうございます。
Session変数の管理が大変なのでセッション変数にアクセスする
クラスをつくりそこで管理していたのですが
Session_Endでは直接アクセスしようと思います。
あるいはもっといい方法がありますでしょうか?
0634nobodyさん
2006/05/31(水) 15:08:23ID:???標準的な方法はどういったものがあるでしょうか?
0635nobodyさん
2006/05/31(水) 23:19:14ID:???トラックバックやRSSを扱うのに便利なクラスライブラリを
ご存じないでしょうか?
0636nobodyさん
2006/05/31(水) 23:19:28ID:???などのメソッドでトレース情報を出力する。
構成ファイルか、Application_Startイベントなどで
ファイル出力するイベントリスナを追加しておくこと。
※ただし標準ではあまりおすすめできるリスナが無いので厳しい。
なんならlog4netとか使ってもいいんじゃない?
0637nobodyさん
2006/06/01(木) 10:35:10ID:Ab430NtKテーブルに表示するのは問題なくできたのでいいのですが現状ではファイル名の順です
For Each FileName In System.IO.Directory.GetFiles(Server.MapPath(FolderName), "*.text")
↑のような感じでループさせながら取得しています。
どのように組めばソートできるのでしょうか?
0638nobodyさん
2006/06/01(木) 14:42:23ID:???でキャッシュを残さないようにしているのですが
Netscape7.1やFireFoxでは戻るボタンを押したときに
完全にキャッシュが表示されてしまいます。
戻るボタンでもキャッシュを表示させないことはできないものでしょうか?
0639nobodyさん
2006/06/02(金) 18:05:22ID:???にアクセスしようとすると、ときどき「SQL Serverが存在しないか、アクセスが
拒否されました」というエラーになってしまいます。アクセスできていたと思っ
たら急に上記のエラーでアクセスできなくなったり、また普通にアクセスでき
るようになったりします。アクセス数は多くないので、サーバへの負荷が原因
ではないと思います。いろいろ調べていくつか対策を講じてみましたが、まだ
改善しません。ちなみに、Webサーバ内にあるSQL Serverにデータを移して
アクセスすると問題ありません。
どうすれば改善されるのでしょうか。
0640nobodyさん
2006/06/02(金) 19:34:51ID:???下のようなコードなんですが、どうも上手く行きません。
Dim WithEvents tBtn As UI.WebControls.Button
Protected Sub Button1_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Integer
For i = 1 To 3
Dim tRow As New TableRow()
Dim tCell As New TableCell()
Dim tBtn As New UI.WebControls.Button
tBtn.ID = "BTN" & Str(i)
tCell.Controls.Add(tBtn)
tRow.Cells.Add(tCell)
Table1.Rows.Add(tRow)
Next
End Sub
Protected Sub tBtn_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles tBtn.Click
Label1.Text = "CLICK!!!"
End Sub
完全にいきづまってしまいました。
押したボタンも判別できる方法で、何かよい方法は無いものでしょうか
0641nobodyさん
2006/06/02(金) 19:40:31ID:???Dim WithEvents tBtn As UI.WebControls.Button を
ぷろてく または パブリクで宣言
0642nobodyさん
2006/06/02(金) 19:41:34ID:???0644640
2006/06/02(金) 20:41:45ID:???早速、ありがとうございます。
しかし、まだボタンのイベントハンドラには飛んでくれません。
どうしてでしょう?
page_load時のsenderオブジェクトで、なんとかボタン読むことってできないでしょうか?
0645nobodyさん
2006/06/02(金) 20:52:33ID:???いちばん最後のtBtn.Clickをごにょごにょ
0646640
2006/06/02(金) 21:35:14ID:???DataListみたいにItemCommandがあれば・・・。
さっき本屋に立ち寄ったので、ASPBon本を立ち読んでみましたが、まぁだいたいこの方法で動的コントロールのイベント拾ってました。
VS2003のでしたけど。
VS2005だと南下違うんですかね?
0647nobodyさん
2006/06/02(金) 21:51:03ID:???0648640
2006/06/02(金) 22:30:43ID:???ボタン1を押すと、縦3行のテーブルが出てきて、セルの中にボタンが入っているというフォームです。
でセルの中に入っているボタンがtBtnという事で。
0650nobodyさん
2006/06/02(金) 22:41:25ID:???をループのなかにかいてみろや
0651nobodyさん
2006/06/02(金) 22:42:01ID:???0653nobodyさん
2006/06/03(土) 00:14:48ID:???0654640
2006/06/03(土) 05:49:15ID:???それもダメでした。
テーブルの中のボタンを押した後、テーブルの中身が空になって、3つのボタンが表示されなくなるんですよ。
これって、そもそもtBtnの配置の仕方が悪いっぽいのですが、どううなんでしょ。
似たような話で、page_loadん時に、if ispostback then で処理しないとオブジェクトが更新されちゃって、値が読めないってのに近い様な気もするんですが、別にテーブルやボタンのオブジェクトは、いじってないし・・・
0655640
2006/06/03(土) 05:58:34ID:???tableRowでどんどん行追加してるんだから、ふつー、表示される行、増えますよね。
postBackすると、テーブルってリセっちんぐするもんなんですか?
そんなのまいっちんぐです。
0656nobodyさん
2006/06/03(土) 06:43:03ID:???0657640
2006/06/03(土) 07:24:35ID:???0658nobodyさん
2006/06/03(土) 08:44:26ID:???0659nobodyさん
2006/06/03(土) 09:48:00ID:???0660nobodyさん
2006/06/03(土) 10:23:35ID:???Page_Loadに書くだろが。
だがYOUのはButton1をクリックしたときだけ表示させたいという自分の希望なのかね?
0661nobodyさん
2006/06/03(土) 10:32:23ID:???Partial Class ishii
Inherits System.Web.UI.Page
Dim WithEvents tBtn As UI.WebControls.Button
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim i As Integer
For i = 1 To 3
Dim tRow As New TableRow()
Dim tCell As New TableCell()
Dim tBtn As New UI.WebControls.Button
tBtn.ID = "BTN" & Str(i)
AddHandler tBtn.Click, AddressOf Me.tBtn_Click
tCell.Controls.Add(tBtn)
tRow.Cells.Add(tCell)
Table1.Rows.Add(tRow)
Next
End Sub
Protected Sub tBtn_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles tBtn.Click
Label1.Text = "CLICK!!!"
End Sub
End Class
↑ページロード時にtBtnコントロールが作られているので常に動作する
0662640
2006/06/03(土) 17:55:51ID:???おおおおおっ!!!!!
うごいたーーーーっ!!!!!
でも、ボタンを押してテーブルの中身を構成しているときは、何で動かないの??
661のコードだと、ページをロードするたびに、テーブルのrowsコレクションに3行づつどんどんrowが増えて行かないのはなぜ?
テーブルオブジェクトは生成しなおしてないから、残りそうなのに。
どんどん増えない = postBack後、post時のrowオブジェクトが残らず消えているわけだから、tBtnイベントの取得もできなさそうなんですが、なぜかできている。
自分んちの晩御飯はいつも冷凍食品なのに、自分の食べる時はいつもオカズが冷えてるのぐらい不思議です。
ウェブテーブルオブジェクトも、うちの嫁さんも、そーゆーものともう割り切っちゃううしかないんでしょうか?
0663640
2006/06/03(土) 18:00:09ID:???なにより、661さま、ありがとうございますっ!!!
尿簿の冷え切った冷食晩飯の三千五百倍有り難く思っています。
0664nobodyさん
2006/06/03(土) 18:22:28ID:???>何で動かないの??
Button1を押したとのイベントの起こる順
Page_Load
↓
Button1_Click
tBtnを押したときのイベントの起こる順
Page_Load
↓
tBtn_Click
よって、Button1_Clickのところにテーブルコントロールとボタンコントロールを記述しても
Page_Load
↓
tBtn_Click
の時にはテーブルとかは表示されない。
0665nobodyさん
2006/06/03(土) 18:25:05ID:???Pageを読み込むたびにオブジェクトは破棄される。
0666nobodyさん
2006/06/03(土) 22:41:06ID:???0668MSDN
2006/06/03(土) 22:57:52ID:???サーバー コントロールは、インスタンスの作成および設定のために必要な初期化の手順を実行する必要があります。
このイベント内では、ビューステートの情報はまだ設定されていないため使用できません。
このイベント中は、このサーバー コントロールが子であっても親であっても、
これ以外の他のサーバー コントロールにはアクセスしないでください。
他のサーバー コントロールは、作成されていなかったり、アクセスの準備ができていなかったりする場合があります。
サーバー コントロール イベントの詳細については、「ASP.NET Web サーバー コントロールのイベント モデル」を参照してください。
0669nobodyさん
2006/06/03(土) 22:58:31ID:???0670nobodyさん
2006/06/03(土) 23:46:27ID:???protected int TableRows
{
get { int n;
if (!int.TryParse(ViewState["TABLE_ROWS"], out n)) {
n = 0;
}
return n;
}
set { ViewState["TABLE_ROWS"] = value;}
}
void Page_Load(EventArgs e)
{
AddRows(0, this.TableRows);
}
void Button1_Click(object sender, EventArgs e)
{
int n = this.TableRows;
AddRows(n, n+3);
this.TableRows += 3;
}
void AddRows(int st, int en)
{
for (int i = st; i < en; i++) {
....
}
}
0671670
2006/06/03(土) 23:51:27ID:???Pageとその子コントロールはリクエストの度にイチから作り直しなので、
状態(Tableの行数)はViewStateやSessionなんかに覚えておかないといけない。
確か、昔はOnLoadで追加したコントロールではPostbackが発生させられなかったはず。
.NET 2.0でLoadまでに作れば間に合うように変わったので、事情がない限りLoadで作るのが良いと思う。
InitだとViewState使えないしね。
0672nobodyさん
2006/06/03(土) 23:56:21ID:???0673640
2006/06/04(日) 09:49:59ID:???ウェブテーブルだとなんでページを読み込む度に、内容がリセットかかっちゃうのかが、どーも理解できていません・・・・って、あーーーっ、テキストボックスは内容、テキストボックス自身がポストしてるから残るんじゃん。
ピューステートが色々前のページの情報をポストしているのはしってたんで、勝手に覚えてくれるもんだと思い込んでました。
ちなみに、自分のプログラム履歴
N88-BASIC -> MASM -> TURBO C++ -> (10数年の休眠) -> EXCEL VBA -> VB2005
はっきりいって、今のプログラムは、プログラムを組むというより、人のつくったソフトがずらーっと並んでて、それの使い方がどーのこーのといった感じで・・・。
おっちゃんにはなかなか辛いものがw
みなさん。色々ありがとうございました。
まだ、教えていただいた内容、全てが理解しきれていませんので、これから調べてまいります。
0674nobodyさん
2006/06/04(日) 09:58:06ID:???0675640
2006/06/04(日) 10:06:59ID:???あと、本当はN88の前に、素N-BASICも・・・。もうしじゅうが見え隠れ・・・。とほほ。
0676640
2006/06/04(日) 10:12:20ID:???INT 1B探して、プロテクト外してたころが懐かすぃ
昔のPC板にカエレ!!(・∀・)と言われる前に、もーやめときますw
0677nobodyさん
2006/06/04(日) 10:15:26ID:???0678nobodyさん
2006/06/04(日) 10:16:06ID:???やってた。
だけどそんなことは関係ないと思う。
結局
> (10数年の休眠)
だと思う。年齢とか関係ない。
0679nobodyさん
2006/06/04(日) 10:22:12ID:???俺でも外せたよww
0680670
2006/06/04(日) 12:01:17ID:???知っている人の方がかえって苦労すると思います。
ちゃんと理解するなら、ソース読むのが一番手っ取り早いです。
Reflector for .NETの使用をお薦めします。
0681nobodyさん
2006/06/04(日) 19:09:34ID:???かといってWebやったことが無い人は、
下手にWebを意識せずに作れるおかげで
とんでもない発想をしてくれる。
どっちもなかなかつらい。
0682nobodyさん
2006/06/06(火) 07:18:30ID:???一部にイベントドリブンの原則を破り
非推奨のコードインラインを使ってしまっているが
みなさんはこんな書き方は
絶対にしてないの?
■ このスレッドは過去ログ倉庫に格納されています