【質問】ASP.NETスレ Part3【議論】

このエントリーをはてなブックマークに追加
933nobodyさん:2007/07/11(水) 00:21:44 ID:???
>>929
PHP+MySQLもASP.net + SqlServerもあくまで手段で
しかないんだから、書き方は違えど、どの様な方法で
実現するかの部分は同じだと思うが。

で、ライブチャットを実現するためのサイトは分からん。
ライブチャットを実現するための一つ一つの技法は説明
している所はあるだろうけど。

どの様なライブチャットを想定しているのか分からんが

・メッセージ用テキストボックスの情報をDBへ蓄積
・DBから情報を取得しメッセージの表示
・Ajaxなりフレームなりでメッセージの表示部分を更新
・HTMLレベルで動画ストリーミング

上二つはASP.NETの範疇だが他は仕様による。
まず、少なからずASP.NETだろうがPHPだろうが実現する
方法を理解すべきだと思う。

>>930
とりあえず、onclientclickの最後に「return false」
つうか、それそもそもASP.NETの質問ではなくjavascriptの
質問だと理解してるか?
とりあえず「return false」
934nobodyさん:2007/07/11(水) 00:23:58 ID:???
>>930
ミスった。
問題があれば最後に「return false」
問題がなけば最後に「return true」
935nobodyさん:2007/07/11(水) 00:28:34 ID:???
>>933
いつもありがとうございます。
勉強になります。
936929:2007/07/11(水) 00:47:01 ID:???
>>933
私も勉強になりました。ありがとうございます。
まず、簡単なWEBサイトにてHTMLレベルでの動画ストリーミング
出来るか試してみたいと思います。
937nobodyさん:2007/07/11(水) 10:12:44 ID:???
GridViewで出力されるTABLEタグ内のTDタグやボタンタグ1つ1つにIDを付けたいのですが、どうやって付けるのでしょうか?
IDはユニークにしたいので、名称+行数のような名前が望ましいのですが。
938nobodyさん:2007/07/11(水) 12:29:53 ID:???
>>937
<input id="aaa" type="button" runat="server">
の様にすれば最終的なHTMLに
id="ctl00_CPH1_GridView_ctl02_aaa"
id="ctl00_CPH1_GridView_ctl03_aaa"
となる。
で、tdはこの方法では無理なので、<span>なりASP.NETの
ラベルなり置いてそいつのIDを拾って。

つうか、ここら辺で迷うならHTMLタグでは無くasp.net
のコントロールを利用した方がいいよ。

runat="server"を利用したくなければGridViewのRowDataBound
辺りで各行、各セルが取得できるのでHTMLだろうがJavascriptだ
ろうが好きなように制御すると良い。
939nobodyさん:2007/07/11(水) 19:04:07 ID:Cai09Rxb
DBの内容をDataTableで取得し、その件数分ループして
ループ内でクラスインスタンス化し、ListコレクションにAddする
ということをやりたいのですが、DataTableを件数分ループするという
一般的なやり方はどうすればよいでしょうか?
940nobodyさん:2007/07/11(水) 20:21:17 ID:???
>>939
一般的かは分からんが
foreach (DataRow row in table.Rows)
941nobodyさん:2007/07/11(水) 20:26:04 ID:???
GridViewのFooterTextに値を入れても何も表示されないんだが、これはどこに出力されるの?

<asp:GridView ID="grid1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField HeaderText="name" DataField="name" FooterText="aaa" />
</Columns>
</asp:GridView>
942nobodyさん:2007/07/11(水) 20:37:46 ID:???
>>941
<asp:GridView ShowFooter="True"
943nobodyさん:2007/07/11(水) 20:42:45 ID:???
>>942
ありがとうございますm(_ _)m

GridViewで値の合計をフッターみたいに表現したいのですが、どうすれば良いですか?
↓TOTALの部分のように。一番下はセルの連結もある。。
−−−−−−−−−−−−−−−
| A | 1  | 30 |
−−−−−−−−−−−−−−−
| B | 4  | 40 |
−−−−−−−−−−−−−−−
|  TOTAL | 70 |
−−−−−−−−−−−−−−−


