【質問】ASP.NETスレ Part3【議論】at PHP
【質問】ASP.NETスレ Part3【議論】 - 暇つぶし2ch910:nobodyさん
07/07/09 23:17:49 YwC6/Z99
教えてください。
完全プリコンパイルってどのようにすれば良いのでしょうか?
メニューのビルドに「プロジェクト名」発行
というのがあるのですが、これを選択して、実行ファイルのみにするという選択をして
発行をすると、dllをaspxファイルのみ指定の場所に出力されるのですが
これが完全プリコンパイルなのでしょうか?
dllとaspxのみなので、ユーザーが実行時にコンパイルされることは無いと考えて良いのでしょうか?

911:nobodyさん
07/07/10 00:06:36
ViewStateって何あれ。
あんな大量のデータをクライアントに吐かれちゃあ携帯サイトなんて作れねえよ。
皆はどうやって解決してる?

912:nobodyさん
07/07/10 00:36:30
大量にはかないようにする

913:nobodyさん
07/07/10 00:51:36
>>910
完全かどうかは発行処理のオプションによるけど
最終的にDLLが出来ていれば、プリコンパイル済みで実行時にコンパイル
されることは無いです。

ちなみに、発行時に動作するのは
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler.exe
なのでVS2005が無くても.NET 2.0 がインストールされているPCであれば
コマンドプロンプトでコンパイルできるはず。

もっと細かいコンパイルを行いたいなら
Visual Studio 2005 Web Deployment Projectsをインストールすると良い。
Web サイト全体をシングルアセンブリにしたりできる。

つうか、
動的コンパイル(プリコンパイルしないでコピー配置)でも、
aspnet_compiler.exeで初期展開時・ソース変更時・(タスクで)OS起動時に
埋め込み先コンパイルしとけば実行時にコンパイルされることは無いから
初回実行時のコンパイルをそこまで気にする必要も無いと思う。


914:nobodyさん
07/07/10 01:03:17
>>911
モバイルWebフォームは、ビューステートの一部情報や
履歴情報を管理するためにセッションを利用してくれるから
送信量は減ると思う。

モバイルだろうが無かろうが必要の無いEnableViewStateは
無効にするのは必須だとは思うがね。




915:nobodyさん
07/07/10 07:35:51
ビューステートをSQLServerのtempdbに入れる方法があるね。
それだとクライアントに吐かないので送信量は減るぜ!

916:nobodyさん
07/07/10 16:46:25
ボタンなどのクリック処理でクライアントの処理をやってからサーバの処理をやりたい場合どのように記述すれば良いでしょうか?

input typeボタンでonclickとonserverclickを書いてもうまく動きません。
<input type="button" id="button1" value="TEST" runat="server" onclick="button1_Click()" onserverclick="button1_ServerClick" />

917:nobodyさん
07/07/10 19:34:57
aspx.csでダイアログウィンドウをオープンすることは可能でしょうか?
JavsScriptでは↓こんな書き方なんですが、C#で書く場合はどうなりますか?
window.showModalDialog(sUrl, null, "help:no;status:no;resizable:no;dialogWidth:800px;dialogHeight:580px;dialogTop:400px;");

918:nobodyさん
07/07/10 19:36:26
上手く動くよ

919:nobodyさん
07/07/10 19:39:59
>917
ダイアログウィンドウはクライアント側で出すもんだ

920:nobodyさん
07/07/10 19:47:29
GridViewのボタンで「検索」というボタンを配置して
それをクリックするとダイアログ画面が表示されるというのをやりたい。
GridViewのボタンのクリックイベントをJavaScriptで処理する方法はどうしたら良いですか?

921:nobodyさん
07/07/10 20:55:48 7E2bqaAN
>>916
button1_Click()の最後に「;」付けてみ。
input type="button"をrunat="server"にした場合、
onclickにポストバック用のjavascriptが追加されるのでエラーになってるっぽい。
つうか、asp.netのボタンコントロール利用すればいいのに。

>>917
ClientScript.RegisterStartupScriptでクライアント側にjavascriptを吐き出す。

>>920
GridViewのボタン「検索」はItemTemplateで作ってるんでしょ?
なら、input type="button" のonclickなりasp.netのボタンコントロールのOnClientClickに
>>885とか>>887の様にデータ連結式で引数渡す。


