【質問】ASP.NETスレ Part4【議論】at PHP
【質問】ASP.NETスレ Part4【議論】 - 暇つぶし2ch293:nobodyさん
07/11/29 09:52:52
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さん
07/11/29 17:46:04 rMbVmK8t
SelectionChanged かなにかのイベントで
場合分けしたらいいんじゃないのかな。

295:nobodyさん
07/12/04 14:38:47 l2Tev5nw
ASP.NETで画面をHTMLで作成する時、Labelがずれちゃったりテーブルの高さが
おかしくなったりするんですけど、これってどう対処すればいいですかね?
Widthを調整したり、全角と半角で微調整ってのは一応わかってるんだけど他に何か
うまいやり方ってあるかな?

296:nobodyさん
07/12/04 18:19:09 l2Tev5nw
295です。
画面設計についてはVisualWebDeveroperのヘルプに書いてありました。
ネットで検索するよりヘルプの方が情報量多いね。盲点だった。

297:122x218x24x97.ap122.ftth.ucom.ne.jpfieojfefe
07/12/05 11:39:13 bGekTFEd
e

298:ヘルプ
07/12/07 00:22:59
誰かわかる方がいらしたら教えてください。
ASPを使ってネットワークフォルダのファイルを参照したいのですが、うまくいきません。
認証はwindowモードでユーザ偽装をおこない、iiSの統合windows認証のユーザに偽装します。
そこでエクスプローラで
\\マシン名\フォルダ名だと参照できるのに同じユーザでASPにてファイルを参照しようとすると権限にてはじかれます。
どなたかわかりましたらお願いします。

299:nobodyさん
07/12/08 11:13:53
ふらっとで質問したのですが、こちらで聞いた方が良いと誘導されてきました。
あるプロトコルでチャットに接続し、ユーザはIEの画面を通して発言したり
他者の発言を取得して画面を更新したりするプログラムを作りたいと思っています。
以下のような構造になるのかなと考えています。

【ユーザ】←HTTP→【画面側プログラム①】←なんらかの方法→【プログラム②】←→インターネット
①:
ASPで、他者の発言の取得はn秒ごとにポーリングを行う。
(サーバプッシュ型にできればなお良い)
②:
EXEにしてサービス化?ともかく常時起動しており、チャットには繋がりっぱなしにする。
①の状態には依存しない。
ASPにして①と同化させると、ユーザが画面を開くたびにインスタンスが新しくなってしまうのと
ユーザが画面を開かなければインスタンスを作れないので分ける必要がある(と思っている)

そこでよく分からないんですが、まず、IISの起動と終了のイベントを拾って
プログラムを動かすことができるのでしょうか。
可能なら、①と②を一緒くたにして、IIS起動でチャット接続して、その状態をstaticメンバにして
全インスタンスで共有し、終了で切断するということでASP一本にできると思ってます。
これは可能でしょうか。

もう一つ、分ける場合には①と②で情報のやりとりをする必要があります。
②でインタフェースを提供し、①はそれを呼び出すだけという形にしたいです。
①から見たときに利用を簡単にしたいので、できればWebサービスとしてインタフェースを
提供できないかなと思うのですが、②がASPじゃなく普通のEXEの時に、②でWebサービスを
実装するにはどのようにすればいいのでしょうか。
(②がASPなら、IISが良きに計らってくれますが…)
また、Webサービスが無理ならどういう方法で通信するのがベターでしょうか。プロセス間通信とか?

妄想段階なので曖昧な点が多いのですが、アドバイスをいただければ幸いです。
よろしくお願いします。

300:nobodyさん
07/12/08 22:03:20
①のApplication_Startで②の処理開始すりゃいいんじゃねーの普通は。


301:nobodyさん
07/12/08 22:20:28
ありがとうございます。
ちょっと確認させてください。
Application_Startは、IIS起動後最初のユーザがページにアクセスして、
一つ目のインスタンスを作る時に発生。
Application_Endはすべてのセッションが切断された時に発生。
という認識であってるでしょうか。
できれば、IISからWebサイトを起動した時と停止した時にイベントを拾いたいのですが、
そういうイベントはありませんでしょうか。


302:nobodyさん
07/12/08 23:10:32 qOs8ePBr
今日からASP.net始めました。よろしくお願いしますw
すみません。厳密にはVisual Studio 2005の使い方になってしまうかもしれませんが……。

ASP.netで使用中のデータベースの内容を見ようとしたのですが、サーバーエクスプローラの「データ接続」から.mdfファイルを開く(データベースに接続する)ことが出来ません。
「ユーザーの既定データベースを開けません。 ログインに失敗しました。
ユーザー 'hostname\username' はログインできませんでした。」
というダイアログが表示されます。
接続文字列内でAttachDbFilenameでファイル名を指定しUser Instance=Trueとして接続すると、こういう使い方は出来ないのでしょうか?

303:nobodyさん
07/12/08 23:12:09
一つ目のインスタンスってなんのこと?
Application_Endはアプリケーションがシャットダウンされるとき。
通常はユーザのアクセスが一定時間無かったとき。
サイト起動時ってのはASP.NET側ではない(まだ動いてもいないから)

サイト起動時にやらないといけない理由があまり見当たらないんだが…


304:302
07/12/08 23:12:38
追伸です。
まだSelect文しか流してはいませんが、ASP.net側ではとりあえず接続は出来ているようです
>問題のデータベース

305:nobodyさん
07/12/08 23:14:08
>>302ASP.NETで使用中とは、IISで運用中ってことかい?
IISで動作中は、例えばIIS6だとNETWORK SERVICEユーザが使用中だから、
User Instance=Trueでは使えないはず。


306:nobodyさん
07/12/08 23:23:50
>>303
ユーザが画面を開いていないときでも、チャットには繋げっぱなしにしたいのです…。
とりあえずWebサーバ起動時に繋げにいって、チャットの書き込みをサーバのログに吐く。
ユーザは必要な時だけWebサーバにアクセスするという形で。

自分だけが使うものなので、最悪、起動時は必ず画面を開いてApplication_Startを
呼んでやるという形でもいいのですが、終了時はApplication_Endでチャット切断処理を
やってしまうと、ユーザからのアクセスが無いときに勝手に接続が切れてしまうので…。
かといってどこかに明示的な切断を入れないと、アプリ終了後もタイムアウトするまで
チャットに居座りっぱなしになる行儀の悪いプログラムになるなあと。

ユーザの状態に依存しない開始と終了イベントを取れれば、
ユーザは必要な時だけWebサーバにアクセスし、ユーザはサーバ側のチャットへの
接続状態を気にしなくて済むようになり、サーバ側もユーザの接続状態を
考えなくて済むようになると思いまして。

画面側にはWebサービスとして、チャットで発言するメソッドと、画面更新のために
最新のチャットログを取得するメソッドくらいを提供してやればいいかなと。

307:302
07/12/08 23:31:32
>>305
早速のお返事どもっす。
こーゆー使い方したかったらちゃんとSQL Server動かせってコトなんですね
……まぁ、「AttachDbFilenameでファイル名を指定しUser Instance=Trueとして接続」するのが「ちゃんとしていない」ってコトはないんでしょうが……。
要はPHPのSQLiteとかJavaのHSQLDB(のスタンドアロンモード)と考えればOKかな?
手軽には使えるけど、ちょっとイヂりたいとかの場合は不便ですなぁ。

308:nobodyさん
07/12/09 00:53:07
んーUser Instance=Falseじゃだめなのけ?


309:nobodyさん
07/12/09 00:57:02
>>306
ようわからん、サイト起動時に接続するんじゃ
もはや切断なんて関係ないレベルですでに十分行儀悪いと思うが。
どうしてもそんな風にしたいんならサービス作るしかないんじゃない?


310:nobodyさん
07/12/09 05:00:17
むぅ
ちなみにEXEで作ってサービス化した場合、その中でWebサービスとして
メソッドを提供することは可能でしょうか?
それとも、WebサービスにしたいのならASPで作らないとダメでしょうか。

311:302
07/12/09 09:59:21
>>308
ダメみたいですねー。今度は本体(ASP.net側)でエラーが出ます
>User Instance=False

312:nobodyさん
07/12/09 18:17:59
Application_Endが呼ばれた後って、Applicationオブジェクトに格納していた
オブジェクトはどうなります?
要するに、ユーザがしばらくアクセスしなかったら、破棄されたりします?

313:nobodyさん
07/12/09 20:29:55
Application_Endが呼ばれるってことはそういうことだ。
まあtimeoutを伸ばすとか終了させないようにする手もあるが、
普通は必要ない。

314:nobodyさん
07/12/09 20:37:11
んー、ようするに、ASPでユーザの状態によらないオブジェクトの維持は無理ってことですかね?
例えば、今日一日のアクセス数を返すようなWebサービスは、変数をファイルに
書き出して保持しないと維持できない訳ですよね?
一番生存期間が長い(と思う)Applicationも、ユーザのタイムアウトによる
Application_Endで破棄されるみたいですし。

315:nobodyさん
07/12/09 22:29:07
だからリサイクルの設定をみんなオフにする手はあるが、
どっちにしても保証はされてないから結局Endで保存、
Startで読み込みとかは必要になる。


316:nobodyさん
07/12/09 22:30:01
あ、いや、Endで保存、Startで読み込みは微妙だな、うまくいかない可能性がある。


317:302
07/12/09 23:04:34
たびたび申し訳ないっす。
TableAdapterを試そうとして少々苦戦しています。
VisualStudioでのビルドは通るのに、実行時に型または「名前空間名 'hogeTableAdapters' が見つかりませんでした」って出るのはどうしてでしょう?

……TableAdapter自体もよーわからんっす。Fillした後、どうやってデータを取り出せばいいんだろう?
「ASP.net 2.0 実戦プログラミング入門」という本を参考にしていますが、あまりいい本ではありませんね。
ちょっと後悔。

318:302
07/12/10 10:37:10 aKqH/kSM
>>317
あ、申し訳ありません。age忘れてましたね。失礼。

319:302
07/12/10 18:53:27
自己解決。↓が足りなかったらしい
URLリンク(www.atmarkit.co.jp)
VisualStudioで面倒見てくれるときとくれない時があるのね。
引き続きTableAdapterに挑戦中……。

320:nobodyさん
07/12/10 22:35:57
おい、PHPスレを荒らしに来てるやつ自重しろクズ

321:302
07/12/11 17:02:22 fZiANqi9
スレ汚しですみません。
TableAdapterの方はなんとなく判ってきましたが、わき道に逸れてGridView+FormViewなんてモノに手を出してます
なんとかマスターメンテらしきモノを作るところまでは出来たのですが、FormView側で登録・更新・削除した結果をGirdViewに表示させることが出来ません。
ググった結果「GridViewのEnableViewStateってプロパティをFlaseにすればOK」という情報までは取得できましたが、この設定にはなにか副作用があるのでしょうか?
単に「初めての表示/明示的な読み込みの結果を保持しておきたい」という目的以外にTrueにする意味はあるのですか?

322:nobodyさん
07/12/13 00:41:26 6Y2No+8T
>>306
コメットを使うことが出来ればやりたいことは実現できそう?