944nobodyさん:2007/07/11(水) 21:12:59 ID:???
>>943
RowDataBoundで
if e.Row.RowType = DataControlRowType.DataRow then
aaa = e.Row.Cellsの合計求める
elseIf e.Row.RowType = DataControlRowType.Footer Then
e.Row.Cells(0).Visible = False
e.Row.Cells(1).Attributes("colspan") = 2
e.Row.Cells(1).Text = "TOTAL"
e.Row.Cells(2).Text = aaa
End If
945nobodyさん:2007/07/11(水) 22:25:55 ID:???
long型の変数aをカンマ区切りにしてToString()で出力したいのですが
long型にカンマ編集メソッドってないのでしょうか?
標準関数でそういうものはありますか?
946nobodyさん:2007/07/11(水) 22:38:26 ID:???
>>945
ToString("#,##0")

質問の前にMSDNでまず調べる事をお薦めします。
947nobodyさん:2007/07/12(木) 01:13:43 ID:???
Page_Load時に!IsPostBackの時のみGridViewのDataSourceをセットしGridViewで値を表示しているのですが
PostBack時にDataSourceがNULLになってしまいます。
DataSourceの値は保持されないのでしょうか?
948nobodyさん:2007/07/12(木) 01:51:04 ID:???
ぬるぽ
949nobodyさん:2007/07/12(木) 09:10:05 ID:???
>>947
普通はViewStateで保持されるので
PostBackで復元されるはずです。
950nobodyさん:2007/07/12(木) 12:08:33 ID:1aEUvUSk
<label id="test" runat="server"></label>
サーバコントロールに対しJavaScriptでinnerTextで値をセットしても、ポストバックすると値が消えてしまうのは何故なのでしょうか?ViewStateはONにしています。

document.all.test.innerText = "TEST";

JavaScriptでTESTと値をセットしポストバックするとPage_Loadイベントではもう
document.all.test.innerTextが""となっている。
951nobodyさん:2007/07/12(木) 12:55:08 ID:???
>>950
ViewStateの基本を説明するのは面倒なので
下で勉強してください。
http://ja.gotdotnet.com/quickstart/aspplus/
952nobodyさん:2007/07/12(木) 13:10:48 ID:???
>>803
2.REMOTE_HOST
 (IISの設定が必要。デフォルト設定ではネットワーク負荷を考慮してるのでREMOTE_ADDRと同じ値が返る。)

この部分で私も詰まってしまいました。
http://blog.asura.co.jp/takehara/bd824dccefef475888eb08fc6e93ce44/entry.aspx

↑を参考にし、

http://support.microsoft.com/default.aspx?scid=kb;ja;245574

↑をやってみようとしたのですが、いかんせん知識がなく、IISの核でもあるのでヘタに触るとイっちゃいそうで(;ω;)

この設定を1フォルダ(1サイト)のみに適応したいのですが、わかりやすい手順でご教授お願いできますか?
953nobodyさん:2007/07/12(木) 13:49:08 ID:???
>>952
http://support.microsoft.com/default.aspx?scid=kb;ja;245574の
例 2 - 個々のサイトに対して逆引き参照を有効にするに書いてある通りです。

サイトの番号調べて
cscript adsutil.vbs set /w3svc/"ここにサイト番号"/ROOT/EnableReverseDNS "TRUE"

ってか、
理解しているのか分らんが上の指定はIISが常に
REMOTE_HOSTをDNSに問い合わせると言う設定なわけだから、
必要な時に自分で求めるならばプログラムでIPアドレスをホスト名
に変換したっていいんだぞ。

予想で↓で事足りる程度の問題じゃないの。
System.Net.Dns.GetHostEntry(Request.ServerVariables("REMOTE_HOST").ToString).HostName
954nobodyさん:2007/07/12(木) 14:23:59 ID:???
>>953
レスありがとうございました。私は2003で開発してますので、

>予想で↓で事足りる程度の問題じゃないの。
>System.Net.Dns.GetHostEntry(Request.ServerVariables("REMOTE_HOST").ToString).HostName

↑はできませんでしたが、ヒントをいただいて、
System.Net.Dns.GetHostByAddress(Request.ServerVariables("REMOTE_HOST").ToString).HostName
としてみました。結果的には同じでしょうか?
955nobodyさん:2007/07/12(木) 14:54:53 ID:???
>>954
結果を聞くよりも、それでうまくいったのかい?
結果的には同じかはMSDNを見た方がいいよ。

956nobodyさん:2007/07/12(木) 16:17:36 ID:???
>>954
"122.***.65.204" ← Request.ServerVariables("REMOTE_HOST").ToString
"p2204-ipbf***funabasi.chiba.ocn.ne.jp" ← System.Net.Dns.GetHostByAddress(Request.ServerVariables("REMOTE_HOST").ToString).HostName

一部伏せましたが、結果は大丈夫です。ご教授ありがとうございました。
957nobodyさん:2007/07/12(木) 22:49:45 ID:FMGVpLzG
PostBackイベントでサーバーサイド処理するのと
javascriptでsubmit()してサーバサイドで処理するので何か違いはあるの?
958nobodyさん:2007/07/12(木) 23:54:39 ID:???
>>951
ViewState以前の問題
959nobodyさん:2007/07/13(金) 09:51:00 ID:???
>>957
質問の意味が不明
960nobodyさん:2007/07/13(金) 21:55:02 ID:???
そもそもjavascriptはクライアントサイドであって、つまり・・・↓(任せた)
961nobodyさん:2007/07/14(土) 02:12:14 ID:???
有名なサイトでasp.netで作られたものってある?
962nobodyさん:2007/07/14(土) 02:49:21 ID:???
そりゃあるだろ。
963nobodyさん:2007/07/14(土) 11:18:41 ID:???
>>962
10個くらいあげてみて。
964nobodyさん:2007/07/14(土) 16:37:02 ID:iGAbpPzR
ページ間でイベントをやり取りする定番パターンとかってありますか?

同一サイト上のページ「メイン」をIEで見ていて、
その中のリンクをクリックすると「サブ」が別ウインドウでポップアップして「サブ」を閉じたときに「メイン」の画面を更新したい。
ってことをやりたいです。
965nobodyさん:2007/07/14(土) 17:40:24 ID:???
>>964
Web全体として別ウィンドウが立ち上がる仕組みは
避けられつつあるのでASP.NETにそう言った機能は無い。

今後はAjaxなどで代替される事が予測されるかな。
http://ajax.asp.net/ajaxtoolkit/ModalPopup/ModalPopup.aspx

んじゃ、
どうしたら良いかと言うと、別にASP.NETも最終的にはHTML+Javascriptが
クライアントに送られるわけだから、javascriptのwindow.open()のリンクで子ウィンドウを
開いて子ウィンドウからwindow.openerで親を制御する以前と変わらぬやり方で行えばよい。
966nobodyさん:2007/07/14(土) 18:11:10 ID:???
ASP.NETってAPサーバがIISじゃないとダメですよね。
IISってOSがWindowsですよね。
そういう制約が無ければもっと普及してると思う。
.net・C#はJSPやJavaよりも開発しやすい。
言語的にもJavaにひけを取らない。
もっと普及してくれればエンジニアも増えるし、それによって参考書や
色んなノウハウも出てくるだろうし。
967nobodyさん:2007/07/14(土) 19:00:01 ID:???
>>966
一応、ASP.NETのマネージコードをApacheで動かすための
mod_monoがある。

英語のサイトで調査できる。
webの基本を知っていてASP.NETの既存のパーツで
トラぶったら代替案を考えられる。
mono自体の動向を常に追える。

とかが必要なので、気軽にとは行かないが。
個人的に利用しているが、何も知らない人がmonoに時間を
使うならJavaやPHPとかを覚えた方がいいけどね。
968nobodyさん:2007/07/14(土) 19:49:42 ID:???
969nobodyさん:2007/07/14(土) 22:33:34 ID:HhSnD+8F
GridViewでDBの値をそのまま出力するのではなく
値が1だったら○
値が0だったら×
GridViewでそういうことは可能?
970nobodyさん:2007/07/14(土) 23:32:36 ID:???
〇▼↓
などの記号は海外パソコンからでもちゃんと表示されるの?
これらがブラウザに出力されると日本語フォントのインストーラが立ち上がるとか?
971nobodyさん:2007/07/14(土) 23:46:40 ID:???
if文でいけるんじゃね?
972nobodyさん:2007/07/15(日) 00:17:39 ID:???
>>969

GridView_RowDataBound
if e.Row.RowType = DataControlRowType.DataRow then
e.Row.Cells(1).Text = ”○”とか"×"とか

もしくは

BoundFieldをTemplateに変換して
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# IIF(Eval("値").ToString="1","○","×") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
973nobodyさん:2007/07/15(日) 01:23:13 ID:???
グラフの表示はどのような機能を使って実現すれば良いでしょうか?
グラフ表示用のコントロールはありますか?
今はSVGビューアを使ってJavsScriptで自作のグラフライブラリを使って
グラフを表示しているのですが、IE7だとグラフの一部が表示されなかったりします。
これはIE7にはSVGが対応していない為のようです。
このグラフは、かなり綺麗に表示され(Yahooのアンケート結果みいな綺麗なグラフ)気に入っているのですが
今後IE7が全社展開した場合、グラフが表示されないという事態になるため
グラフライブラリをSVGビューアを使わないものにしたいのですが、ASP.NETのコントロールで
何か良いものはありますでしょうか?
最悪VMLとかっすかね。。
974nobodyさん:2007/07/15(日) 02:28:52 ID:???
>>970
英語版とかでもUnicodeならデフォルトで
フォント持ってるので大丈夫(だったと思う)。
OSとかブラウザとかバージョンとかを全て
含めれば単純な話ではないだろうけど。

>>973
なんか状況が良く分からん。
AdobeのSVGビューアにJavsScriptを使って表示していて
(IE7以外のブラウザなら表示できるのに)IE7はSVGビューアを
使ってもグラフの一部が表示されなかったって事か?

表示をSVGビューアに任せているならSVGビューアの問題の
気がするが。
975nobodyさん:2007/07/15(日) 11:02:36 ID:???
>>974
SVGビューアの問題なのでどしようも無い状態です。

VS2005とかでグラフを簡単に表示できるコントロールとかあれば
利用したいのですが、皆さんは円グラフとか折れ線グラフの表示は
どのようにされているのでしょうか?
グレープシティのツール買ってるとか?
976nobodyさん:2007/07/15(日) 11:48:45 ID:???
>>975
普通はブラウザを意識せずに利用するためにFlash・Javaサーブレット・画像が普通。
大抵のグラフ表示商用ツールも上記だと思うから自作も出来る。
ブラウザ限定とか制限ありでActiveX・SVGあたり。

で、
今のSVGを捨てるつもりなのか、Yahooのアンケート結果見たいにしたいのか、
画像でもいいのか、分からんのでなんとも言えんが
「SVGを表示するSWF」とかあったり、「Office Web Components」とか「web グラフ」で
ググって見るとか試行錯誤するなら調べてみ。
まぁ、そんな事に時間を使うならYahoo見たいなFlash作ったほうが早いと思うが。
977nobodyさん:2007/07/15(日) 12:13:23 ID:???
>>976
色々ありがとうございます。
Flashで開発してみます。
978964:2007/07/15(日) 15:57:26 ID:???
>>965 ありがとうございます。window.openerでやってみます。
Modelessだと別ウィンドウのほうが使い勝手がよいので、当面の間は別ウィンドウかなと。
979nobodyさん:2007/07/15(日) 20:35:55 ID:9rTzCp+e
ViewStateの値をDBに格納しておけばhiddenに出力されなくなる?

980nobodyさん:2007/07/15(日) 20:43:05 ID:6PV7iA4t
Pageでクライアントに出力したResponseの総バイト数を
実行中に知るにはどのようにすればよいでしょうか?
具体的にはPage内から計算したいのです。Page_Loadから計算できませんか?
981nobodyさん:2007/07/16(月) 02:30:58 ID:???
おまえは馬鹿か?
982nobodyさん
>980
なんでそんなことしたいの?
因みにPage_Loadはクライアントに出力されるResponseが構築される前だから無理だよ。