922:nobodyさん
07/07/10 21:55:59
obj.uniqueNumber

↓こんな感じのGridViewがあって、各行にはボタンがある。そのボタンをクリックすると、その行の<TD>タグに値をセットするということをやりたいのですが、どう書けば良いでしょうか?

<asp:GridView ID="gridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="TEST1">
<ItemTemplate>
<input type="button" onclick="btn_click()" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="TEST2" />
</Columns>
</asp:GridView>

//JavaScriptの処理
function btn_click()
{
ここの処理でボタンが押された行のTEST2 BoundFieldに値をセットするにはどうすれば良いでしょうか?
}

923:nobodyさん
07/07/10 22:10:56
>>920
ItemTemplate使ってGridView上に普通のaspボタンを配置して
OnClientClick(だったっけ?)属性にダイアログの内容とかのコードを書けばいい。

924:923
07/07/10 22:12:44
何だよ、スレをリロードしてなくて>>921-922見ずに書き込んでしまった
俺の出る幕じゃなかったな
あばよ

925:素朴な疑問なんですが
07/07/10 22:17:47
某アダルトサイトにある、ライブチャットみたいなシステムを
ASP.net(+VB.net or C#)で実現する事は可能でしょうか?

また、パフォーマンス的に劣ったりするものでしょうか?

926:nobodyさん
07/07/10 22:43:34
>>922
ソース見て出力されているtable タグを操作する
javascript書くだけ。
TEST2 BoundFieldに初期データをどうするのか、
ボタンを押した後の情報はどこから取るのか分からんが。

>>925
某アダルトサイトが分からんからなんとも言えんが、
サーバ側はチャットのデータを蓄積するだけで
結局はクライアント側の処理次第。



927:925
07/07/10 22:53:58
>>926
例えば2chのスポンサーになっている
ライブチャット
チックなサイトを勉強がてら作ってみようと思っています。

※ライブチャットと言うには多少語弊がありますが、
ユーザ間(ユーザA・B)で一昔前のテレビ電話の様に動画を表示(再生)
しつつ、チャット(この部分は簡単に出来ると思います。)を行うサイト
を作りたいと思っています。






928:nobodyさん
07/07/10 23:11:38
>>927
Flashストリーミングが出来れば
HTML的にはobjectタグで表示するだけ。

つうか、ASP.NETにFlashを自動的に作って
くれるようなものは無いぞ。

929:925
07/07/10 23:31:52
>>928
ぐぐってみたのですが
 PHP+MySQL
の組合せで大体のライブチャット系のシステムは稼動している様なの
ですが、ASP.net + SqlServer (+Flashストリーミング)
にてライブチャットは実現出来るでしょうか?

また、何かオススメなサイトをご存知でしたらご伝授願います。

930:nobodyさん
07/07/11 00:00:47 IEK0kU0N
onclientclickとonserverclickってonclientclickが終わったらserverclickにいきますが
clientclickの処理でserverclickイベントを発生させない指定って出来ますか?
例えばclientclickで入力チェックを行い、問題無ければserverclickを実行
ダメだったらserverclickイベントには飛ばないなどやりたいのですが。

931:nobodyさん
07/07/11 00:10:43
どっちがどっちなんだか訳わかんねーよw

932:nobodyさん
07/07/11 00:16:03 IEK0kU0N
>>931
クライアント処理で入力チェックをして、問題無ければサーバに送信ってのをやりたいってこと。


933:nobodyさん
07/07/11 00:21:44
>>929
PHP+MySQLもASP.net + SqlServerもあくまで手段で
しかないんだから、書き方は違えど、どの様な方法で
実現するかの部分は同じだと思うが。

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

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

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

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

>>930
とりあえず、onclientclickの最後に「return false」
つうか、それそもそもASP.NETの質問ではなくjavascriptの
質問だと理解してるか?
とりあえず「return false」

934:nobodyさん
07/07/11 00:23:58
>>930
ミスった。
問題があれば最後に「return false」
問題がなけば最後に「return true」

935:nobodyさん
07/07/11 00:28:34
>>933
いつもありがとうございます。
勉強になります。

936:929
07/07/11 00:47:01
>>933
私も勉強になりました。ありがとうございます。
まず、簡単なWEBサイトにてHTMLレベルでの動画ストリーミング
出来るか試してみたいと思います。


937:nobodyさん
07/07/11 10:12:44
GridViewで出力されるTABLEタグ内のTDタグやボタンタグ1つ1つにIDを付けたいのですが、どうやって付けるのでしょうか?
IDはユニークにしたいので、名称+行数のような名前が望ましいのですが。


938:nobodyさん
07/07/11 12:29:53
>>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だ
ろうが好きなように制御すると良い。


939:nobodyさん
07/07/11 19:04:07 Cai09Rxb
DBの内容をDataTableで取得し、その件数分ループして
ループ内でクラスインスタンス化し、ListコレクションにAddする
ということをやりたいのですが、DataTableを件数分ループするという
一般的なやり方はどうすればよいでしょうか?

940:nobodyさん
07/07/11 20:21:17
>>939
一般的かは分からんが
foreach (DataRow row in table.Rows)

941:nobodyさん
07/07/11 20:26:04
GridViewのFooterTextに値を入れても何も表示されないんだが、これはどこに出力されるの?

<asp:GridView ID="grid1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField HeaderText="name" DataField="name" FooterText="aaa" />
</Columns>
</asp:GridView>

942:nobodyさん
07/07/11 20:37:46
>>941
<asp:GridView ShowFooter="True"

943:nobodyさん
07/07/11 20:42:45
>>942
ありがとうございますm(_ _)m

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




944:nobodyさん
07/07/11 21:12:59
>>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

945:nobodyさん
07/07/11 22:25:55
long型の変数aをカンマ区切りにしてToString()で出力したいのですが
long型にカンマ編集メソッドってないのでしょうか?
標準関数でそういうものはありますか?

946:nobodyさん
07/07/11 22:38:26
>>945
ToString("#,##0")

質問の前にMSDNでまず調べる事をお薦めします。

947:nobodyさん
07/07/12 01:13:43
Page_Load時に!IsPostBackの時のみGridViewのDataSourceをセットしGridViewで値を表示しているのですが
PostBack時にDataSourceがNULLになってしまいます。
DataSourceの値は保持されないのでしょうか?

948:nobodyさん
07/07/12 01:51:04
ぬるぽ

949:nobodyさん
07/07/12 09:10:05
>>947
普通はViewStateで保持されるので
PostBackで復元されるはずです。

950:nobodyさん
07/07/12 12:08:33 1aEUvUSk
<label id="test" runat="server"></label>
サーバコントロールに対しJavaScriptでinnerTextで値をセットしても、ポストバックすると値が消えてしまうのは何故なのでしょうか?ViewStateはONにしています。

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

JavaScriptでTESTと値をセットしポストバックするとPage_Loadイベントではもう
document.all.test.innerTextが""となっている。

951:nobodyさん
07/07/12 12:55:08
>>950
ViewStateの基本を説明するのは面倒なので
下で勉強してください。
URLリンク(ja.gotdotnet.com)

952:nobodyさん
07/07/12 13:10:48
>>803
2.REMOTE_HOST
 (IISの設定が必要。デフォルト設定ではネットワーク負荷を考慮してるのでREMOTE_ADDRと同じ値が返る。)

この部分で私も詰まってしまいました。
URLリンク(blog.asura.co.jp)

↑を参考にし、

URLリンク(support.microsoft.com)

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

この設定を1フォルダ(1サイト)のみに適応したいのですが、わかりやすい手順でご教授お願いできますか?


953:nobodyさん
07/07/12 13:49:08
>>952
URLリンク(support.microsoft.com)
例 2 - 個々のサイトに対して逆引き参照を有効にするに書いてある通りです。

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

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

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

954:nobodyさん
07/07/12 14:23:59
>>953
レスありがとうございました。私は2003で開発してますので、

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

↑はできませんでしたが、ヒントをいただいて、
System.Net.Dns.GetHostByAddress(Request.ServerVariables("REMOTE_HOST").ToString).HostName
としてみました。結果的には同じでしょうか?


955:nobodyさん
07/07/12 14:54:53
>>954
結果を聞くよりも、それでうまくいったのかい?
結果的には同じかはMSDNを見た方がいいよ。



956:nobodyさん
07/07/12 16:17:36
>>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

一部伏せましたが、結果は大丈夫です。ご教授ありがとうございました。


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