トップページ⇒php
1001コメント372KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/03/22(火) 17:32:11ID:???
●過去ログ
Part1 - 【質問】 ASP.NETスレ 【議論】
http://pc5.2ch.net/php/kako/1040/10406/1040698263.html
0783nobodyさん2006/07/24(月) 18:56:20ID:???
>>781
もしかして、Else ifを知らないとか・・・
0784nobodyさん 2006/07/24(月) 20:40:11ID:???
ASP.NET使ってWeb+C#のシステム作ってるが
ASP.NET初めて使ってみた感想:

サーバーコントロール、
これコンポーネントプログラミングとC#になれてる人にとっては
すげー楽だ…scriptライクなコーディングしなくていいから。
ASP+VB6で開発してる連中がアフォに見える。
0785nobodyさん2006/07/24(月) 21:03:40ID:m/gH3deA
>>782
その作り方もわかんないです

>>783
超初心者なんで全然わかりません
0786nobodyさん2006/07/24(月) 22:12:28ID:???
>>785
Else Ifはこんな感じに使うやつ。

If A = 1 Then
Response.Write "Aは1です。"
Else If A = 2 Then
Response.Write "Aは2です。"
Else
Response.Write "Aは1でも2でもないです。"
End If

[Else」は「そうでなければ」だけど、
「Else If ・・・」は「そうでない場合・・・ならば」って意味になる。
0787nobodyさん2006/07/24(月) 22:18:45ID:m/gH3deA
>>786
なるほど・・・むずかしいですね
これを応用すれば占いできますか?
0788nobodyさん2006/07/24(月) 22:26:30ID:???
>>787
ああもうあきらめていいよ
0789nobodyさん2006/07/24(月) 22:41:34ID:???
乙ww
0790nobodyさん2006/07/25(火) 00:39:45ID:???
>>761
validateRequest
0791nobodyさん2006/07/25(火) 17:29:39ID:???
https://order.fsdotnet.jp/express/index.html
先着順だったから登録しちゃった。
使い道考えてないorz
0792nobodyさん2006/07/26(水) 21:46:29ID:???
ASP.NET2.0で新しく追加されたログインコントロールを
ASP.NETのWEBアプリケーション管理ツールで作成されたDB以外の
テーブル構造で使用するにはどうしたら良いでしょうか?
0793nobodyさん2006/07/29(土) 11:45:31ID:nDy+sPUG
>792
どっかのblogで見た気がするよ。気のせいだっけ・・・
0794nobodyさん2006/07/29(土) 18:35:37ID:???
>>793
Blogですか?

私も色々と検索したのですが、SQLServerではなく他のRDBMSとかを使用するようなものは
見かけました。

しかし、そもそものテーブル構造自体を独自のものにしてあるものは見たことがありません。
0795nobodyさん2006/08/01(火) 01:13:57ID:???
すみません。教えてください。
VWD Expressで作成したページをIISで動作させると、
StreamWriterやWriteAllTextなど、ファイルに書き込みしようとすると

アプリケーションでサーバーエラーが発生しました。
パス’X:\XXX\XXX\XXXへのアクセスが拒否されました。

というエラーがでます。ASPNETアカウントに書き込み権がない状態だから
だと思うのですが、どうやったら書き込み権を与えられますか?
ググってみたのですが、フォルダのプロパティのセキュリティタブで設定
するみたいなのですが、XP Proのフォルダプロパティにセキュリティという
タブはありませんでした。管理コンソールでASPNETアカウントをUSERから、
Administratorsに変更してみたけどだめでした。
また、VWDからのデバッグではちゃんとファイル書き込みできます。
どうしたらよいでしょうか?よろしくお願いします。
0796nobodyさん2006/08/01(火) 12:44:44ID:???
無茶するな。
エクスプローラの設定変えないと、
セキュリティは表示されない。
0797nobodyさん2006/08/01(火) 14:24:56ID:Hc02g5Lv
>795
フォルダオプションダイアログの表示タブをクリック
詳細設定の「簡易ファイルの共有を使用する(推奨)」チェックをオフ
→セキュリティタブが表示される
07987952006/08/01(火) 22:18:25ID:???
>>796さん>>797さん
ありがとうございました。できました!
0799nobodyさん2006/08/03(木) 23:40:36ID:???
ボタン押したりしたとき
そのボタンのイベントが開始されるまえに
PageLoadが実施され
その後ボタンのイベントが実施されるのは仕様でつか?
08007712006/08/04(金) 02:18:27ID:???
>>799
そうです。
0801nobodyさん2006/08/04(金) 22:27:50ID:???
うは まじで?
0802nobodyさん2006/08/04(金) 23:11:09ID:???
すみません。僕がお馬鹿だと思うのですが、下記のコードで
クッキーが保存されません。
ページにはテキストボックス(TextBox1)とボタン(Button1)だけです。
ほかにコードは書いてません。

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

Response.Cookies("userName").Value = TextBox1.Text
Response.Cookies("userName").Expires = DateTime.Now.AddDays(1)

End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

If Not IsPostBack And Not Response.Cookies Is Nothing Then
TextBox1.Text = Response.Cookies("userName").Value
End If

End Sub

テキストボックスに書いた文字列をクッキーに保存し、次回開いたときに
それをテキストボックスに表示させたいだけなのですが。。
Visual Web Developer 2005 Express Edition のデバッグ環境上です。
どこが間違っているのでしょうか?
08038022006/08/04(金) 23:15:09ID:???
訂正です。
If Not IsPostBack And Not Response.Cookies Is Nothing Then
じゃなくて
If Not IsPostBack And Not Response.Cookies("userName") Is Nothing Then
とは書いてました。
いろいろサンプルコードとか見てみてもこれで良さそうなんですが。。。
08048022006/08/04(金) 23:59:49ID:???
また追加です。
ボタンをクリックしたときは、クッキーの記録ファイルは作られ、
ちゃんと保存もされています。

ところが
Not Response.Cookies("userName") Is Nothing
を通過するとファイルが消えます。

If文を消して
TextBox1.Text = Response.Cookies("userName").Value
を実行させたときも、ファイルが消えます。

とにかく、保存されたクッキーにアクセスがあると勝手に消えて
しまいます。どうしたらよいでしょうか?
0805nobodyさん2006/08/05(土) 02:17:48ID:???
>>804
有効期限切れ
0806nobodyさん2006/08/05(土) 21:24:08ID:???
Cookieを書くときはResponse.Cookiesで読むときはRequest.Cookiesです
0807nobodyさん2006/08/05(土) 21:30:05ID:???
ASP.NETでしかつくれないページ
http://nyannyan3.minidns.net/up/up001/File/2006_08_05-Dukan.aspx
08088022006/08/05(土) 21:36:26ID:???
>>805さん>>806さんレスありがとうございます。
Request.Cookiesで出来ました!
0809nobodyさん2006/08/06(日) 08:57:11ID:???
>>753,755
初めてこのスレに来たので亀レス。
Updateメソッドを利用するってことは、複数レコードを一回の操作で更新するとかそんな感じ?

ObjectDataSource使うと良いんじゃないかな。
DataSourceのクラスにDataSetの更新とDB更新の二つのメソッドを用意してだな。
GridViewの編集→更新で、Datasetの更新。
確定時にDBの更新メソッドを走らせる。

時間が無くて、元ロジックそのまま使い回すなら
前に使ってたクラスを扱うラッピングクラスを作ってそれをDataSourceにするとかー…

見当違いだったらゴメソ
0810nobodyさん2006/08/06(日) 13:03:06ID:Yu3xhKAc
baspを使用してメール送信をしたいんですけど、
ASPの場合に記述する Set bobj = Server.CreateObject("basp21")
のようなオブジェクトの作成方法がわかりません・・・
どなたか教えていただけませんか?お願いします。
0811nobodyさん2006/08/06(日) 14:29:36ID:???
BASP21の参照設定をしてインスタンス作成するだけ。
Dim basp As New BASP21Lib.Basp21
Dim result As String
result = basp.SendMail("Server", "To", "From", "Subject", "Body", "")


プロバイダの設定が上手く行かなくてハマってるんだけど、誰か似たような経験ある人居る?
<ConnectionStrings>
  <add name="testConn" (SQLServerを接続先に指定)/>
</ConnectionStrings>
<メンバシップ プロバイダの指定 → testConn>
<プロファイル プロバイダの指定 → testConn>
<ロール プロバイダの指定 → testConn>
こうやって接続先を指定しているにもかかわらず、
実際にログインコントロールを走らせるとLocalSqlServer見に行ってしまうんだよなぁOTL
(machin.configにデフォルトで書かれているアレを見に行ってしまうんだなw)
スタックトレースを見ると、ロールのインスタンス作るときにLocalSqlServerを見に行ってる感じ。
web.configでLocalSqlServerの接続先を上書きしてしまえば狙った動きはするんだけど、
なんか納得行かないー
0812nobodyさん2006/08/06(日) 20:26:01ID:???
なんでわざわざbaspでやるの?
0813nobodyさん2006/08/06(日) 21:28:16ID:???
FlushMailメソッドを使いたいんじゃないかな…
0814nobodyさん2006/08/07(月) 08:28:12ID:???
坊やだからさ
08158022006/08/08(火) 00:39:08ID:???
あ、あのう。質問ばっかりですみません。
Request.Cookiesでクッキーの取得は出来たのですが、テキストボックスに
返した日本語がどうしても文字化けしてしまいます。
文字コードの変換をしなければならないのでしょうが、どうしてもわかり
ません。
重ね重ね申し訳ありませんが、お教えいただけませんでしょうか?
0816nobodyさん2006/08/08(火) 01:48:14ID:???
>>815
URLエンコードされてるんじゃなくて?
08178022006/08/08(火) 10:17:51ID:???
>>816
お騒がせしました。何故かなにもしないのに文字化けが直りました。
0818nobodyさん2006/08/08(火) 11:21:26ID:???
うそこけ
0819nobodyさん2006/08/08(火) 17:11:45ID:n2+YSk39
>>811
ありがとうございました!
早速、
Dim Server As String = "smtp.mail.yahoo.co.jp"
Dim To As String = "***@yahoo.co.jp"
Dim result As String
result = basp.SendMail("Server", "To", "From", "Subject", "Body", "")

と記述して、メールを送ってみたのですが、
いっこうにメールが届きません・・・
08208112006/08/08(火) 20:34:57ID:???
>>819
っhttp://help.yahoo.co.jp/help/jp/mail/anti-spam/anti-spam-49.html
っhttp://www.hi-ho.ne.jp/babaq/basp21.html
0821nobodyさん2006/08/09(水) 13:45:51ID:???
>>794
遅レスですが、ログインコントロールを完全に自前のテーブルで
使うとしたら、MembershipProviderをカスタマイズする必要がありそうです。

http://msdn.microsoft.com/asp.net/downloads/providers/default.aspx?pull=/library/en-us/dnaspp/html/asp2prvdr01.asp
の上の方に「ProviderToolkitSamples.msi」のリンクがあります。
これをインストールすると各種プロバイダのサンプルソースが展開されます。

これを参考にしてカスタマイズすれば何とかなるでしょう。
SqlConnectionHelper.csのCheckPasswordメソッドのあたり。
ただ他との絡みもあるので、一筋縄ではいかないかも。

上記リンクの親ページ
http://msdn.microsoft.com/asp.net/downloads/providers/default.aspx
のあたりも内容がディープですが読んでみると参考になるかと。
0822nobodyさん2006/08/09(水) 13:47:18ID:???
>>821
訂正
×SqlConnectionHelper.cs
○SqlMembershipProvider.cs
0823nobodyさん2006/08/09(水) 17:27:52ID:???
ASP.NET 2.0で質問があるのですが、
ボタンを押したときに「入力項目のエラーチェック(サーバーサイド)→"登録してよろしいですか?"等のダイアログの表示(クライアントサイド)→データ登録処理(サーバーサイド)」
という動作をさせたいのですが、Button.Attributes.Addメソッドでダイアログを表示させる方法だと、
エラーチェックをする前にダイアログが表示されてしまいます。
ダイアログを任意のタイミングで表示させる方法がありましたらご教授お願いします。
0824nobodyさん2006/08/09(水) 17:33:54ID:03ztM589
ASP.NETでファイルのアップロードをしようとしてます。
デザインはファイルを参照して選んでアップロードボタンを押すという単純なものです
下のコードはVB側のコードです。
どこもエラーがないのにうまくできませんどうしてでしょうか?
Partial Class FileUpload
Inherits System.Web.UI.Page

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Dim httpPostedFile As HttpPostedFile
httpPostedFile = Request.Files("C:\userfile.txt")
Dim splitString() As String
Dim fileName As String
splitString = httpPostedFile.FileName.Split("\\")
fileName = splitString(splitString.Length - 1)

httpPostedFile.SaveAs(Request.PhysicalApplicationPath + fileName)
Label1.Text = "アップロードされました。"
Catch ex As Exception
Label1.Text = ex.Message
End Try

End Sub
End Class
実行するとオブジェクト参照がオブジェクト インスタンスに設定されていません。
とでてきます。
0825nobodyさん2006/08/09(水) 17:38:38ID:???
C#使えてもやっぱりVBを勉強した方がいいのかな?
ASP.NETの本ってほとんどVB使ってるし
0826nobodyさん2006/08/09(水) 17:49:25ID:03ztM589
>>825
ASP.NETの拡張子を見てくださいaspx.vbとなってるはずです
ASPとはデザイン側はHTMLで動作はすべてVBです。
もちろんC#をやっとけばVBに近いので損はないですが基本的に別物です。
0827nobodyさん2006/08/09(水) 19:24:10ID:???
\をエスケープしろよ。
だがIE7ではもう動かなくなるな。
0828nobodyさん2006/08/09(水) 19:24:49ID:???
あいや大丈夫か…
0829nobodyさん2006/08/09(水) 19:25:29ID:???
いや大丈夫じゃないな。
0830nobodyさん2006/08/09(水) 19:47:10ID:???
>>826
釣られてやるか……。
あんたがVB.NETのプロジェクト選択してからaspx.vbなだけで、C♯を選択していればaspx.csだよ。
デザイナで自動生成されるコードもC♯だ。
クライアントでVBScript言語を動作させることもあるが、VB.NETとは別物だし今は廃れている。

>>825
C♯だけで十分、MSDNはC♯のコードがあるだろ。VB.NETしか書いてないASP.NETの本なんか捨てろ。
むしろJavaScript知ってた方がASP.NETでは役に立つ。
0831nobodyさん2006/08/09(水) 20:41:58ID:???
ファイルロックのしかたを教えてください先生
0832nobodyさん2006/08/10(木) 03:05:52ID:???
>>825 は C# をまともに使えてないと思う・・・
>>826 は VB.net, ASP.net のどちらもまともに使えてないと思う・・・
08338252006/08/10(木) 08:10:16ID:???
>>830
本屋で見ただけだから買ってはないよ。VB使う人が増えるのならVB知ってた方が便利かな〜と思っただけ
0834nobodyさん2006/08/10(木) 19:43:40ID:???
>>831
私はファイルロックを実現するために
Applicationオブジェクトを使ってますが
正しい方法なのかはわかりません。
0835nobodyさん2006/08/10(木) 20:32:14ID:???
結局ファイルロックのしかたはわかりませんでしたが
ファイルの読み書きの際にフラグとしてフォルダを作成して
終わったら削除するというどこかのHPに載ってた方法で妥協しますた
1日100アクセスもないHPだし
0836nobodyさん2006/08/11(金) 09:50:21ID:???
this.MapPathとserver.MapPathは動作にどのような違いがあるのでしょうか?
0837nobodyさん2006/08/14(月) 17:33:17ID:RwKIUsyQ
>836
いい質問だ。誰か教えろ。
0838nobodyさん2006/08/14(月) 21:14:33ID:???
>>836
1. this.MapPath
2. server.MapPath
は、次のメソッドを指すとエスパーする。
1. System.Web.UI.Page.MapPath(string path)
2. System.Web.HttpServerUtility.MapPath(string path)
Reflectorで見ると、どちらも結局は
internal string System.Web.HttpRequest.MapPath(VirtualPath virtualPath, VirtualPath baseVirtualDir, true);
を使っている。完全に同じではないかもしれないが、ほぼ同じものじゃねーのって感じ。
0839nobodyさん2006/08/14(月) 23:31:06ID:???
おれも昔、気になって、2つのメソッドを比較したけど、
同じ結果が返ってきた気がする。

なんで同じメソッドを2つも用意したのだろうね〜?
0840nobodyさん2006/08/15(火) 04:27:47ID:???
ただのショートカット+過去との互換性もどき
0841nobodyさん2006/08/15(火) 12:30:32ID:???
ASPNETDB.MDFでは、
ユーザ名とパスワードくらいしか管理できません。
年齢や、性別など、プロフィール情報を管理する良い方法はありますか?

ASPNETDB.MDF以外に、新たなDBとテーブルを作るべきでしょうか?
0842nobodyさん2006/08/16(水) 00:10:15ID:???
主に 1.1 時々 2.0 で仕事してる私に教えちくり

ASPNETDB.MDF って何がうれしいの?
重要?

0843nobodyさん2006/08/16(水) 01:51:53ID:???
何を言っているのかね?
0844nobodyさん2006/08/16(水) 02:24:02ID:???
おおと、>>843は>>841宛
プロファイルとか使えるんじゃないのかい?
0845nobodyさん2006/08/16(水) 02:58:09ID:???
プロファイル? これまた新機能ですか。調べてみます。
0846nobodyさん2006/08/16(水) 16:33:19ID:???
ASP.NETのフォーム認証で承認されたユーザーのアクセスログ、
特にユーザー名(cs-username)ってのは、IIS6.0のログに出力できますか?
0847nobodyさん 2006/08/16(水) 23:18:12ID:???
すみません、質問なんですけど
ASP.NETのwebサイト管理ツールを起動すると

「エラーが発生しました。前のページに戻って、もう一度やり直してください。 」

と、出て起動できません。
何が対策方法とかありますか?
0848nobodyさん2006/08/19(土) 17:51:41ID:???
>>846
デフォルトじゃ出来ないっぽいですね
偽装使ってASP.NETワーカープロセスの権限では書き込めない筈。
間違ってたらすいません

ここのチップスもしくは掲示板に結構色んな質問があるので
こちらで調べるといいかも
↓
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html
08498482006/08/19(土) 17:57:29ID:???
誤記
×偽装使って
○偽装使わないと
0850nobodyさん2006/08/19(土) 21:34:33ID:???
なんかえらい強引なことさせようとしてないかい?
HttpResponse.AppendToLog で目的は果たせるんじゃない?

0851nobodyさん2006/08/20(日) 01:16:11ID:???
入門にwebチャットを作ってみたんだが
一定時間おきに自動更新がしたかったのでMETAで更新することにしますた
するとテキストボックスに入力中に自動更新とかぶると入力中の文字がきえてしまいまつ
マスターページをつかってみたけど結果はかわらず
しかたなくフレームでテキストボックスを区切ることにしまつた
ほかにいい方法あれば教えてくださいエロイ人
0852nobodyさん2006/08/20(日) 17:00:23ID:???
ajaxかクライアントコールバック
0853nobodyさん2006/08/25(金) 20:46:41ID:CnHG+g6h
クライアントコールバックってなに?
0854nobodyさん2006/08/25(金) 23:42:41ID:u/xDTKmg
ム板から移動してきました。
宜しくお願いします。

非ASP.NETアプリからのSubmitをASP.NETで受ける際に、複数のチェックボックスのような
同じ名前のRequestパラメータを取得するにはどうすればいいのですか?

0855nobodyさん2006/08/26(土) 00:51:23ID:???
ASP.NETでフォーム認証を使って、ログインしデータの編集ページへ飛ぶようなサイトを作成しています
フォーム認証とロールの設定は出来ましたが、負荷を考えて同時にアクセス数を10人程度に制限がしたいのです
どうやって人数をカウントをするか悩んでいます。Global.asaxで認証した時に起こるイベントハンドラがありますので
そこから、認証時の人数をカウントしようかと思ったのですが、ログアウトの検出をどうやってやるのかがわかりません。
どなたかご存知でしたら御教授ねがえますか?
0856nobodyさん2006/08/26(土) 02:09:58ID:???
ログアウトは、LoginStatusコントロールのイベントでチェックできるけど、
ほとんどの人が、ブラウザのウィンドウを閉じちゃうからね。
どうすればいいんだろ?
0857nobodyさん2006/08/26(土) 14:44:21ID:???
>>855
そんなもんアクセスログつくっておけばいいんじゃねーの?
で、アクセスきたらそいつのIPを時間とともに書き込んで
ログアウトするか一定時間経過してたら削除 で、10人以上ログに記録されてたらログイン失敗といった感じで

ログアウトって言ってもログアウトまんどくさい派はログアウトしないで終了するかもしれんし
PCの不具合でお亡くなりになるとやっぱりログアウトの監視なんて事実上不可能だし
TCP/IPとかで通信してるなら切断したのわかるがフォーム認証ってWebフォームのことでしょ?
0858nobodyさん2006/08/26(土) 23:45:12ID:???
あんまりログインユーザを制御するのはお勧めできないんだけどな。
とりあえずMembership.GetNumberOfUsersOnline メソッド

しかし負荷を考えて10人程度って、どんなサイトだよ。
0859nobodyさん2006/08/26(土) 23:48:16ID:???
ああそうそう、10人なんて少ない人数でこんな制御したら、
しばらく誰も使えないなんてふざけたことになる可能性もあるから、
十分検討した方がいいぞ。
0860nobodyさん2006/08/27(日) 00:55:45ID:T4ypEbNf
ASP.NET+VB+JavaScriptについて聞かせてください。
3時間ほど迷ったのですがわからなかったので。

<HEAD>
<script language="javascript">
function OpenWindow()
{
window.open("http://www.yahoo.co.jp";,"_blank");
}
</script>
</HEAD>
↑みたいな感じでHEAD内にJavaScriptの関数を定義します。
これをとあるサイトで
Response.Write(OpenWindow())
とすれば呼び出せるとの記述を見つけたのですがうまくいきません。
Response.Write("OpenWindow()")
と変更したのですがこれだと呼び出したページに「OpenWindow()」という
文字が描画されてしまいました。
自分で定義したjavascriptの関数をvb内から呼び出すにはどうすればよいでしょうか?
よろしくお願いします。
0861nobodyさん2006/08/27(日) 02:33:05ID:???
>>860
動いてる場所が違うから無理
08628602006/08/27(日) 02:41:34ID:???
>>861
すみません、表現が悪かったです。
実際には自作したjavascriptのfunctionをクライアント側で
実行させたいのです。
>>860の例で言うなら
クライアント側で新しいウィンドウを作成し、
yahooを表示したいと思っています。
08638612006/08/27(日) 02:50:10ID:???
ああ、なるほど

単純にscriptタグ書き出せば良いのでは?
08648602006/08/27(日) 02:59:44ID:???
>>863
もちろんそれも方法の一つなのですが
その方法だと数カ所で同じ関数を使ってる場合
修正する必要が出た時につらそうだというのと
scriptタグの書き出しは使用しない方が良いという
解説を見かけたので避けたいと思っています。
>>860の方法は不可能ですか?
0865nobodyさん2006/08/27(日) 03:53:24ID:???
>>864
残念ながら、無理。あまり、クライアントサイドスクリプトの相性はよくない。
0866nobodyさん2006/08/27(日) 05:16:26ID:???
つうか呼び出すってどこで呼び出したいのよ?
Register??Script
系のではできないの?
あるいはボタン押したときとかならOnClientClickプロパティとか。
08678602006/08/27(日) 06:06:52ID:???
>>866
>Register??Script
これってなんでしょうか。
もう少し詳しく教えてもらっていいでしょうか?

ちなみにどこで使おうとしているかというと
DataListコントロールの中で
System.Web.UI.WebControls.ImageButtonコントロールを使用していて
画像がクリックされたら別窓で拡大された画像を表示しようとしています。
javascriptを使用する理由は別ウィンドウを開く際、
開くウィンドウの高さ、幅の制御等を行いたいからです。
OnClientClickプロパティはSystem.Web.UI.WebControls.ImageButtonで
使用できないようなので。。
こういう処理の場合どうやって実装するべきなんでしょうか?
0868nobodyさん2006/08/27(日) 13:02:46ID:???
http://msdn2.microsoft.com/ja-jp/library/system.web.ui.webcontrols.imagebutton.onclientclick.aspx

少なくとも、ImageButtonコントロールの
OnClientClick プロパティ は使えると思うけど。
0869nobodyさん2006/08/27(日) 15:32:14ID:bPHgPhjg
初心者なのでphpをまずいじってみてるんですけど、なにやら.netというのがはやってるみたいで、
そっちにのりかえたほうがいいのかなと思ってるとこなんですけど、ASP.netとphpってどっちが
いいの?
08708602006/08/27(日) 16:31:36ID:???
>>868
ありがとうございます。
DataListの中に入っているImageButtonコントロールのOnClickイベントに
関連付けるべく以下のコードに修正しました。
<asp:ImageButton id=ImageButton1 runat="server" OnClick="OpenWindow" ImageUrl='<%# DataBinder.Eval(Container, "DataItem.CD", "{0}.jpg") %>' CommandName="select">
IEにて実行したところ
コンパイラ エラー メッセージ: BC30456: 'OpenWindow' は 'ASP.Details_aspx' のメンバではありません。
と表示されてしまいました。
教えていただいたリンク先のサンプルを元に試したところ
サンプルがVBScriptだったのでVBScriptで書き、サンプルには「runat="server"」
とあったので同じようにしたところOnClickイベントを捕らえることができたのですが
サンプルはクリックされた座標をラベルコントロールに表示するもので
これだとサーバーサイドで実行されるのでクライアントサイドで
新しいウィンドウを表示させるようにするのとはちょっと違う気がします。
OnClickイベントを使用してクライアントサイドで実行させるjavascriptを
投げることはできないのでしょうか?
0871nobodyさん2006/08/27(日) 18:59:17ID:???
ASP.NETだと事実上win鯖に限定されてしまう
リナクソでも使いたいならPHPのほうがイイ
0872nobodyさん2006/08/27(日) 21:51:45ID:???
なあみんながひたすらOnclientClickって言ってるのに、
OnClickでできないできないってわめくのはなぜ?
0873nobodyさん2006/08/28(月) 13:50:38ID:???
>>872
ASP.NET1.1だからじゃね?
ASP.NET1.1のボタンコントロールなら、コードビハインドで
.AddAttribute("onclick", ファンクション名)

後はhtmlのボタンをサーバーコントロールとして実行という手もあるな。
0874nobodyさん2006/08/28(月) 21:46:56ID:???
こんにちは。

WinXP Pro ASP2.0 VWD で作成し正常動作したASPページを、Win2kのPCに持って行くと動きません。
Win2kの方は、IISと.NET Framework2.0をインストールしたままで特にいじってません。
Web.Config内のroleManager enabled="true"は変です。というエラーがでるので、これをfalse
にしてみてもやっぱり変ですというエラーがでます。でこの一行を消すと、ローカルhttp://localhost
では動きますが、外部からアクセスするとRuntime Errorで動きません。

どなたか解決法を教えていただけませんでしょうか?
0875nobodyさん2006/08/28(月) 22:23:30ID:wP3k1/vQ
よくわからんが
もれはVWDで作成されたWeb。Configだけ消すと何事もなかったかのように動く
あと書き込み処理とかあるファイルのパーミッションはかえてるよな?

エラー内容もUPしてみ?
08768602006/08/28(月) 23:06:18ID:???
>>872
正直言いますとOnClientClickをOnClickと読み違えてました。
でも動かなかったので凄く悩みました。
>>873の言う通り1.1でした。
自分自身2と思ってたんですが。。
おかげさまで動作確認できました。
ところがこの方法だと実際はImageButtonがDataGrid(DataList)中の中にあり、
表示させる画像のパスは同じレコードの別フィールドから作成するため
実用的ではありませんでした。
>>872のAddAttribute("onclick", ファンクション名) という方法を使っても
ファンクションに引数として同じレコードの情報を渡すことができないからです。
そこで当初の通りImageButtonのCommandNameに「select」を使用し、
DataGridのSelectedIndexChangedイベントの中で動的にjavascriptを作成し、
Response.Writeでクライアントに投げることで要件を満たすことができました。
ですがこの方法だとクリックするだけでページがリロードされてしまい、
スクロールバーが最上位まで戻ってしまい不便です。

08778602006/08/28(月) 23:13:08ID:???
続き
実際やりたいことは
DataGridを使用して表示されたレコード群の中の
小さい画像(ImageButton)がクリックされたら
クライアント側に別ウィンドウとしてその画像の大きな画像を
ウィンドウサイズ等を指定して表示したいのです。
こういう場合どういう方法が一般的なんでしょうか?
ImageButtonを「CommandName=select」として使用し、
DataGridのSelectedIndexChangedイベントで
javascriptでウィンドウサイズ等を指定してクライアントに投げた場合、
クリック時ページがリロードされてしまいスクロールバーの位置が最上位に
戻ります。
かといってImageButtonのOnClick(OnClientClick)等のイベントで
javascriptを用いてクライアント側にウィンドウを開けさせようと場合、
開くべき画像パスの情報をクリックされた画像のレコードの情報を
引数として渡すことができないです。
こういう場合みなさんならどうやって作成しますか?
細かくなってしまい申し訳ありませんがよろしくお願いします。
0878nobodyさん2006/08/28(月) 23:45:14ID:???
>>860
サイズ指定できるかわからんけど、別のWebForm作ってそこに飛ばすとかじゃとだめかな?
指定はtargetでやれば別ウインドウで開けるでしょ?
08798732006/08/29(火) 15:13:12ID:???
>>876-877
DataGridコントロールのイベントについて調べてみ。
適切なイベントで適切な処理を行えば、
おまいのやりたいことが出来るはずだ。
0880nobodyさん2006/08/29(火) 19:49:46ID:???
VS2003、C#、フレームワーク1.1SP1
型付きDataSetを公開するようなWebメソッドを作成しているのですが、
プロキシクラスとして作成されるクライアント側のデータセットが正しく生成されなくて困っています。

具体的にはカラムのNullValueプロパティを(Empty)にしておいても、プロキシクラスの
型付きデータセットのプロパティ内にInvalidCastExceptionのtry-catchが生成されてしまうのです。
WSDL.exeに直接XSDを入れて生成してみてもダメでした。
これは自動生成ツールの限界としてあきらめた方がよいのでしょうか?
08818742006/08/29(火) 21:43:56ID:???
>>875
ありがとうございます。
なぜだかわかりませんが、なんか動くようになりました。
08828602006/08/30(水) 01:29:05ID:???
>>876-877について
>>879
ありがとうございます。
おそらくItemCommandイベントですよね?
ItemCommandのイベントを使用するやり方、というより
イベントと小さい画像(ImageButton)をクリックした際に
ページがリロードされスクロールバーが最上位に戻ってしまいます。
第一クリックされた行の判別ができない気もします。。

>>878
その方法なんだと↑と同じなんですけど
小さい画像(ImageButton)クリックした時点でページがリロードされて
しまいます…

画像をクリックしたらそのウィンドウがリロードされることなく
選択行の情報から作成したパスの画像を別ウィンドウに表示したいの
ですけど無理なんでしょうか?
08838602006/08/30(水) 01:42:26ID:???
続き
実際はDBとImageButtonのNavigateUrlを連結したいんですけど
これだとクライアント側で別窓で開かせる際、
ウィンドウサイズ等の制御ができないですし…
■ このスレッドは過去ログ倉庫に格納されています