323:nobodyさん
07/12/13 22:05:12
どっからコメットが…


324:nobodyさん
07/12/15 12:37:07
DBからSELECTしてきたDataSet等に、
さらにSQLを投げてDataSetを作成することは可能ですか?

325:nobodyさん
07/12/15 13:24:29
>>324=302

326:nobodyさん
07/12/16 01:51:04
会社の環境はVS2005なのですが、ちゃんと
aspx
aspx.cs
designer.cs
とワンセットで表示されるのですが、家の環境はWebDevelopperで
designer.csがソリューションエクスプローラに表示されません。
aspxなどの場所にdesigner.csファイルもありません。
これはどうやって表示させるのでしょうか?
WebDevelopperはソリューションファイルやプロジェクトファイルも無いんですよ(^^;
なので、いつもファイルをダブルクリックして立ち上げるのではなく
WebDevelopperを開いて、スターと画面から最近実行したソリューションの一覧から選択してる・・・


327:nobodyさん
07/12/16 19:34:30 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

328:nobodyさん
07/12/17 03:20:00
>>324
ds.table.select("id=1")でDataRow[]が取り出せたような…
これでデータセットに対するselect文は実現出来ない?

329:nobodyさん
07/12/17 18:30:50
>>328
ありがとうございます。
発端というのが、SQL文が長くなってしまったので、
DataSetを一時テーブル代わりに、小分けにして実行できないかという
安直な思いつきだったのです。
DataSetを2つ作ってから要素を取り出して、
疑似LEFT OUTER JOINとかやってみたのですが余計に大変だなとw
そんな訳で…申し訳ありません。きちんと背景から書くべきでした。

330:nobodyさん
07/12/19 01:40:10 kIBGOFX3
現在のページのファイル名を取得できる
プロパティとかありませんか?
用途としては自分自身のページにパラメータをつけて
再度呼び出し、Request.QueryString()でその値を
取り出すためです。

331:nobodyさん
07/12/28 00:08:34 EfHkVobu
VWD2005(VB.NET)を使ってます。
javascriptでサブウインドウを作って、閉じる処理をしたいのですが
サブウインドウが閉じない場合があるので回避法を教えて下さい。

awin=window.open('a.aspx', 'a');
awin.close();
この場合うまく閉じる。

awin=window.open('a.aspx', 'a');
ポストバック発生
awin.close();
サブウインドウ閉じない。



332:nobodyさん
07/12/28 20:57:22
>>330
俺は定数で宣言してる。

>>331
a.aspx内にウインドウを閉じるスクリプトを書き、
なんらかのイベントを受け取らせて実行させればいいんじゃね。
つか、ウインドウを開いて何のイベントも発生させず、
しかし、ポストバックを起こして閉じたいなんてどういう用途なんだ。

333:331
07/12/28 22:24:13
>332
回答ありがとうございました。
実際のコードは間に種々の処理がありますが、最小限の再現コードを
書いただけです。

とりあえず、解決しました。
a.aspxからopenerを一定間隔で監視し見つからなければ自身を
閉じることで実現しました。
openerが遷移した際は、opnerにhiddenを埋め込んでおきa.aspx側から
監視することで遷移を判断しました。



334:nobodyさん
07/12/28 22:29:01
Request.CurrentExecutionFilePath 辺りとか?


335:330
07/12/30 22:06:04
Request.CurrentExecutionFilePathと
System.IO.Path.GetFileNameを使って
取り出せました。
ありがとうございました。

336:nobodyさん
08/01/01 21:08:48
しつもんしつもん。

ローカル環境(Web Developer 2005+SQLServer2005)でWebアプリを製作して、
とりあえず動くようになったのでサーバーにアップしたのです。

あ、サーバーはファーストサーバーのエクスプレス2です。無料のね。

なんとかかんとか設定を終えて、いざ実行!・・・したら、エラーがでるのです。

System.NullReferenceException:オブジェクト参照がオブジェクト インスタンスに設定されていません。

ってね。

ローカル環境では問題なく動作するのに、サーバーにアップするとエラーになるってのは、

どうしてなんでしょうか???




337:nobodyさん
08/01/01 22:26:23
オブジェクト参照がオブジェクトインスタンスに設定されていないからだろ

338:nobodyさん
08/01/08 19:46:24
ActiveReportsを64ビット環境でどうにか使えるように出来ないでしょうか?

339:nobodyさん
08/01/12 16:00:40
>>338
それはサポートに聞いた方が早い質問だ

340:初心者
08/01/24 15:18:55 RPd1Q97N
ASP.NET でRDOとかでSQLサーバーに接続できるのでしょうか?
それともAODだけなのでしょうか?

341:nobodyさん
08/01/24 15:36:11 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
08/01/24 17:22:36 7JZT46In
上の件については解決しました。
無理にFindControl使わずに、headingをそのまま使えるみたいですね。

しかし、新たな問題が。
Page.Request.QueryString("param1")
として取得したクエリ文字列に日本語が入っていた場合、
AscW関数で取得した数値が一律65533になってしまいます。
どうにか日本語のまま取得出来ないでしょうか?

よろしくお願いします。

343:341
08/01/24 17:50:53
何度もすみません、解決しました。
web.configに
<globalization requestEncoding="Shift_JIS" />
を書くことで日本語で取得できました。

344:nobodyさん
08/01/24 21:04:09 swcPOcpz
>>343
目先の結果だけで変更しちゃっていいものなのか?
と、ちょっと思った。

345:341
08/01/24 21:23:24 0wPjeug7
ではどうするのがいいのでしょうか?

346:nobodyさん
08/01/25 21:27:35
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

347:nobodyさん
08/01/27 12:57:11
>>345
344とは別人ですが,
「考えてShift_JISに変えることで問題を解決させた」なら良いけど,
「Shift_JISに変えてみたら解決した(ように見えた)」なら不安や疑問が残るのは当然。

限定された利用環境でしか通じない(=限定された利用環境では通じる)
ということを理解してるなら問題無いと思う。

345は自分の想定している利用環境を見つめ直してみると良いんじゃない?
自分用アプリだとしでもDB絡みとか考えることは色々あるかも知れない。
文字の符号化の問題はなにかと躓きやすい問題の一つ。

348:nobodyさん
08/01/27 13:00:53
>>346
変数AAAAAに書かれたコードの安全性を検証できないんじゃないかとか考えたり。

349:nobodyさん
08/01/28 20:37:23
TreeView のあるノードをクリックしてポストバックした後
さきほどクリックしたノードがハイライトになっているようにしたい。
どのようにすればいいでしょうか。
参考になるサイトありましたらリンク先でもはっていただけると助かります。
よろしくお願いします。

350:nobodyさん
08/01/31 20:49:43 pr1Jn4LS
>346 普通に <% =AAAAA %> でいいだろ?

351:nobodyさん
08/02/01 12:55:47 Ik8bhfAO
始めたばかりなのですが、質問です。
とりあえずウィザードで作ったページに、_Defaultってクラスが生成されました。
Page_Load()とかに制御が来るのは分かりました。
このインスタンスっていつ削除されますか?
デストラクタを書いたら、起動時に飛んでくるんですけど...;
中でソケット通信していて、終了する時にはCloseしてやりたいのですが、
いつ終了されるか分からなくて...。
宜しくお願いします。

352:nobodyさん
08/02/01 13:05:10
VB2005にてマスターページを使っている
ページのコントロールを取得、各プロパティを変更したいです。
Me.ControlsをForで回して取ろうとしたところ
マスターページのControlsが取得されてしまいうまくいきませんでした
他に方法はありませんでしょうか?
変更対象が100個くらいあるので・・
1つ1つ変更するのはできれば避けたい所です。
ご教授よろしくお願いします

353:352
08/02/01 15:54:44
自己解決。
Master.FindControlで探してきてDirectCastで取ってこれました

354:nobodyさん
08/02/04 14:54:56
マスタページを使うよりユーザコントロールでなんとかしちゃったほうが
シンプルでメンテしやすい(Javascriptからの扱い等)と思うのは俺だけ?

355:nobodyさん
08/02/07 10:29:47 WbXuHs4A
URLリンク(support.microsoft.com)
ここの「サーバーのメモリに任意のオブジェクトをキャッシュする」ってところのプログラムなんですが、
SqlConnectionをcloseしていません。
これは大丈夫なのでしょうか?

356:nobodyさん
08/02/07 19:17:02
Close以前にOpenがないだろ?
そしてSqlDataAdapterは非接続型だ。
後はわかるよな?

357:nobodyさん
08/02/09 17:40:07
ASP.NETのセッションIDはどういった単位でユニークになりますでしょうか?
IPアドレスが違えばユニークになると思いますが
それ以外にはたとえばUserAgentが変わってもユニークに
なりますか?

358:nobodyさん
08/02/09 18:40:06
どのような環境でもユニークになるから気にしなくておk

359:nobodyさん
08/02/11 01:40:21
>>357
sessionid がクライアントから投げられてこなけりゃ新しく生成される。
だからたとえ同じUAでも別途立ち上げれば別セッションとして扱われる。
UAが投げてるRequest見ると分かりやすいかも。
FiddlerだのWebDevelopmentHelperだので見ると幸せになれるかも知れん。

360:nobodyさん
08/02/11 10:12:41 8IeW4FxX
DataAdapter は接続型だろ。
ただ、Fillメソッドの中で Open と Close してるだけ。

361:nobodyさん
08/02/11 11:40:28
は?

362:nobodyさん
08/02/14 00:08:37
データアクセスコンポーネントをデザイナツールで作成し、
TableAdapterのGetDataでデータテーブルを取得した後
ObjectDataSourceコントロールを使用せずに、コードでGridViewと連結しました。
この場合のGridViewの複数の列に対して非表示の設定を行いたいのですが
どのようにコーディングすればよいのでしょう?


363:nobodyさん
08/02/14 00:32:20
DataTableのColumnsの数を調整する

364:nobodyさん
08/02/15 00:12:20
そうなのか、DataTableで調整するんですか
GridViewの列数をカウントしても0となってるんで悩んでました

365:nobodyさん
08/02/15 21:57:56
信じてどうする

366:nobodyさん
08/02/18 18:21:09 p++OLHN+
ASP.NETで構築したサイトがあるのですが、社内のイントラWebなので
統合Windows認証で認証を行うようにしてあります。
先日、IE6からIE7に切り替えたのですが、上記のサイトに接続する際にユーザ名と
パスワードを確認するダイアログが出るようになりました。
従来どおり、ダイアログが出ないようにするにはブラウザの設定が必要なのでしょうか?
インターネットオプションの信頼済みサイトには上記のサイトが入っています。
IE6では、これを設定すればダイアログが出ないようになりました。


367:nobodyさん
08/02/18 18:30:11
自己解決しました。
今までは信頼済みサイトにサイトを入れていたのですが、イントラサイトに入れなおして
ログインのオプションを調整したら入れるようになりました。
お騒がせしました。


368:nobodyさん
08/02/19 14:46:13
すみません。質問です。
ASP.NETをはじめたばかりなので、どのコントロールを
使ったらいいかというレベルです。

掲示板みたいに、ログファイルを整理して表示するページを作っているのですが、
どのコントロールを使ったらよいのでしょうか。
DataListを見ると、1行おきに設定できるのは、色だけであり、
フォント関連のタグは指定できません。
Tableも、値を追加することは出来ても、フォント関連のタグは
指定出来ません。

ASP.NETは、デザインで、オブジェクトを配置してプログラムする
スタイルですので、プログラムのループで、オブジェクトを配置というのも
出来ませんよね・・・

369:368
08/02/19 15:04:42
追加で補足です。
例えば、以下のサイトのサンプルの掲示板では、
書き込む時にログファイルにタグも含めて書き込んでしまい、
データを表示するときに、すべてのデータをLabelに表示する
という形式を取っています。
URLリンク(aspnet.cguild.com)
ASP.NETの場合は、こういうやり方しかないということなのでしょうか。

私は、2ch.netみたいに、データだけのログファイルがあり、
それを自由にレイアウトしながら表示するというものをしたいのです。
これが、Perlだとすぐにイメージがつかめるのですが、ASP.NETとなると
プログラムの全体概要のイメージが出来ないのです。

それで、どういうコントロールを使ったら良いのかを質問してみました。

370:nobodyさん
08/02/19 21:10:25
>DataListを見ると、1行おきに設定できるのは、色だけであり、
>フォント関連のタグは指定できません。
DataBoundイベントでも引っこ抜いて、動的に生成すれば大抵のことはできる。
マウスでD&D、ちょいちょいとプロパティ設定で、はい出来上がりではない。

>ASP.NETは、デザインで、オブジェクトを配置してプログラムする
そらホームページビルダーだろw
基本的にデザインビューは、知らない人が保守で見たときに
オブジェクトの相関関係が目で見て分かりやすいってものだと俺は認識してる。
コードで書けばいい。

>データを表示するときに、すべてのデータをLabelに表示する
Labelなんてspanタグだ。"<span> %s <span>"だと思えばいい。

>ASP.NETの場合は、こういうやり方しかないということなのでしょうか。
んな訳ない。好きなように出来る(一部、死ぬほどやり辛いことはあるが)。
ちょっと初心者過ぎる気がするので、本を一冊買って来た方が良いと思う。

371:nobodyさん
08/02/20 01:53:44
>>370
レスありがとうございます。
> DataBoundイベントでも引っこ抜いて、動的に生成すれば大抵のことはできる。
> マウスでD&D、ちょいちょいとプロパティ設定で、はい出来上がりではない。
なるほど。私がイメージしてたものとは違うということのようですね。
コントロールの使い方について学んでいく必要があります。

> コードで書けばいい。
開発環境を使わずにメモ帳を使ってということですよね?
そっちのスタイルでも書いている方は結構いらっしゃるようですね。

> Labelなんてspanタグだ。"<span> %s <span>"だと思えばいい。
spanで囲むだけだったのですか。
何か特別なオブジェクトに格納するので、あまり長い文字は入れたり
しない方がいいのかなと思ったりしていました。
だったら、あの仕様でも良いですね。

> んな訳ない。好きなように出来る(一部、死ぬほどやり辛いことはあるが)。
> ちょっと初心者過ぎる気がするので、本を一冊買って来た方が良いと思う。
分かりました。書籍を購入して読んでみます。
しかし、ちょっと気になったのですが、ASP.NETなど製品版の場合、PHPやPerlに
比べてネットだと情報量が少ないですよね。。。開発をしようとすると非常に費用が
かさむ世界なのでしょうか。。

372:nobodyさん
08/02/20 03:13:04
すみません。質問です。
ASP.NETで書くと、それを表示する環境側にあわせたhtmlコードを出力する仕様だと
いうことですが、それは、コントロールを配置した場合に限るのですよね?
コントロールを配置する範囲でうまくいかない場合はstringに自分でタグをいれこんで
それをまとめて出力するとかやる事が多いと思うのですが。
このメリットは、本当に現場で活かされているのか、ちょっと疑問だと思いましたので
質問をしてみました。
URLリンク(www.atmarkit.co.jp)

373:nobodyさん
08/02/20 23:45:41
>>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とかその辺の本も買ってきな。

374:nobodyさん
08/02/20 23:49:11
補足:
>活かされてるも何も、うちの会社ではGoTo文使うような扱いを受ける。
文字列にタグを入れ込んで表示することが、ね。

375:nobodyさん
08/02/21 00:21:53
>>373
レスありがとうございます。

> デザインビューのプロパティやコンテクストメニューとかに
> 項目が存在していなくても、コードを書けばなんとでもなることが多い。
プロパティに項目がなければ、なすすべが無いみたいに思っていたのですが、
現場の開発ではそうでもないのですね。
私は個人的に、工夫をするコードを書くと、あらかじめ準備しているクラスを活かしきれて
いないことから、重いだけの無駄な処理をしているようなイメージを持っていたのですが、
このあたりが間違っていたようですね。

> ASP.NETのクイックチュートリアルとか読んだか?試したか?
それは読んでませんでした。@ITの記事を読みながらやってましたので。
愚痴のような話ですが、Microsoftの入門者向け情報で、VBなどは読んでいたのですが、
ウィザードを使って、作って、ほら便利でしょ。終わり。という系統のが非常に多くて、
それに応用性が無いと思って読まなくなってました。M$のは中級者向けのがないですよね。
リファレンスはしっかりとしてますが、具体的な応用性がいまいちイメージできなかったり
しています。

> つか、個人(だよね?)でASP.NETを使うメリットなんてないと俺は断言する。
そうです。今は個人でやってます。会社でやることも考えて勉強のような位置づけです。
やはり、チームを組んでアプリを組む場合にメリットがあるわけであり、どんな場合でも
メリットがあるわけではないのですね。参考になりました。

ありがとうございます。

376:nobodyさん
08/02/21 07:34:22
>>373-374
> 活かされてるも何も、うちの会社ではGoTo文使うような扱いを受ける。
> (文字列にタグを入れ込んで表示することが、ね。 )
> どうしても使わざるを得ない場合は設計を見直す。
コントロールを配置する方向で実現する方法があるのですね。
工夫をしてそのような方法が出来るかを見てみます。

> MVCモデルとかOOPとかその辺の本も買ってきな。
ASP.NETは、他のフレームワークと比べてMVCを意識しなくていいという
記事もあります(記事はASP.NET 1.0ですが)が、やはり、開発にはMVCを
意識して、役割を分けて作る必要があるということなのですね。
URLリンク(www.atmarkit.co.jp)
MVCで検索するとjavaが良くヒットしますが、ASP.NETを例にしたものは、
簡単な文章のものしか見たことがありませんが、これは、MVCを理解して、
それをASP.NETで応用するという意味でしょうか?

377:nobodyさん
08/02/21 15:02:01
>>374さんの話は、<asp:~ runat=server>タグに限った話ですか?
それとも<br>なども含めた話ですか?

378:nobodyさん
08/02/21 16:09:59
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
08/02/21 16:11:00
つづき

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

380:nobodyさん
08/02/23 22:33:31
app_codeフォルダを作成し、その中にコードファイルhoge.csを作成したのですが、
そのhoge.csのusing 宣言でSystem.Dataが認識されません。
System.入力後にインテリセンスでもSystem.Dataが出てきませんし、メンバも利用できません。
参照設定でSystem.Dataを参照しても変わりません。
どこを修正すればよろしいのでしょうか?


381:nobodyさん
08/02/26 10:27:21
>>379
上のコードは文字列の配列を渡しているのだから、
下のコードも同じように文字列の配列を渡すようにすれば良いじゃない

382:nobodyさん
08/02/26 10:30:08
string[] st = { dr["タイトル"], dr["メッセージ"] };
でどう?

383:nobodyさん
08/02/28 13:48:03
>>381-382
それでうまくいけました。
渡すデータの形が悪かったのですね。
ありがとうございました。

384:nobodyさん
08/02/28 23:40:54
パスワード入力のinputってポストバックしたら消えるけど、この値を常に表示させたいが
どうすればいいですか

385:nobodyさん
08/02/28 23:51:48
>>384
Cookieとかじゃダメ・・・?

386:nobodyさん
08/02/29 00:28:07
すみません。クッキー以外でお願いします。
ブレークポイント設定して順に追ってみたのですが、どのタイミングで消えるのか分かりませんでした・・・

387:nobodyさん
08/02/29 00:38:41
どうしてもというのであればSessionにつっこむ

388:nobodyさん
08/02/29 01:25:24
やっぱりSessionしかないのですね。ありがとう

389: [―{}@{}@{}-] nobodyさん
08/02/29 13:04:10 BE:53832342-PLT(21001)
>>384
PassBox.Attributes.Add("value", "パスワード")
でいかが?

390:384
08/03/01 13:09:02
>>389
完璧です!

391:nobodyさん
08/03/05 12:54:57
ページ内でエラーが発生してcatch句で処理する場合など、
エラーが発生したことを表示させるにはLiteralとかで表示させるのが一般的なのでしょうか?

392:nobodyさん
08/03/05 21:45:09
global.asaxでまとめてcatchしてエラーページに飛ばす。

393:nobodyさん
08/03/06 14:34:16
サイト発行で完全コンパイルしていますが、特定ページのみコンパイルしない状態を作ることは出来るのでしょうか。

394:nobodyさん
08/03/07 00:12:53
ASP.NETでASP.NETを実行してるユーザーの権限とかいじらずに
デフォルト状態でファイルとかにログを吐くにはどうしたらいいのでしょうか?

395:nobodyさん
08/03/07 00:47:49
普通にglobal.asaxとかで出来ない?
出来ないならNetwork Serviceアカウントに権限与える必要あり。
FileSystemAccessRuleクラス当たりをググってみて

396:nobodyさん
08/03/07 01:04:24
App_Dataにでもはいとけ


397:nobodyさん
08/03/07 16:14:45
>396
うまくいきました。

398:nobodyさん
08/03/08 19:12:02 J6kJ8MXk
asp.netのSessionについて調べているのですが、
Session.SessionIDプロパティの値って、いつ設定されるのでしょうか?
最初にwebアプリのaspxファイルにアクセスした時ですか?


399:nobodyさん
08/03/08 22:01:34
はい。該当の仮想ディレクトリにアクセスされた時です。

400:nobodyさん
08/03/08 22:33:34
うそつけ


401:nobodyさん
08/03/08 22:34:01
自宅でASP.NETの勉強をしようと思い参考書を買ったのですが、不具合が…
参考書では

>Windowsコンポーネントの追加と削除」→
>Windowsコンポーネントウィザード」→
>インターネット インフォメーション サービス(IIS)」にチェック→
>「詳細」を左クリックします。

もうこの時点でアウト。
『インターネット インフォメーション サービス(IIS)』自体が表示されてません。
非常に困ってます。どうすれば表示されますか?教えてチャンですいません。

402:sage
08/03/08 22:46:29 J6kJ8MXk
Sessionオブジェクトに値を設定したときかな。
IsNewSessionプロパティを見れば判るかも。

403:nobodyさん
08/03/08 22:50:25
>401
環境は?XPの場合Home Editionだと×。IISはProfessional Edition 以上

404:401
08/03/08 23:10:59
OSはXP Home Editionです。
Professional Edition以上とは参考書に全然書いてないんで、安心しました。

勉強段階で行うのはアプリの動作確認だけだし、
使ってるレンタルサーバが「ASP.NET対応!テスト使用にもどうぞ」って謳ってるので、
IISは必ずしもクライアント側では必要ないのかも? という気がしてきました。
(間違ってたらご指摘下さい。)

お早いレス、有難うございます。

405:nobodyさん
08/03/08 23:12:21
>>404
まあ、必要ないっちゃあ必要ない。
ただ、デバッグとかするのにはあるほうが数倍便利。

406:nobodyさん
08/03/09 01:40:07
>参考書では
いつの参考書だ?


407:nobodyさん
08/03/09 09:06:44
>>404
OSはXP HEは駄目だと表記されてない書籍というのは相当怪しくないか?
あと、出来れば、プログラムが無限ループになる可能性もあるから、
レンタルサーバの使用は避けた方がいいと思うけどな。
あと、XP HE でも、ASP.NETは動かすことは可能だぞ。2005以降のIDEだと
自動でローカルで動作確認が出来るツールが入ってくるし。

408:nobodyさん
08/03/10 20:47:04 X6+NrWjc
>>404
Virtual PC + Windows Server 2003 180日評価版

409:nobodyさん
08/03/12 23:23:12
変数をstaticで宣言した場合、いつまで保持されるのでしょうか
ポストバックしても残ってますが そのページ内でのみ残ってるのでしょうか

410:nobodyさん
08/03/13 20:24:46
ASP.NETワーカープロセスが終了するまでじゃないの

411:nobodyさん
08/03/13 21:15:47
それはないわ

412:nobodyさん
08/03/13 22:14:20
正確にはアプリケーションドメインがアンロードされるまでだが、
ワーカープロセスが終了するまでというのはぜんぜん違うというほどではない。


>それはないわ
どういう意味で言ったのかね?


413:409
08/03/14 00:11:32
ありがとうございます。
Session変数みたく扱えるってことですね。逆にむやみやたらと使うと
ワーカープロセスが終了するまで残ってしまうのでよくないですね

414:nobodyさん
08/03/14 14:35:37
旧ASPのコードをそのまま動かす方法はないでしょうか?

Google AdSenseのモバイル広告を使いたいのですが旧ASPのコードさかないので・・・

415:nobodyさん
08/03/14 14:36:23
さかない→しかないの間違いです

416:nobodyさん
08/03/14 16:42:53
ASP.NET3.5+AJAXではじめるECサイト構築入門って本買ったんだけど
ウリの一つのネットショップのサンプルファイルがCDから洩れてるし。

MasterPageHorizontalMenu.ascx.vb
誰か↑のファイルなんとかしてくれ。

417:nobodyさん
08/03/14 22:57:12
あほか、機能くらい書けよw
実現してやるから

418:nobodyさん
08/03/17 00:49:50
質問です。
環境:VisualBasic 2005 ASP.NET2.0 AJAX Control Toolkit


CascadingDropDownのListBox版というのは不可能なのでしょうか?
CascadingDropDownはListBoxに適用できないため自力でやるしか方法はないのでしょうか?

419:nobodyさん
08/03/17 01:05:13
>>418
どうぞ
URLリンク(www.experts-exchange.com)

420:nobodyさん
08/03/19 14:24:55 zbaC+I0y
IIS6.0でASP.NET3.5を動かすことはできるのでしょうか?
設定の方法が載っているサイトなどあれば教えてください。

421:nobodyさん
08/03/19 17:19:26 n1YREe+h
すみません。自分はJavaプログラマでしたが、スレッド恐怖症です。

デッドロックとかむかつきます。

ASP.NETなら、スレッドは関係ないですか?PHPみたいにスレッドが関係ないといいです。

よろしくお願いします。

422:nobodyさん
08/03/21 07:32:02
>>421
何を聞きたいのかわからん

423:421
08/03/21 20:41:42
>>422 どうもレスありがとうございます。漫画喫茶からのアクセスなのでどうしても
お礼が遅くなってしまいます。私が聞きたいのは、Javaだとサーブレットでは
通常はdoGetもしくはdoPostメソッド内での処理を書くのですが、それらメソッド外(いわゆるグローバル変数)を使います。
その場合、サーブレットは1つのクラスがマルチスレッドで動いているものですから、グローバル変数はマルチスレッド対応の
ソースコードを書かないとバグを引き起こします。しかし、PHPだと言語の仕様上そのような配慮はいらないです。
VB.NETでWEBのソースを書く場合はどうなのかとおもいまして。

また、答えていただけたら、幸いです。

424:nobodyさん
08/03/21 23:35:42
それはマルチスレッド云々の問題ではなく、グローバル変数の利用法に
配慮したコーディングが出来てないだけじゃないのか・・

425:nobodyさん
08/03/22 17:19:32
PHPだと配慮しなくてもOK
Javaだと配慮しないとNG
で、ASP.NETは?って聞いてんだろ。きっと。

426:nobodyさん
08/03/22 23:31:55
>>421
PHP:マルチスレッド非対応
Java:マルチスレッド対応
ASP.NET:マルチスレッド対応

以上。

って言うのもこのスレ的にアレなのでASP.NETを使ってみて欲しい。

今回のケース(VB.NET)では一番簡単なマルチスレッド対応として
SyncLockを使えば良いだけに思える。(Javaのsynchronizedっぽいの)

慣れてきたら色んな排他制御の仕組みを適材適所で使い分けましょう。
例えばReaderWriterLockクラスはお手軽度では結構上位かな。

>>424
グローバル変数の利用法に配慮したコーディングって……
具体的にどういうコーディングか考えたらわかると思うけど,
マルチスレッドを考慮するってことに含まれるでしょう。


427:nobodyさん
08/03/23 21:39:50 x4MgCEzm
ASP.NETでマルチスレッドってどんな場合に使用するのでしょうか?
当方初心者で思いつかないのですが

428:nobodyさん
08/03/24 03:23:35 ct6byZwV
デザイナでDropDownListコントロールを配置し、
データソースの設定をし、DBより取得したレコードを
DropDownListに表示しています。
それはいいのですが、使用時に未選択を示す
空文字の行がありません。
つまりDBに"1","2","3"と3つレコードがあり、それをDrowpDownListに
取り込むことはできたのですが、実際使用する時には
""の行も必要なので困っています。
1.こういう場合どうするべきでしょうか?(DB側のテーブルに空文字の行を追加することは避けたい)
2.また、フォームのLoadイベントでリストの元データになっているDataTableにアクセスしたかったのですが、
 やり方がわかりませんでした。
 どうやればアクセスできますか?
 イメージ的にはMe.dataset.Tables[~~
 のようにフォームを初期化するために使用したデータセットがどこかに保存されているような気がするのですが。。

429: [―{}@{}@{}-] nobodyさん
08/03/24 11:45:00
>>428
1.静的アイテムを定義しておいて、AppendDataBoundItems=Trueにするのが簡単かな
2.DataBoundイベントで行データにアクセスできるけどそれじゃ駄目?


430:428
08/03/25 01:21:28
>>429
>1.静的アイテムを定義しておいて、AppendDataBoundItems=True
これでばっちりです、これが知りたかったです。
ありがとうございます。

>2.DataBoundイベントで行データにアクセス
うーん、どこかの変数にリストボックスの作成元になっている
データセットへ直接アクセスするようなことはできないでしょうか?


431:423
08/03/27 19:17:41 jex5dQtQ
どうもありがとうございます。

よくわかりました。わたし、Java初めて3年になるんですが、
もうフレームワークやらなんやらで、ほとほとつかれました。

MSのならば、言語仕様がしっかりしてるとおもいました。
一応スレッドはあるみたいですが、がんばってみます。

思い切って、ASP.NETをやってみます。どうもありがとうございました。

お礼が遅れてすみませんでした。今日、仕事帰りに漫画喫茶にこれました。

432:nobodyさん
08/03/28 00:19:18 oYl8aU09
開発時と運用時でフォルダ構成が違うため相対パスが違うので
プログラムで相対パスを書く時に困ってしまっています。
開発時画像を表示する相対パスを書いて、それを運用時のフォルダへコピーし、実行すると
画像への相対パスが変わってしまうため表示できません。
運用フォルダでは画像ファイルは*.aspxファイルより上の階層にあります。
開発時と運用時の相対パスの違いって
どうやって切り替えるとよいでしょうか?
それか実行時に動的にwebconfigあたりから相対パスを読み出してくるような方法ないでしょうか?


433:nobodyさん
08/03/28 01:16:08
相対パス、相対パスって言ってるけど意味分かってるんだよね?
開発と運用で相対位置が上位と下位に分かれてるなんてどーしよーもないよ。

というか開発時と運用時で画像への相対パスが違うって事自体理解できん。
運用に合わせて開発環境整えればいいだけだと思うんだけど・・・
どういう理由でできないの?



434:432
08/03/28 01:40:35
>>433
相対パスの意味はOKです。
やはり運用環境に整えるのが当たり前ですか。
運用環境では*.aspxの配置してある階層より上の階層に画像があるのが
問題なんですね。
今運用環境が以下なのですが、
http://(root)/test.aspx
このtest.aspxの階層を一つ下げて
http://(root)/home/test.aspx
などとすれば画像へのパスが
http://(root)/img/a.jpg
となり開発時運用時共に同じ構成で作成できます。
今回は運用環境が実際は定まっていなかったので
運用環境のフォルダ構成を見直すことで
開発時と統一したいと思います。
ありがとうございました。

435:nobodyさん
08/03/29 17:22:30
>>434
Web.configに絶対パスを書いて画像を指定するときに置き換えてやればいいじゃない

436:nobodyさん
08/03/30 11:49:34
便乗なんだけど、パス書くときに~/で書けば自動変換してくれるけど、
<script>タグの場合は、runat=serverにしたらエラーなるけど、何か方法ないですか

437:432
08/03/31 05:18:43
>>435
ですね、
そう言う方法が知りたかったです。
ですが今回はフォルダ構成に関しては開発環境=運用環境が
基本と言うことをお教えいただいたのでそうしますね。
ありがとうございます。

438:nobodyさん
08/03/31 05:30:55 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
と並びを変えたいのですが。。

439:nobodyさん
08/04/01 00:14:49
>>438
RepeatLayoutをFlowにしてインライン要素で敷き詰めたらどうだろうか。

440:438
08/04/02 01:45:15
>>439
RepeatLayoutをFlowにしてみたんですが、一行に1つずつのアイテムが
下へずらずらと表示されるだけでした。
インライン要素で敷き詰めるとはどうゆうことを指すのでしょうか?
すみません。

441:416
08/04/02 10:00:56 Y/05D5yF
>>416
ASP.NET3.5+AJAXではじめるECサイト構築入門
の作者が対応とってくれました。感謝。
URLリンク(www.friendlysw.com)

416の時点で出版社へメールを送ったが、出版社からは音沙汰なしのままだった。
この対応については、ちと不満。
改訂版もしくは、初版以降の版では直ってることを願う。
書籍自体は、動くサンプルコードが豊富であり参考にはなると思った。

442:nobodyさん
08/04/02 10:17:30
>>438
まず1から8までの各データをSPANタグ(インライン要素)で囲んだだけのHTMLを作って表示してみる。
ウィンドウ幅に余裕があるかぎりデータが横に並べられ、幅を変えるとそれに合わせて改行位置が変わることを確認できるはず。

これをDataListで再現できればいいわけだ。
RepeatLayout=Flow、RepeatColumnsをできるだけ大きい数(笑)にすればとりあえず再現できるね。

443:438
08/04/04 00:38:51
>>442
>まず1から8までの各データをSPANタグ(インライン要素)で囲んだだけのHTMLを作って表示してみる。
こちらはうまくできました
>RepeatLayout=Flow、RepeatColumnsをできるだけ大きい数(笑)にすればとりあえず再現できるね。
こちらは無理でした。itemtemplateの内部を<span>で囲ったんですけど。。
ItemTemplateの中で表タグ使ってるのが問題かもしれません。
と思って外したんですがやはり無理でした。
ここまで来るとASPというよりタグの問題かもしれません。
そもそもDataListがtableタグを使って表現している以上
ItemTemplate内でtableタグを使った場合、ウィンドウサイズが変動しても自動で列数が変わるとか
無理な気もしてきました。。

444:438
08/04/04 00:48:24
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
訂正

そもそもDataListがtableタグを使って表現しているので
テーブル内で<span>使ってもテーブル自体の列数がウィンドウサイズによって
動的に変動するとか無理なような気がしてきました。


445:nobodyさん
08/04/04 09:38:27
RepeatLayout=FlowだとDataListはspanタグを吐くだろ?

446:nobodyさん
08/04/04 22:07:24 btrOMdCP
SqlCommandでパラメータ使ってますが、省略可能なパラメータって定義できますか?
検索条件によってパラメータが無い場合もあるので、どのように対応すべきか悩んでいます。


447:nobodyさん
08/04/05 16:12:22
条件によってcommandTextから変える

448:446
08/04/05 19:28:34 /o0gPsTY
>>447
レスありがとうございます。やはり動的にSQL文を生成するしかないのですか。

449:438
08/04/05 20:09:31
>>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
08/04/05 20:09:52
<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
08/04/05 20:11:49
ブラウザの見た目としては
集英社
小学館
講談社
メディアワークス
徳間書店
角川書店
竹書房
こんなんなっちゃいまして
期待としてはテーブルの中に入った出版社名が
右へずらっとウィンドウの右端まで表示したいのですが、
どうしても下へ並んでしまいました。。


452:nobodyさん
08/04/05 21:40:40
>>438
Repeaterコントロール使えば良いんでね?
ItemTemplateの中身をひたすら繰り返すだけのシンプルなものになるから。
後はdivでもなんでも使えばよかろ。

453:nobodyさん
08/04/05 21:42:06 /o0gPsTY
>>451
CSSの対応で、どうでしょうか?
>>450の場合だと
span#DataList1 table{ display:inline; }
とすれば横並びになりますが。

454:nobodyさん
08/04/05 21:44:15
<ItemTemplate>
<div style="float: left">
<% Eval("Shuppansha") %>
</div>
</ItemTemplate>
 ↓
<div style="float: left">
集英社
</div>
<div style="float: left">
小学館
</div>
<div style="float: left">
講談社
</div>

みたいに出力される。

455:nobodyさん
08/04/05 22:09:14
>>448
あとは、それを見込んでクエリを書くか。
WHERE (param = @param OR @param IS NULL)
みたいな。

456:nobodyさん
08/04/05 23:48:02 /o0gPsTY
>>455
ありがとうございます。求めてたのはこれです。

457:438
08/04/06 17:14:55
うまくいきました!
まず>>453-454で教えて頂いたようにtableのstyleを「display:inline」とします。
これで解決しました。
また、今回の要件を満たすにはtableのstyleをdisplay=inlineとした上で、
Repeaterコントロールを使う方が良いと思いました。
DataListでもプロパティを設定すれば多少無理矢理な形で可能なのですが、
スマートでない感じがしました。
ありがとうございました。

458:452
08/04/06 22:35:04
客先のブラウザで全画面表示したら貧相な画面になりましたとか気まずいから、
>>438みたいな、横幅可変でなるべく全体使いたいって話が最近良くある。
狭い画面での表示と両立してくれって要求になるとかったるいけどw

20~24インチぐらいのワイド液晶ある人はyahooやinfoseekとamazon比較してみると良いかも

459:nobodyさん
08/04/07 00:19:01 880v00YK
ユーザーコントロール作って、その中のコントロールのボタンに
Click時にクライアントスクリプトを動かしたい場合は、ユーザー
コントロールの貼り付け先にスクリプト書く必要があるのでしょうか?
ユーザーコントロール側にスクリプト書いて、コントロールの
貼り付けだけで動作するようには出来ないのでしょうか?

460:nobodyさん
08/04/07 19:54:47
簡単なスクリプトなら、動的にクライアントスクリプトを追加するように、ユーザーコントロールに書くとか

461:nobodyさん
08/04/07 23:28:59 HZpb0WP/
TextBoxとボタンを2セット配置しまして
TextBox1の上でEnterキーが押された時はボタン1の処理、
TextBox2の上でEnterキーが押された時はボタン2の処理、と
処理を分ける場合はどうすればよいでしょうか?
今のところどちらでEnterキーを押してもボタン1の処理が実行されてしまいます。


462:nobodyさん
08/04/08 00:18:51 O6FEAP9E
FormViewでメーカーCDを連結しているLabelがありまして、
実際にはここにメーカー名を表示したいのですが、良い方法ないですか?
とりあえず今はPage_Loadイベントで現在のメーカーCDをVisible=falseのメーカーCDと連結した
LabelからとってきてSqlCommandでExecuteReaderして別テーブルからメーカーCDをキーとしてメーカー名を取って非連結のLabelに表示しています。
動作に支障はないのですが、メーカーCDを取得するためだけにフォーム上に
Labelを1つ無駄に配置するというのがなんだかもったいないです。
いちいちメーカーCDのラベルを経由せず、直接現在のメーカーCDを取得するような方法ありませんか?

463:nobodyさん
08/04/08 20:00:15
>>461
テキストボックス内でEnter押してSubmitを発生させた場合、
最初のSubmitボタンが押されたものとブラウザが判断するので・・・

1:formのイベントでキーをとっ捕まえてEnterキーかどうか判断
2:window.event.srcElementあたりでそれを発生させたオブジェクトを取得
3:後は煮るなり焼くなり
4:クロスブラウザに注意

464:nobodyさん
08/04/08 20:38:52
>>462
どこのSIerだか偽装請負だかの新人か知らんが、
暗号解読能力が必要な質問すんな。

とりあえずMSDN読んどけ。
URLリンク(msdn2.microsoft.com)(VS.80).aspx
何遍読んでも自分でサンプル書いてもわからなければ、また相談に来い。
そのときはもっとマシな質問が出来るだろ。

ヒント:FormViewのリファレンス…特にプロパティ

465:nobodyさん
08/04/08 23:10:14
AJAXControlToolkitで質問です。コントロール郡をツールバーから貼り付けるまでは
出来るのですが、TargetControlIDの欄が真っ黒になって、設定できません。
しかもこの欄をクリックすると、VSが落ちてしまいます。
このような現象に会われた方いらっしゃいますか?
参照の解除、再設定やらツールバーのリセットしても改善しません。

466:462
08/04/09 02:59:47
>>464
おかげさまで無事取得できました。
CType(Me.FormView1.DataItem, Data.DataRowView)("取得対象フィールド名")

467:464
08/04/09 22:56:48
>>466
この場合、aspxファイル内でFormView.DataKeyNamesにメーカーCDのフィールド名をセットして
FormView.DataKey.Value(キーが複数ある場合はValues)でキーの内容を取得する方が多分スマートかな。
わざわざコードビハインド側でセットする必要もないしね。

↓のような感じ
<asp:Label ID='MakerCDLabel' runat='server' Text='<%= this.FormView1.DataKey.Value %>' />

468:462
08/04/10 01:50:33
>>464
DataKeyNamesプロパティを利用して
キーから対応する名前を取得するには
通常DataKeyNamesに主キーの列名を指定する必要がありますよね?
今回取得したいのは主キーでないので無理そうです。
ありがとうございます。

469:nobodyさん
08/04/10 16:28:59
>>461
Panel使えば簡単にできる
そういうプロパティがある

470:461
08/04/11 03:22:57
>>469
検証してきましたらうまくいきました!
こういうのが欲しかったです。
ありがとうございました。

471:眠れない
08/04/15 21:15:36
aspで携帯サイト開発するとき、改頁の機能はどうすれば、携帯画面に出ることができるのでしょうか。知っている方はいらっしゃいましたら、教えていただけないでしょうか。

472:nobodyさん
08/04/16 19:22:41
日本語でおk

473:nobodyさん
08/04/24 12:44:27
GridViewでヘッダーとか設定した後、手動でDataBindするとレイアウトが解除されて
ノーマルな状態でBindされてしまいますが、回避する方法ありますか?

474:nobodyさん
08/04/25 13:26:05
aspx側でText='<%# item[0] %>'みたくバインドしたいのですが
cs側でitemをどのように宣言して扱えばいいのでしょうか?
itemはList<string>がいいのですが

475:nobodyさん
08/04/25 13:33:58
すいません。ソッコー自己解決しました。そのままパブリック宣言でおkでした

476:nobodyさん
08/04/26 21:37:48
publicよりprotectedの方が良いんじゃねーかなー…

>>473
DataBoundイベント時に設定すればええやん

477:nobodyさん
08/05/02 13:15:08
画像をクリックした時に、セッション変数に値をセットした上で、別のページに遷移したいのですが、
ImageButtonのPostBackUrlに遷移先のページ、Clickイベントでセッション変数への値のセット
としてもうまく動きません(Clickイベントが発生しません)
こういう場合はどの様にするのがベストなのでしょうか?

478:nobodyさん
08/05/02 20:51:29
>Clickイベントが発生しません
aspxのImageButtonソースとClickイベントを書いて

479:447
08/05/03 06:14:49
>>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ページに書いています。
よろしくお願いします。

480:nobodyさん
08/05/03 13:06:20
OnClick="imgPass_Click"の記述がないよ。

<asp:ImageButton ID="imgPass" runat="server" ImageUrl="~/img/header_pass.jpg" PostBackUrl="~/passwordchange.aspx"
ToolTip="パスワードを変更します" OnClick="imgPass_Click" />

としてみて。



481:nobodyさん
08/05/03 15:54:40
作成したASP.netサイトを自マシンにインストールし
自マシンに対して外部(イントラネット内)に公開する事は出来たのですが、

自マシンで作成したASP.netサイト(Default.aspx)を
特定マシンに(IISインストール済み)配置(公開)するにはどうすれば良いでしょうか?

・WEBサイトのコピー
・WEBサイトの発行
をプロジェクトの上で右クリックして、公開したいPCを指定しても
エラー(失敗してしまう)になってしまいます。



482:nobodyさん
08/05/03 16:17:23
>>481
アクセス権

483:481
08/05/03 16:50:09
>>482
> アクセス権
レスありがとうございます。
因みにアクセス権の設定を行う方法として次のうちどれを行えば良いのでしょうか?
(初心者ですみません。)

1.公開したいサーバ上の管理ツールよりアクセス権の設定を行う。
2.公開したいサーバ上のIISマネージャより設定を行う。
3.「1.」「2.」両方の設定を行う。


484:447
08/05/04 02:05:59
>>480
どうもです。
試してみたけど動きません。
マスターページじゃないaspxファイルに貼ったImageButtonだとちゃんと動くので、
masterページに書いているのが原因なのかな?とも思ってるのですが・・・

あと、ツールボックスからコントロールを貼り付け、コントロールをダブルクリックして
出来たイベントハンドラに処理を書いていて、他はOnClickとか書いてなくてもイベントが発生するのですが、
自分で書く必要がある場合ってどういう時なんでしょうか?


485:447
08/05/05 02:15:18
>マスターページじゃないaspxファイルに貼ったImageButtonだとちゃんと動くので、
色々試した結果、これ間違ってました。
正確には、「PostBackUrlプロパティに、自ページ以外のページが指定されている場合は、OnClickイベントが動かない」でした。
OnClickイベントは、PostBackされた後にサーバーで処理される。と理解しました(間違いがあれば指摘ください)

PostBackUrlプロパティを空白にして、OnClickイベントでServer.Transferで要件を満たせました。
色々ありがとうございました。

486:nobodyさん
08/05/05 19:20:36
たまには息抜きにどうですか?
URLリンク(www.atmarkit.co.jp)
笑いながら、「あるある!」って最後まで読んでしまった。

487:nobodyさん
08/05/05 20:01:05
本当は、ASP.netをメインでやりたいのに
Windowsアプリの開発ばかりやるハメになってる。

WEB系やりてーよぉー。

.NET FrameWorkはかなり熟知してるんだが。。。

488:nobodyさん
08/05/06 02:01:30
マスターページ機能って便利だけど、パフォーマンスが落ちたりするんでしょうか?
ヘルプの記述を見ると要求後にマージするとあるので、なんかパフォーマンスが
落ちそうな気がするんです。
asp.netを使うページだけmaster機能、性的なページはダイナミックWebテンプレート、とか
使い分けた方がいいんでしょうか?

ヘルプ
「ユーザーがコンテンツ ページを要求すると、マスターページとマージされて、マスタ ページの
レイアウトとコンテンツ ページのコンテンツが結合された出力が生成されます。」


489:nobodyさん
08/05/06 18:26:19
cobolしか触ったことのない俺がとりあえずASP入門するのに最適な
サイト・書籍を列挙してくれないか?
VS2008が使えるやつで頼む。

490:nobodyさん
08/05/06 19:25:20
>>489
> cobolしか触ったことのない俺がとりあえずASP入門するのに最適な
> サイト・書籍を列挙してくれないか?
> VS2008が使えるやつで頼む。
こぼら には無理

491:nobodyさん
08/05/06 19:31:45
cobolのみならC#.netの入門書からがいいんじゃないか。
.net framework自体の知識も基礎は必要になるから。

vs2008対応のasp.netのよい本はまだ出てない。
「asp.netでいってみよう」は評判良いが発行は古く
asp.net2.0未対応。

492:nobodyさん
08/05/06 23:04:06
>>489
COBOLerならJAVAに行くべきだな。
「Java for Cobol Programmers」がおすすめ。ただし邦訳はない、全部英語。
どうしてもASP.NETなら、古本屋で
「.NETのしくみとVB.NETプログラミング入門―COBOLユーザーに捧げる」
を買って読んでから、 「基礎からのASP.NET SE必修! (プログラマの種シリーズ) 」
かな。


493:nobodyさん
08/05/07 17:37:55
すまん、ちょっと教えて欲しいのだが、
ClientのJavaScriptから、非同期でポストバックして.aspx.cs上のメソッドを実行させるか、
コールバックしてイベントを発生させることは可能?

適当なButtonを作成して、GetPostBackEventReference(this.Button1, "");でやってみたり、
PageにIPostBackEventHandlerを追加してRasePostBackEventメソッドにコールバックさせてみたり
したのだが、いずれもブラウザが再読み込みをしてしまう・・・

具体的には、TextBoxで特定キーを押下後に、TextBoxの中身を確かめて、
特定の表示をしたいんだけど、JavaScriptでOnKeyUpをキャプチャーし、押されたキーを判断し、
JSでポストバックし、再読み込みせずにaspx.cs上のメソッドを実行させたいんだけど、
そんなことって可能ですか?(´・ω・`)

494:nobodyさん
08/05/07 20:51:48
他スレで質問したところ解答が無いので
こちらでも質問させて下さい。

ASP.netで特定のサーバにhoge.aspxを配置して稼働させる方法は、
お蔭様で分かったのですが、これまではロジックを
 hoge.aspx
の中にゴリゴリ書いていたものをロジックを別クラスに分けて
コンパイルを行った上で同様の手順でサーバに配置したところ
「このアプリケーションは利用できません。」
なるエラーメッセージが表示されてしまいます。一体何が原因なのでしょうか?
(同様の手順でコンパイルしIISに配置しています。)

495:nobodyさん
08/05/07 22:06:05
>>493
昔調べた限りでは出来なかった。AjaxExtensionでも入れれば。

>>494
VisualStudio使えば?
そんなエラーメッセージだけからでは理由がつかめないから、
例外をキャッチして詳細なエラーを吐くページを作っとけ。
適当予測ではApp_Code以下に置いてないとか。
あと、別にコンパイルは必須ではない。

496:nobodyさん
08/05/07 22:24:10
>>495さん
レスありがとうございます。
普通にVisualStudioは使っています。
追加したクラスファイルは、普通にApp_Codeに入っています。

プロジェクトの上で右クリック → 新規項目の追加 → VBクラス
とするとVisual Studioの方から誘導する様なメッセージが表示されて
App_Code直下に配置されたと記憶しています。

原因はどうもIISの設定っぽ気がするのですがいまいち分かりません。
明日もう一度試してみようと思います。


497:nobodyさん
08/05/07 22:26:37 wvo/I4za
ASP.NETには直接関係ないかもしれないけど、英語版Visual Studio使ってます
もちろんMSDNが英語だけど、日本語版MSDNに置き換えることってできますか?

498:nobodyさん
08/05/07 22:34:48
>>495
そのAJAXでできないのよ・・・
再読み込みナシで、特定のメソッドを実行できればいいんだけど・・

>>496
俺はC#だから外しているかもしれんが、
作ったClassのNameSpaceをUsesしていないだけでは?

499:nobodyさん
08/05/07 22:56:49
>>498
using ***の事ですか?
VBだと imports?


500:nobodyさん
08/05/07 23:05:55
>>499
そそ、using
C#だと、普通にClassを作った限りでは、usingしなくても使えるけど。
表示されるエラーをすべて晒してみるのが手っ取り早いと思う。

501:nobodyさん
08/05/07 23:08:35
>>496
マルチ乙

502:nobodyさん
08/05/07 23:13:51
>>500
> そそ、using
> C#だと、普通にClassを作った限りでは、usingしなくても使えるけど。
> 表示されるエラーをすべて晒してみるのが手っ取り早いと思う。
それがどうもIIS側の設定っぽいエラーなんです。
エラーを晒したいのですが環境が自宅には無くて出来ません。
明日、>>500さんに教えて頂いた事を踏まえていろいろ試してみて駄目だったら
エラー内容を控えてこちらにてご質問させて頂きます。



503:nobodyさん
08/05/08 18:21:52
>>498
Remotingかwebサービスで対応できると思う

504:nobodyさん
08/05/08 19:09:51
>>503
ありがとう
なるほど、できるっぽいけど煩雑な手順を踏まないといけないのね・・

いちおうLinkButtonか、Buttonをスタイルシートで非表示状態、
または背景と同じ色で配置して、このコントロールのイベントを利用することで、
仮想的に特定のメソッドを実行させてるけど、あまり美しくない・・・

IPostBackEventHandlerを継承したユーザコントロールを作ったりすれば、
少しはキレイになるのかしら・・・

505:nobodyさん
08/05/08 22:03:15
>>504
クエリ文字列かなにかをもとに目的の処理をするaspxを作っておいて、それにXHRでリクエスト投げる
という単純な方法じゃだめなの?

506:nobodyさん
08/05/08 22:52:47
ActiveDirectory ドメイン環境で、
iisのアクセス権の設定で、基本認証にすると
ユーザ、パス入力のダイアログ出るんですけど、
クライアントPCにすでにドメインログオンしてるので、
ダイアログ出さずに認証通したいのですが、
どうやればいんでしょう…。

以前、IEだとダイアログなしで認証できてたサイトがあったので、
方法はあると思うんですけど。firefoxとかだとダイアログでてました。

507:506
08/05/08 23:25:54
一応自己解決
web.configに
<identity impersonate = "true" />
追加でできるらし。

ここでもうひとつ疑問点。
ドメイン外に設置したサーバ上のwebページで、
ドメイン内からアクセスしてきた、ログオンユーザの
ユーザ名を取得する方法ってないでしょうか??


508:nobodyさん
08/05/10 21:35:41
web.configにパラメータを設定したいのですが
web.configへのキーの追加方法が記載された、何か参考になるサイト()はありますあか?

現在、web.configに適当にキーを設定してプログラムから読み込み、コンパイルを
するとweb.configへのキーの書き方が違っているみたいでコンパイルエラーが出てしまいます。


509:nobodyさん
08/05/10 23:06:03
俺.configにパラメータを設定したいのですが、
俺.configへの彼女の追加方法が記載された、何か参考になるサイト()はありますあか?

現在、俺.configに適当にキーを設定してアーッ!

510:nobodyさん
08/05/10 23:54:33
URLリンク(msdn.microsoft.com)(VS.80).aspx

511:nobodyさん
08/05/11 00:10:46
>>510
さんくす

512:ASP.net初心者です男
08/05/12 22:25:01
画面を上下に分割して(つまりFrameで上下に20% / 50%)画面上部に社員番号を入力し
「検索」ボタンを押すと、画面下部の詳細画面に詳細結果を出力するにはどうすれば良いでしょうか?
ベテランの人お願いします。

Default.aspx
SearchTop.aspx
Result.aspx

[ Default.aspx ]
*****************************************************
[ SearchTop.aspx ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

社員番号  ■■■■■■    [ 検索 ]

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ Result.aspx ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

社員番号  1234
社員名   とまお 好き男

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

*****************************************************






513:nobodyさん
08/05/12 22:27:15
Frameヤメレ

514:nobodyさん
08/05/12 22:43:30
MasterPageは使いたく無いのです。
確か何かFrameに対するtargetを指定して実行する方法があったと思うのですが。
お願いします。


515:nobodyさん
08/05/12 23:16:45
>>514
今どきframe使うのがいるのに驚いた。
frameは非推奨タグなの知らないの?

なんでMasterPageが出てくるんだ?
MasterPageは便利な機能だが必須ではない。

516:nobodyさん
08/05/12 23:56:21
>>515
ええっホントですか?如何せん、ASP.net初心者ですので。
始めて知りました。因みに推奨されている方法にはどんな物がありますか?


517:nobodyさん
08/05/12 23:57:25
AjaxとClientCallBack関数の違いってあるんですか?
そもそも両者JavaScriptをか介しますが。


518:nobodyさん
08/05/13 00:56:57
>>515
frameの件は.NET関係ない。残念ながら常識のレベル。
なお、.aspxにDB接続とかのロジック書いたりもやめるように。

で、一つの方法としてだがDefault.aspxにTextBoxとButtonとGridView、
SQLDataSourceを置いてバインドしてやるのが一番楽じゃね。
初回表示時にGridViewを見せたくないならvisible = falseするなり、
検索ボタン押下のタイミングでDataSourceとパラメータをセットして、
DataBindしてやればいいと思う。
検索窓をわざわざフレーム切りたいってことは、使い回しをしたいということかな。
もしそうなら、セットでユーザーコントロールにでもしておけばOK。
意味不明なら初心者本でもどうぞ。

>>517
方法論に対する実装の一つ。
つか、AJAX Extensionのように.NET側から
動的にコントロールを更新できないので、俺の用途ではイラネ。

519:nobodyさん
08/05/13 00:57:25
アンカーミス
>>515 ×
>>516

520:nobodyさん
08/05/13 01:07:39
>方法論に対する実装の一つ。
なんか違うな…。スマン。
正確な用語を使える程のレベルじゃないのでこのまま逃げます。

521:nobodyさん
08/05/13 01:46:15
>>518
> 検索窓をわざわざフレーム切りたいってことは、使い回しをしたいということかな。
使いまわしたいって分けではないのですが、あえて検索結果を別フレームに表示
する事がDataGrid ・ GridView双方で出来るのか試してみたいのです?

1ページで行う事は普通に出来ます。
敢えて別フレームに結果を表示したいのです。


522:nobodyさん
08/05/13 05:21:32
>518
>.aspxにDB接続とかのロジック書いたりもやめるように。

これはどういう意味ですか?
DB接続のコードは書籍なんかでもaspxファイルに書かれて
いるようですが、なにか問題はあるんですか?

523:nobodyさん
08/05/13 05:27:32
>>521
フレーム使ってファイルを複数に分断するデメリットが大きい。
フレームで作るのは10年前の作り方という気がする。
商用Webサイトでフレームつかってるところがほとんど
なくなったの考えてみて。

まぁDataGrid使ってみれば分かるよ
結果のソート、ページングなどもできて便利。


524:nobodyさん
08/05/13 10:28:06
521じゃないけど
でも実際はSEOの関係でフレーム非推奨になったわけで、主な用途はイントラなんで
代替となる機能がサクッと実現できないのが困る。

525:nobodyさん
08/05/13 23:26:50
まぁ確かにそれもあるんだけど、それを言ってしまうと、
VB6の方が何でも出来てよくなかった?とかその辺の話にな(ry

526:nobodyさん
08/05/14 21:34:17
>>522
クイックチュートリアル読んで、
コードビハインドの意味を考察してみるといいよ。

MS謹製の書籍でも.aspxにビジネスロジック書いてたりすることがあるが、
説明しやすくためであるのと実運用で使うのは意味が異なる。

527:nobodyさん
08/05/15 00:50:53
>>522
できるよ。
以上。
↓次の方どうぞ

528:nobodyさん
08/05/15 10:34:44
コードとビジネスロジックの分離。
3階層 とか ObjectDataSource とか でググれ

つづきはwebで・・・

529:nobodyさん
08/05/15 21:21:11
現在VS2005で勉強がてらクライアントコールバックを勉強しているのですが、
これって基本的な動きはAjaxと同じですよね?

あとパフォーマンスの面で、

・ASP.net Ajaxをインストールして使用
・クライアントコールバックで代用


どちらの方が良いでしょうか?

530:nobodyさん
08/05/16 10:25:05
・ASP.net Ajaxをインストールして使用

531:nobodyさん
08/05/16 23:17:17
FormViewのHeaderTemplateとItemTemplateにそれぞれラベルなどをおく。
Headerの方のラベルにFormViewに関連付けたSQLDataSourceコントロールからバインド。
ItemTemplateの方のラベルに別のSQLDataSourceコントロールの値を設定したい。

FindControlでFormView.Row.Findcontrol(///)でラベルを参照して、設定してやろうとすると
うまく設定できたり、逆にRowが見つからない(=オブジェクト参照がry)のエラーでとまったりと
メチャクチャな動きをしやがる。

大体100回トライしてみて90回くらい失敗、残り10回くらい成功する。
ソースは全く書き換えてない。

似たような経験の片いらっしゃいません?

532:nobodyさん
08/05/16 23:49:09
毎回同じデータが取られてる?
データ取りの処理に問題あるのでは?

533:nobodyさん
08/05/17 00:05:07
>>530
ASP.net Ajaxをどうしてもインストールしてはダメな環境です。

因みに自分でASP.net+Ajaxの原始的な方法でAjaxを実装したのですが
飛ばし先のhoge.aspxのPage_Loadの中で
  Response.Write("呼出元のhtmlページに返す文字");
と記述すると呼出元のページではResponse.RequestTextには
<!Document*** という余計な文字列も返されてしまうのですが
何か良い方法はありますか?
私は、JavaScriptで次の通り「」の中の部分のみを切り取って出力
しています。
そもそも、この様な方法でも問題無いのでしょうか?

「 呼出元のhtmlページに返す文字 」 <!Document ***


534:nobodyさん
08/05/17 00:20:53
Response.Write("呼出元のhtmlページに返す文字");
Response.End();

535:nobodyさん
08/05/17 00:28:21
>>534

試してみます!!

あざぁーっっっっっっっす!!










536:nobodyさん
08/05/17 06:22:24
>>514
自分も昔ここで同じ質問したことあるんでそのときの経験談書きますね。
まぁ既に出てる話ですので参考程度に。

1.フレームはとにかく推奨されない
2.フレームなしに書き直したところ意外に利便性は変わらない
3.バグが発生したとき対応にすごく困る状況になりやすい

2と3が主な理由ですね。


537:nobodyさん
08/05/17 13:25:15 71sy1o27
以下の様なことをやろうとしています。

①リクエスト 
→セッション新規作成、セッションIDの名前のファイル作成

②リクエスト
→セッションがすでに存在すれば、
 セッションIDの名前のファイルに情報を書き込み、サービスにも利用

③セッションタイムアウトなどによりセッション破棄
→セッションIDの名前のファイルを削除

で、③をどのように実装すればよいかで困っています。

3のセッション破棄を検知したいのですが、
global.asaxのSession_Endでは
破棄されるセッションIDが取得できないようですし。

何かいい方法ありませんか?

538:nobodyさん
08/05/17 19:55:36
自分の目が節穴で無ければ、this.Sessionで見えてるこのオブジェクトはなんなのだろう。

539:nobodyさん
08/05/18 23:57:40
そうやって決めうちで削除したり、何かを作ったりするのはやめたほうがいい
ClassにPage.Sessionを渡して、あとはClassに処理させる。

Classでは、Page.Sessionのindexをなめて作成したファイルと比較し、
新しいSessionObjectがあればファイル作成、
なければ削除という処理を行う。
これをページを作成するごとに繰り返せばok。


540:nobodyさん
08/05/19 00:20:18
>>536
あざーす。参考にさせてもらいます。

541:Ajax 1
08/05/20 21:54:07
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
08/05/20 21:55:07
[ web.config ]
<system.web>
<httpHandlers>
<!-- Register the ajax handler -->
<add verb="POST,GET" path="ajax_/*.ashx"
type="Ajax.PageHandlerFactory, Ajax" />
</httpHandlers>
  ・・・
[ エラー ]
Microsoft _JScript 実行時エラー:'AjaxXML'は宣言されていません。

543:nobodyさん
08/05/24 00:42:12
これまでWindowsアプリをメインに作って来たのですが、私一人しかいない現場で
私がASP.netアプリを作る羽目になりました。

作業内容として只単純に、データの照会(取引の一覧を取得し画面に表示するだけ)
を行うだけなのですが、私の作成した画面のレイアウトは
 ・Label
 ・Table
コントロールを***.aspx画面に張りつけてその項目に値をセットしているだけなのですが
この方針って間違ってますか?

スタイルシートの知識とかは無いので.NETのデザイン画面で適当にデザインをして
(スタイルシートなんて使わず)ドラッグしてピヨーッと伸ばして行・列幅の調節
をしています。(html / StyleSheet / JavaScriptについてはアマチュアレベル)

ASP.net(.NetFrameWorkについては結構詳しいです。)に関して実務経験豊富な
ベテランの方如何でしょうか?ご意見を聞かせて下さい。


544:nobodyさん
08/05/24 01:18:22
>>543
一覧表示に適したコントロールならGridViewがある。
GridViewは表示対象をDataSetまたはDataTableオブジェクトとして扱って
バインドさせるだけでおk

545:nobodyさん
08/05/24 12:46:33
と、言うかその程度なら別にASP.NETとWindowsFormで違いないだろ。

546:nobodyさん
08/05/24 12:49:50 taKpBKe5
GridViewでヘッダの表示を固定することってできますか?
エクセルの「ウィンドウ枠の固定」みたなやつで、沢山の行があって
下にスクロールしてもヘッダだけは画面上に表示されるようにしたいのです。
やり方を知っていたら教えてください。

547:nobodyさん
08/05/24 13:42:15
CSSで出来る。ググレ

548:nobodyさん
08/05/24 18:41:07
上でフレームの話が出てたけど、フレームの代わりにdivでスクロール表示させて表示したいけど、
ウィンドウいっぱいに表示するのが、IE6だとうまくできません。参考になるサイトありませんか。

549:nobodyさん
08/05/25 16:09:24
>>548
>>228と同じ内容なら>>229
「Repeater」コントロールで<div style="float:left;">

550:nobodyさん
08/05/25 19:56:25 BMpN20e7
エクセルとかPDFをサーバー側で作るとして、それをダウンロード画面に表示するのはどやってるの?
「保存」とか「開く」とか出る画面を出したいけど

551:nobodyさん
08/05/26 00:08:03
>>550
Response.WriteFileで本当ならOK。
だけどちょっと大きなファイルを扱おうとするとエラーを吐きやがります。
なので下記ページのサンプルコードのような書き方をすれば良いかと。
URLリンク(support.microsoft.com)


552:550
08/05/26 21:04:10 4YPDbsMz
>>551
あざーす。
ちなみに、これですと物理ディスク上のファイルをResponse.OutputStream.Write()で書き込みしてますが、
物理ディスク上のファイルでないと無理でしょか?たとえば、エクセルなどは動的に作ったらディスクに保存せず
そのままクライアントに流したいのですけど

553:550
08/05/26 23:03:08 4YPDbsMz
自己レスです。
.NETではファイル生成しなければ無理みたいですね。失礼しました。

554:nobodyさん
08/05/26 23:20:56
釣りかマジかどっちだ??


555:550
08/05/26 23:30:41
え?
マジでしょう。スプレッド.NETとかっての使うのは無しの場合では、無理っぽい(らしい)けど、方法ありますか?

556:nobodyさん
08/05/26 23:50:17
言ってる意味多分わかった気もするけど>>552の日本語が悪いだろ


557:550
08/05/27 00:51:48
すいませんです^^;新米なので

558:551
08/05/27 01:25:43
>>550
Excelデータのバイト配列が作れる状況ならファイル生成なんて不要。
要はResponse.OutputStreamに必要なデータをWriteできれば良し。
そのデータは当然ファイルから作っても良いし動的に作っても良いわけで。

自分の経験としてはウェブサービス経由で取得したExcelデータを
ウェブサーバ上ではファイルを作成せずに
そのままクライアントに返してました。

ただ,どうやってExcelデータを動的に作成するのか知らんけど
バイト配列を作成する手っ取り早い方法として
一旦保存してFileStreamを読むことになることはあるかもしれん。

559:nobodyさん
08/05/27 11:19:57
GridViewの内側の罫線はデザイナから変更できないのでしょうか?
BorderColorプロパティでは外側しか変更されないのですが…

560:nobodyさん
08/05/27 11:34:28
質問です。
FormViewをHTML展開したときに、デフォルトでは
tableが構築されるけど、これを<p>とか<div>にしたい場合は
どこをいじればいいのでしょう?


>>559
GridViewのGridLinesプロパティとか?

561:559
08/05/28 10:28:14
>>560
ありがとうございます。
解決しました。

562:nobodyさん
08/05/28 16:58:40 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>等と直接記述するのと比べて何か意味があるのでしょうか?
馬鹿っぽ質問で申し訳ないですがよろしくお願いします。

563:nobodyさん
08/05/28 17:09:52
>>562
<asp:....>の部分はIISで適当なHTMLタグに置き換えられて
ブラウザに送信される。
<aspの部分をそのまま送ったらブラウザが理解できない。

asp.netはブラウザの種類を判別して、最適なタグに
置き換えてくれるのだ。

564:562
08/05/28 17:32:16 BjXoHKSe
>asp.netはブラウザの種類を判別して、最適なタグに
>置き換えてくれるのだ。
そうだったんですかー
納得できました。どうもありがとうございます。

565:nobodyさん
08/05/28 21:32:20 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からだと、そのへんの考え方を理解するのに少し時間がかかるかも

566:nobodyさん
08/05/28 21:36:52
コニツワ!

ASP.NETに、PortalAPI(JSR168風な)ってあるん?

567:562
08/05/28 22:04:30
>>565
ご丁寧にどうもありがとうございます。
phpユーザの為に似たような書き方もできるようにしてるけど推奨されないということですかねー
少し考えていた感じとは違うので時間かかりそうですが、
1からやるつもりで頑張っていきたいと思います。

568:nobodyさん
08/05/29 00:51:41
とどのつまり、オブジェクト指向ってことです

569:nobodyさん
08/05/31 03:24:26
DBのフィールドを見て処理を分岐させるために、
SqlCommand.ExecuteScalar()で値を取ってきているのですが
フィールドがNULLの場合もあります。
こういう場合はどのような型で結果を受けるべきなのでしょうか?
Nullable(Of Integer)では落ちました。
DBNULLとVBのNothingは違うということなのかな…。

今はとりあえずObject型で受けてから、IsDBNull()で聞いて分岐させてます。

570:nobodyさん
08/05/31 11:45:42
>>569
DBNull.Value

571:nobodyさん
08/05/31 17:24:10
ありがとうございます。

572:nobodyさん
08/06/01 18:04:07
排他制御について質問です。
一覧表示->更新処理が行える画面なのですが、
ユーザーAとBが同時に一覧を取得して、先にAがあるレコードを更新した場合
Bはもう一度一覧を取得し直さないと更新が行えないようにしたいです。

現在はSqlCommandのTransactionを利用して以下のような流れです。
1.更新前処理で更新対象行のレコードから、全項目を取得
2.取得した項目をキーとしてSELECT実行
3.存在ありならば更新がかかっていないとみなしてUPDATE->Commit
 存在なしならば他から更新されたとみなしてRollback->更新を促すメッセージ表示

GridViewのUpdateメソッド、およびテーブルにDateTimeの列を追加等が
出来ない環境なのですが、他に良い案や定石などありますでしょうか。
なお、同時更新は滅多に起こることのない環境です。

573:nobodyさん
08/06/01 21:17:02
>>572
レコードにバージョンを表すフィールド(TimeStamp, 最終更新日時, あるいはただの連番)を追加するか、
全フィールドを比較するか以外に、オプティミスティック同時実行制御を行う方法なんてないんじゃない?

GridViewのUpdateメソッドも、デフォルト状態では結局のところ全フィールドの比較を内部的に実行していたと思う

どうしてもそのテーブルを変更できないなら、別テーブルに同じ主キー貼ったものを切り出して、バージョンを表すフィールドを追加して、更新系の画面では元のテーブルとバージョンテーブルをチェック&更新するようにするとか

574:nobodyさん
08/06/02 00:00:19
SELECTで取得→ハッシュで比較→COMMIT/ROLLBACK

575:572
08/06/02 01:51:03
>>573,574
回答ありがとうございます。別テーブルに切り出すのは良い案かもしれません。
今はSqlCacheDependencyを利用した変更通知を探っています。
MSDN見ながらのテストでは変更通知が連続してきたり、
逆に来なかったりでズタボロですが…。

576:nobodyさん
08/06/02 03:34:54
おいおいどこに行く気だよ
前列比較のがましじゃないか?


577:nobodyさん
08/06/02 10:07:07 kZgOWgo+
ブラウザ上でユーザに編集はさせたくないけど、載ってる値をpostしたときに
サーバへ飛ばすTextBoxってどのような設定にすればいいですか?
ReadOnlyをTrueにしたら値がサーバにやってこなかったです。

都合でLabelは使えません(JavaScriptでも編集したいため)。
別途hiddenフィールドを作るしかないですかね。。。

578:nobodyさん
08/06/03 16:11:36
ASP.NET 3.5 のレンタルサーバって国内はまだ無いですかね?

579:nobodyさん
08/06/03 17:39:51
自宅で開業して人柱erになる

580:nobodyさん
08/06/04 00:19:04
>>577
エスパーじゃないので目的がわからないけど,
クライアントから送信されるデータを信用しろというのは無理な相談だし,
普通にセッション変数を利用すれば解決する問題だったりしない?

581:580
08/06/04 00:22:51
JavaScriptの文字が見えない馬鹿=自分。

582:nobodyさん
08/06/04 01:13:59
>>580
てことはJavaScriptで使えれば、Labelでいいんじゃね
var elm = document.getElementById("<%=Me.Label1.ClientID%>");

583:nobodyさん
08/06/04 05:17:43
ASP.NETって初心者には敷居高いですよねー
最悪でもVisualBasic使いこなせるレベルでないと、入れない気が。

ココから始めると結構分かりやすいぞ、みたいな、超初心者でも
コツコツ学んでいける方法や入口を教えて頂けると助かります。
宜しくお願い致します。

584:nobodyさん
08/06/04 05:57:30
>>583
GUIでなんでも済ませられるし(細かいところはソース直書きだけど)、かなり楽だと思うよ
でもイベントとかプロパティとかVB扱ったことないと、戸惑うことが多いかも

いきなりASP.NETをするよりVB2005とか2008の参考書買って勉強した方がいいかも

585:nobodyさん
08/06/04 18:23:30
>>583
パソコン教科書 Microsoft Visual Web Developer 2005 Express Edition入門
がオヌヌメって書こうと持ったら、すでに2008のがでてますね。
2005の方しか内容知らないけど、初心者のオイラにはすんげー役に立ったよ。

586:583
08/06/05 00:38:53 HpXjKLmr
>>584
>>585
有難うございます。
「10日でおぼえるASP.NET 2.0」って本を買ってみたんですが、
本を見ずにもう一度同じ様に書けるか、となると、もうさっぱりorz

コツコツやってみます。

587:nobodyさん
08/06/05 14:01:10
VS2008std ターゲット.net3.5で開発しています。

新しいプロジェクトで 「ASP.NET Web アプリケーション」を作成したのですが、

デザインモードに切り替え、ツールボックスからLabelをD&Dしたのですが
ドロップできません。(ドロップ無効のカーソルに変わる)
ソースに直に記述 <asp:Label~ してもデザイナ上ではエラーになります。
しかし実行は可能でブラウザでも表示されている。

ファイル→新規作成→Webサイトの「ASP.NET Web サイト」でプロジェクト?を作成すると
Labelなどの標準コントロールがドロップできます。

「Web アプリケーション」プロジェクトでは標準コントロールは使えないのでしょうか?

588:nobodyさん
08/06/05 14:19:50
>>587
俺の所では新しいプロジェクトから
ASP.NET Webアプリケーション
選んでも問題なくラベル貼れるけど。


589:nobodyさん
08/06/05 14:59:51
>>588
えぇっ!
じゃぁ環境の問題なのか・・・

なにか悪いことしたかなぁ
VS2005も共存してるのがまずいのかなぁ

とりあえず再インストールしてみます。

590:587
08/06/05 16:04:17
原因がわかりました。

WebApplicationを作成したフォルダ名がまずかったみたいです。
C#Testフォルダに作成するとドロップできないみたいです。
#という文字がいけないのかもしれません。

本当にありがとうございました。

591:nobodyさん
08/06/05 16:32:40
>>582
ASPのラベルってHTMLに展開されると
ただのインライン要素(<span>)とかになっちゃうじゃないですか。

その場合、JavaScriptでテキストを変更できますか?
InnerHTMLとか試してみたんですが、IEはできるけどFirefoxでは
できなかったりで、結局諦めちゃったんですけど。

592:nobodyさん
08/06/05 17:47:11
css設定して、これでFireFoxでもおkwww って思ってたら
Mac標準のSafariで全然駄目・・・ menuコントロールつかえねー orz

593:nobodyさん
08/06/06 13:19:55
>>591
DOM。

594:nobodyさん
08/06/06 18:33:09
郵便番号を入れると住所が途中まで(市町村くらいまで)出てくるような
ユーザ登録ページがよくありますが、あれは何らかのパッケージプログラム
のようなものを利用しているのでしょうか?

それともSQLサーバーとかに全部の郵便番号と住所を取り込んでいるのでしょうか?

595:nobodyさん
08/06/06 19:52:40
大抵、郵便局が作ってくれるCSVをまんまDBに取り込んでるだけじゃないの?

596:nobodyさん
08/06/07 00:05:51
メール配信システムを作っているんだけど。配信先リストは登録画面で配信情報を入力するときfileUploadコントロールを使いCSVで読み込む。
画面は 登録画面→確認画面→登録というようにして画面はMultiViewを使いたい。
MultiViewを使えば画面間の情報の受け渡しは楽なのだがfileUploadで読み込んだリストはどうやって保持するか、途中で処理をやめてもゴミデータが残らない方法ってない?


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch