トップページphp
986コメント449KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/07/17(火) 23:49:46ID:pyJr9yIy
●過去ログ
Part1 - 【質問】 ASP.NETスレ 【議論】
http://pc5.2ch.net/php/kako/1040/10406/1040698263.html

【質問】ASP.NETスレ Part2【議論】
http://pc8.2ch.net/test/read.cgi/php/1111480331/

【質問】ASP.NETスレ Part3【議論】
http://pc11.2ch.net/test/read.cgi/php/1160355849/
0428nobodyさん2008/03/24(月) 03:23:35ID:ct6byZwV
デザイナでDropDownListコントロールを配置し、
データソースの設定をし、DBより取得したレコードを
DropDownListに表示しています。
それはいいのですが、使用時に未選択を示す
空文字の行がありません。
つまりDBに"1","2","3"と3つレコードがあり、それをDrowpDownListに
取り込むことはできたのですが、実際使用する時には
""の行も必要なので困っています。
1.こういう場合どうするべきでしょうか?(DB側のテーブルに空文字の行を追加することは避けたい)
2.また、フォームのLoadイベントでリストの元データになっているDataTableにアクセスしたかったのですが、
 やり方がわかりませんでした。
 どうやればアクセスできますか?
 イメージ的にはMe.dataset.Tables[〜〜
 のようにフォームを初期化するために使用したデータセットがどこかに保存されているような気がするのですが。。
0429 [―{}@{}@{}-] nobodyさん2008/03/24(月) 11:45:00ID:???
>>428
1.静的アイテムを定義しておいて、AppendDataBoundItems=Trueにするのが簡単かな
2.DataBoundイベントで行データにアクセスできるけどそれじゃ駄目?
04304282008/03/25(火) 01:21:28ID:???
>>429
>1.静的アイテムを定義しておいて、AppendDataBoundItems=True
これでばっちりです、これが知りたかったです。
ありがとうございます。

>2.DataBoundイベントで行データにアクセス
うーん、どこかの変数にリストボックスの作成元になっている
データセットへ直接アクセスするようなことはできないでしょうか?
04314232008/03/27(木) 19:17:41ID:jex5dQtQ
どうもありがとうございます。

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

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

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

お礼が遅れてすみませんでした。今日、仕事帰りに漫画喫茶にこれました。
0432nobodyさん2008/03/28(金) 00:19:18ID:oYl8aU09
開発時と運用時でフォルダ構成が違うため相対パスが違うので
プログラムで相対パスを書く時に困ってしまっています。
開発時画像を表示する相対パスを書いて、それを運用時のフォルダへコピーし、実行すると
画像への相対パスが変わってしまうため表示できません。
運用フォルダでは画像ファイルは*.aspxファイルより上の階層にあります。
開発時と運用時の相対パスの違いって
どうやって切り替えるとよいでしょうか?
それか実行時に動的にwebconfigあたりから相対パスを読み出してくるような方法ないでしょうか?
0433nobodyさん2008/03/28(金) 01:16:08ID:???
相対パス、相対パスって言ってるけど意味分かってるんだよね?
開発と運用で相対位置が上位と下位に分かれてるなんてどーしよーもないよ。

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

04344322008/03/28(金) 01:40:35ID:???
>>433
相対パスの意味はOKです。
やはり運用環境に整えるのが当たり前ですか。
運用環境では*.aspxの配置してある階層より上の階層に画像があるのが
問題なんですね。
今運用環境が以下なのですが、
http://(root)/test.aspx
このtest.aspxの階層を一つ下げて
http://(root)/home/test.aspx
などとすれば画像へのパスが
http://(root)/img/a.jpg
となり開発時運用時共に同じ構成で作成できます。
今回は運用環境が実際は定まっていなかったので
運用環境のフォルダ構成を見直すことで
開発時と統一したいと思います。
ありがとうございました。
0435nobodyさん2008/03/29(土) 17:22:30ID:???
>>434
Web.configに絶対パスを書いて画像を指定するときに置き換えてやればいいじゃない
0436nobodyさん2008/03/30(日) 11:49:34ID:???
便乗なんだけど、パス書くときに~/で書けば自動変換してくれるけど、
<script>タグの場合は、runat=serverにしたらエラーなるけど、何か方法ないですか
04374322008/03/31(月) 05:18:43ID:???
>>435
ですね、
そう言う方法が知りたかったです。
ですが今回はフォルダ構成に関しては開発環境=運用環境が
基本と言うことをお教えいただいたのでそうしますね。
ありがとうございます。
0438nobodyさん2008/03/31(月) 05:30:55ID: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
と並びを変えたいのですが。。
0439nobodyさん2008/04/01(火) 00:14:49ID:???
>>438
RepeatLayoutをFlowにしてインライン要素で敷き詰めたらどうだろうか。
04404382008/04/02(水) 01:45:15ID:???
>>439
RepeatLayoutをFlowにしてみたんですが、一行に1つずつのアイテムが
下へずらずらと表示されるだけでした。
インライン要素で敷き詰めるとはどうゆうことを指すのでしょうか?
すみません。
04414162008/04/02(水) 10:00:56ID:Y/05D5yF
>>416
ASP.NET3.5+AJAXではじめるECサイト構築入門
の作者が対応とってくれました。感謝。
http://www.friendlysw.com/aspnet/asp35/book.asp

416の時点で出版社へメールを送ったが、出版社からは音沙汰なしのままだった。
この対応については、ちと不満。
改訂版もしくは、初版以降の版では直ってることを願う。
書籍自体は、動くサンプルコードが豊富であり参考にはなると思った。
0442nobodyさん2008/04/02(水) 10:17:30ID:???
>>438
まず1から8までの各データをSPANタグ(インライン要素)で囲んだだけのHTMLを作って表示してみる。
ウィンドウ幅に余裕があるかぎりデータが横に並べられ、幅を変えるとそれに合わせて改行位置が変わることを確認できるはず。

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

そもそもDataListがtableタグを使って表現しているので
テーブル内で<span>使ってもテーブル自体の列数がウィンドウサイズによって
動的に変動するとか無理なような気がしてきました。
0445nobodyさん2008/04/04(金) 09:38:27ID:???
RepeatLayout=FlowだとDataListはspanタグを吐くだろ?
0446nobodyさん2008/04/04(金) 22:07:24ID:btrOMdCP
SqlCommandでパラメータ使ってますが、省略可能なパラメータって定義できますか?
検索条件によってパラメータが無い場合もあるので、どのように対応すべきか悩んでいます。
0447nobodyさん2008/04/05(土) 16:12:22ID:???
条件によってcommandTextから変える
04484462008/04/05(土) 19:28:34ID:/o0gPsTY
>>447
レスありがとうございます。やはり動的にSQL文を生成するしかないのですか。
04494382008/04/05(土) 20:09:31ID:???
>>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 />

こんなん出力されてました。
04504382008/04/05(土) 20:09:52ID:???
<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>
04514382008/04/05(土) 20:11:49ID:???
ブラウザの見た目としては
集英社
小学館
講談社
メディアワークス
徳間書店
角川書店
竹書房
こんなんなっちゃいまして
期待としてはテーブルの中に入った出版社名が
右へずらっとウィンドウの右端まで表示したいのですが、
どうしても下へ並んでしまいました。。
0452nobodyさん2008/04/05(土) 21:40:40ID:???
>>438
Repeaterコントロール使えば良いんでね?
ItemTemplateの中身をひたすら繰り返すだけのシンプルなものになるから。
後はdivでもなんでも使えばよかろ。
0453nobodyさん2008/04/05(土) 21:42:06ID:/o0gPsTY
>>451
CSSの対応で、どうでしょうか?
>>450の場合だと
span#DataList1 table{ display:inline; }
とすれば横並びになりますが。
0454nobodyさん2008/04/05(土) 21:44:15ID:???
<ItemTemplate>
<div style="float: left">
<% Eval("Shuppansha") %>
</div>
</ItemTemplate>
 ↓
<div style="float: left">
集英社
</div>
<div style="float: left">
小学館
</div>
<div style="float: left">
講談社
</div>

みたいに出力される。
0455nobodyさん2008/04/05(土) 22:09:14ID:???
>>448
あとは、それを見込んでクエリを書くか。
WHERE (param = @param OR @param IS NULL)
みたいな。
0456nobodyさん2008/04/05(土) 23:48:02ID:/o0gPsTY
>>455
ありがとうございます。求めてたのはこれです。
04574382008/04/06(日) 17:14:55ID:???
うまくいきました!
まず>>453-454で教えて頂いたようにtableのstyleを「display:inline」とします。
これで解決しました。
また、今回の要件を満たすにはtableのstyleをdisplay=inlineとした上で、
Repeaterコントロールを使う方が良いと思いました。
DataListでもプロパティを設定すれば多少無理矢理な形で可能なのですが、
スマートでない感じがしました。
ありがとうございました。
04584522008/04/06(日) 22:35:04ID:???
客先のブラウザで全画面表示したら貧相な画面になりましたとか気まずいから、
>>438みたいな、横幅可変でなるべく全体使いたいって話が最近良くある。
狭い画面での表示と両立してくれって要求になるとかったるいけどw

20〜24インチぐらいのワイド液晶ある人はyahooやinfoseekとamazon比較してみると良いかも
0459nobodyさん2008/04/07(月) 00:19:01ID:880v00YK
ユーザーコントロール作って、その中のコントロールのボタンに
Click時にクライアントスクリプトを動かしたい場合は、ユーザー
コントロールの貼り付け先にスクリプト書く必要があるのでしょうか?
ユーザーコントロール側にスクリプト書いて、コントロールの
貼り付けだけで動作するようには出来ないのでしょうか?
0460nobodyさん2008/04/07(月) 19:54:47ID:???
簡単なスクリプトなら、動的にクライアントスクリプトを追加するように、ユーザーコントロールに書くとか
0461nobodyさん2008/04/07(月) 23:28:59ID:HZpb0WP/
TextBoxとボタンを2セット配置しまして
TextBox1の上でEnterキーが押された時はボタン1の処理、
TextBox2の上でEnterキーが押された時はボタン2の処理、と
処理を分ける場合はどうすればよいでしょうか?
今のところどちらでEnterキーを押してもボタン1の処理が実行されてしまいます。
0462nobodyさん2008/04/08(火) 00:18:51ID:O6FEAP9E
FormViewでメーカーCDを連結しているLabelがありまして、
実際にはここにメーカー名を表示したいのですが、良い方法ないですか?
とりあえず今はPage_Loadイベントで現在のメーカーCDをVisible=falseのメーカーCDと連結した
LabelからとってきてSqlCommandでExecuteReaderして別テーブルからメーカーCDをキーとしてメーカー名を取って非連結のLabelに表示しています。
動作に支障はないのですが、メーカーCDを取得するためだけにフォーム上に
Labelを1つ無駄に配置するというのがなんだかもったいないです。
いちいちメーカーCDのラベルを経由せず、直接現在のメーカーCDを取得するような方法ありませんか?
0463nobodyさん2008/04/08(火) 20:00:15ID:???
>>461
テキストボックス内でEnter押してSubmitを発生させた場合、
最初のSubmitボタンが押されたものとブラウザが判断するので・・・

1:formのイベントでキーをとっ捕まえてEnterキーかどうか判断
2:window.event.srcElementあたりでそれを発生させたオブジェクトを取得
3:後は煮るなり焼くなり
4:クロスブラウザに注意
0464nobodyさん2008/04/08(火) 20:38:52ID:???
>>462
どこのSIerだか偽装請負だかの新人か知らんが、
暗号解読能力が必要な質問すんな。

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

ヒント:FormViewのリファレンス…特にプロパティ
0465nobodyさん2008/04/08(火) 23:10:14ID:???
AJAXControlToolkitで質問です。コントロール郡をツールバーから貼り付けるまでは
出来るのですが、TargetControlIDの欄が真っ黒になって、設定できません。
しかもこの欄をクリックすると、VSが落ちてしまいます。
このような現象に会われた方いらっしゃいますか?
参照の解除、再設定やらツールバーのリセットしても改善しません。
04664622008/04/09(水) 02:59:47ID:???
>>464
おかげさまで無事取得できました。
CType(Me.FormView1.DataItem, Data.DataRowView)("取得対象フィールド名")
04674642008/04/09(水) 22:56:48ID:???
>>466
この場合、aspxファイル内でFormView.DataKeyNamesにメーカーCDのフィールド名をセットして
FormView.DataKey.Value(キーが複数ある場合はValues)でキーの内容を取得する方が多分スマートかな。
わざわざコードビハインド側でセットする必要もないしね。

↓のような感じ
<asp:Label ID='MakerCDLabel' runat='server' Text='<%= this.FormView1.DataKey.Value %>' />
04684622008/04/10(木) 01:50:33ID:???
>>464
DataKeyNamesプロパティを利用して
キーから対応する名前を取得するには
通常DataKeyNamesに主キーの列名を指定する必要がありますよね?
今回取得したいのは主キーでないので無理そうです。
ありがとうございます。
0469nobodyさん2008/04/10(木) 16:28:59ID:???
>>461
Panel使えば簡単にできる
そういうプロパティがある
04704612008/04/11(金) 03:22:57ID:???
>>469
検証してきましたらうまくいきました!
こういうのが欲しかったです。
ありがとうございました。
0471眠れない2008/04/15(火) 21:15:36ID:???
aspで携帯サイト開発するとき、改頁の機能はどうすれば、携帯画面に出ることができるのでしょうか。知っている方はいらっしゃいましたら、教えていただけないでしょうか。
0472nobodyさん2008/04/16(水) 19:22:41ID:???
日本語でおk
0473nobodyさん2008/04/24(木) 12:44:27ID:???
GridViewでヘッダーとか設定した後、手動でDataBindするとレイアウトが解除されて
ノーマルな状態でBindされてしまいますが、回避する方法ありますか?
0474nobodyさん2008/04/25(金) 13:26:05ID:???
aspx側でText='<%# item[0] %>'みたくバインドしたいのですが
cs側でitemをどのように宣言して扱えばいいのでしょうか?
itemはList<string>がいいのですが
0475nobodyさん2008/04/25(金) 13:33:58ID:???
すいません。ソッコー自己解決しました。そのままパブリック宣言でおkでした
0476nobodyさん2008/04/26(土) 21:37:48ID:???
publicよりprotectedの方が良いんじゃねーかなー…

>>473
DataBoundイベント時に設定すればええやん
0477nobodyさん2008/05/02(金) 13:15:08ID:???
画像をクリックした時に、セッション変数に値をセットした上で、別のページに遷移したいのですが、
ImageButtonのPostBackUrlに遷移先のページ、Clickイベントでセッション変数への値のセット
としてもうまく動きません(Clickイベントが発生しません)
こういう場合はどの様にするのがベストなのでしょうか?
0478nobodyさん2008/05/02(金) 20:51:29ID:???
>Clickイベントが発生しません
aspxのImageButtonソースとClickイベントを書いて
04794472008/05/03(土) 06:14:49ID:???
>>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ページに書いています。
よろしくお願いします。
0480nobodyさん2008/05/03(土) 13:06:20ID:???
OnClick="imgPass_Click"の記述がないよ。

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

としてみて。

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

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

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

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

1.公開したいサーバ上の管理ツールよりアクセス権の設定を行う。
2.公開したいサーバ上のIISマネージャより設定を行う。
3.「1.」「2.」両方の設定を行う。
04844472008/05/04(日) 02:05:59ID:???
>>480
どうもです。
試してみたけど動きません。
マスターページじゃないaspxファイルに貼ったImageButtonだとちゃんと動くので、
masterページに書いているのが原因なのかな?とも思ってるのですが・・・

あと、ツールボックスからコントロールを貼り付け、コントロールをダブルクリックして
出来たイベントハンドラに処理を書いていて、他はOnClickとか書いてなくてもイベントが発生するのですが、
自分で書く必要がある場合ってどういう時なんでしょうか?
04854472008/05/05(月) 02:15:18ID:???
>マスターページじゃないaspxファイルに貼ったImageButtonだとちゃんと動くので、
色々試した結果、これ間違ってました。
正確には、「PostBackUrlプロパティに、自ページ以外のページが指定されている場合は、OnClickイベントが動かない」でした。
OnClickイベントは、PostBackされた後にサーバーで処理される。と理解しました(間違いがあれば指摘ください)

PostBackUrlプロパティを空白にして、OnClickイベントでServer.Transferで要件を満たせました。
色々ありがとうございました。
0486nobodyさん2008/05/05(月) 19:20:36ID:???
たまには息抜きにどうですか?
http://www.atmarkit.co.jp/fdotnet/aspdevura/index/index.html
笑いながら、「あるある!」って最後まで読んでしまった。
0487nobodyさん2008/05/05(月) 20:01:05ID:???
本当は、ASP.netをメインでやりたいのに
Windowsアプリの開発ばかりやるハメになってる。

WEB系やりてーよぉー。

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

ヘルプ
「ユーザーがコンテンツ ページを要求すると、マスターページとマージされて、マスタ ページの
レイアウトとコンテンツ ページのコンテンツが結合された出力が生成されます。」
0489nobodyさん2008/05/06(火) 18:26:19ID:???
cobolしか触ったことのない俺がとりあえずASP入門するのに最適な
サイト・書籍を列挙してくれないか?
VS2008が使えるやつで頼む。
0490nobodyさん2008/05/06(火) 19:25:20ID:???
>>489
> cobolしか触ったことのない俺がとりあえずASP入門するのに最適な
> サイト・書籍を列挙してくれないか?
> VS2008が使えるやつで頼む。
こぼら には無理
0491nobodyさん2008/05/06(火) 19:31:45ID:???
cobolのみならC#.netの入門書からがいいんじゃないか。
.net framework自体の知識も基礎は必要になるから。

vs2008対応のasp.netのよい本はまだ出てない。
「asp.netでいってみよう」は評判良いが発行は古く
asp.net2.0未対応。
0492nobodyさん2008/05/06(火) 23:04:06ID:???
>>489
COBOLerならJAVAに行くべきだな。
「Java for Cobol Programmers」がおすすめ。ただし邦訳はない、全部英語。
どうしてもASP.NETなら、古本屋で
「.NETのしくみとVB.NETプログラミング入門―COBOLユーザーに捧げる」
を買って読んでから、 「基礎からのASP.NET SE必修! (プログラマの種シリーズ) 」
かな。
0493nobodyさん2008/05/07(水) 17:37:55ID:???
すまん、ちょっと教えて欲しいのだが、
ClientのJavaScriptから、非同期でポストバックして.aspx.cs上のメソッドを実行させるか、
コールバックしてイベントを発生させることは可能?

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

具体的には、TextBoxで特定キーを押下後に、TextBoxの中身を確かめて、
特定の表示をしたいんだけど、JavaScriptでOnKeyUpをキャプチャーし、押されたキーを判断し、
JSでポストバックし、再読み込みせずにaspx.cs上のメソッドを実行させたいんだけど、
そんなことって可能ですか?(´・ω・`)
0494nobodyさん2008/05/07(水) 20:51:48ID:???
他スレで質問したところ解答が無いので
こちらでも質問させて下さい。

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

>>494
VisualStudio使えば?
そんなエラーメッセージだけからでは理由がつかめないから、
例外をキャッチして詳細なエラーを吐くページを作っとけ。
適当予測ではApp_Code以下に置いてないとか。
あと、別にコンパイルは必須ではない。
0496nobodyさん2008/05/07(水) 22:24:10ID:???
>>495さん
レスありがとうございます。
普通にVisualStudioは使っています。
追加したクラスファイルは、普通にApp_Codeに入っています。

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

原因はどうもIISの設定っぽ気がするのですがいまいち分かりません。
明日もう一度試してみようと思います。
0497nobodyさん2008/05/07(水) 22:26:37ID:wvo/I4za
ASP.NETには直接関係ないかもしれないけど、英語版Visual Studio使ってます
もちろんMSDNが英語だけど、日本語版MSDNに置き換えることってできますか?
0498nobodyさん2008/05/07(水) 22:34:48ID:???
>>495
そのAJAXでできないのよ・・・
再読み込みナシで、特定のメソッドを実行できればいいんだけど・・

>>496
俺はC#だから外しているかもしれんが、
作ったClassのNameSpaceをUsesしていないだけでは?
0499nobodyさん2008/05/07(水) 22:56:49ID:???
>>498
using ***の事ですか?
VBだと imports?
0500nobodyさん2008/05/07(水) 23:05:55ID:???
>>499
そそ、using
C#だと、普通にClassを作った限りでは、usingしなくても使えるけど。
表示されるエラーをすべて晒してみるのが手っ取り早いと思う。
0501nobodyさん2008/05/07(水) 23:08:35ID:???
>>496
マルチ乙
0502nobodyさん2008/05/07(水) 23:13:51ID:???
>>500
> そそ、using
> C#だと、普通にClassを作った限りでは、usingしなくても使えるけど。
> 表示されるエラーをすべて晒してみるのが手っ取り早いと思う。
それがどうもIIS側の設定っぽいエラーなんです。
エラーを晒したいのですが環境が自宅には無くて出来ません。
明日、>>500さんに教えて頂いた事を踏まえていろいろ試してみて駄目だったら
エラー内容を控えてこちらにてご質問させて頂きます。

0503nobodyさん2008/05/08(木) 18:21:52ID:???
>>498
Remotingかwebサービスで対応できると思う
0504nobodyさん2008/05/08(木) 19:09:51ID:???
>>503
ありがとう
なるほど、できるっぽいけど煩雑な手順を踏まないといけないのね・・

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

IPostBackEventHandlerを継承したユーザコントロールを作ったりすれば、
少しはキレイになるのかしら・・・
0505nobodyさん2008/05/08(木) 22:03:15ID:???
>>504
クエリ文字列かなにかをもとに目的の処理をするaspxを作っておいて、それにXHRでリクエスト投げる
という単純な方法じゃだめなの?
0506nobodyさん2008/05/08(木) 22:52:47ID:???
ActiveDirectory ドメイン環境で、
iisのアクセス権の設定で、基本認証にすると
ユーザ、パス入力のダイアログ出るんですけど、
クライアントPCにすでにドメインログオンしてるので、
ダイアログ出さずに認証通したいのですが、
どうやればいんでしょう…。

以前、IEだとダイアログなしで認証できてたサイトがあったので、
方法はあると思うんですけど。firefoxとかだとダイアログでてました。
05075062008/05/08(木) 23:25:54ID:???
一応自己解決
web.configに
<identity impersonate = "true" />
追加でできるらし。

ここでもうひとつ疑問点。
ドメイン外に設置したサーバ上のwebページで、
ドメイン内からアクセスしてきた、ログオンユーザの
ユーザ名を取得する方法ってないでしょうか??
0508nobodyさん2008/05/10(土) 21:35:41ID:???
web.configにパラメータを設定したいのですが
web.configへのキーの追加方法が記載された、何か参考になるサイト()はありますあか?

現在、web.configに適当にキーを設定してプログラムから読み込み、コンパイルを
するとweb.configへのキーの書き方が違っているみたいでコンパイルエラーが出てしまいます。
0509nobodyさん2008/05/10(土) 23:06:03ID:???
俺.configにパラメータを設定したいのですが、
俺.configへの彼女の追加方法が記載された、何か参考になるサイト()はありますあか?

現在、俺.configに適当にキーを設定してアーッ!
0510nobodyさん2008/05/10(土) 23:54:33ID:???
http://msdn.microsoft.com/ja-jp/library/ms228112(VS.80).aspx
0511nobodyさん2008/05/11(日) 00:10:46ID:???
>>510
さんくす
0512ASP.net初心者です男2008/05/12(月) 22:25:01ID:???
画面を上下に分割して(つまりFrameで上下に20% / 50%)画面上部に社員番号を入力し
「検索」ボタンを押すと、画面下部の詳細画面に詳細結果を出力するにはどうすれば良いでしょうか?
ベテランの人お願いします。

Default.aspx
SearchTop.aspx
Result.aspx

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

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

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

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

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

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

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




0513nobodyさん2008/05/12(月) 22:27:15ID:???
Frameヤメレ
0514nobodyさん2008/05/12(月) 22:43:30ID:???
MasterPageは使いたく無いのです。
確か何かFrameに対するtargetを指定して実行する方法があったと思うのですが。
お願いします。
0515nobodyさん2008/05/12(月) 23:16:45ID:???
>>514
今どきframe使うのがいるのに驚いた。
frameは非推奨タグなの知らないの?

なんでMasterPageが出てくるんだ?
MasterPageは便利な機能だが必須ではない。
0516nobodyさん2008/05/12(月) 23:56:21ID:???
>>515
ええっホントですか?如何せん、ASP.net初心者ですので。
始めて知りました。因みに推奨されている方法にはどんな物がありますか?
0517nobodyさん2008/05/12(月) 23:57:25ID:???
AjaxとClientCallBack関数の違いってあるんですか?
そもそも両者JavaScriptをか介しますが。
0518nobodyさん2008/05/13(火) 00:56:57ID:???
>>515
frameの件は.NET関係ない。残念ながら常識のレベル。
なお、.aspxにDB接続とかのロジック書いたりもやめるように。

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

>>517
方法論に対する実装の一つ。
つか、AJAX Extensionのように.NET側から
動的にコントロールを更新できないので、俺の用途ではイラネ。
0519nobodyさん2008/05/13(火) 00:57:25ID:???
アンカーミス
>>515 ×
>>516
0520nobodyさん2008/05/13(火) 01:07:39ID:???
>方法論に対する実装の一つ。
なんか違うな…。スマン。
正確な用語を使える程のレベルじゃないのでこのまま逃げます。
0521nobodyさん2008/05/13(火) 01:46:15ID:???
>>518
> 検索窓をわざわざフレーム切りたいってことは、使い回しをしたいということかな。
使いまわしたいって分けではないのですが、あえて検索結果を別フレームに表示
する事がDataGrid ・ GridView双方で出来るのか試してみたいのです?

1ページで行う事は普通に出来ます。
敢えて別フレームに結果を表示したいのです。
0522nobodyさん2008/05/13(火) 05:21:32ID:???
>518
>.aspxにDB接続とかのロジック書いたりもやめるように。

これはどういう意味ですか?
DB接続のコードは書籍なんかでもaspxファイルに書かれて
いるようですが、なにか問題はあるんですか?
0523nobodyさん2008/05/13(火) 05:27:32ID:???
>>521
フレーム使ってファイルを複数に分断するデメリットが大きい。
フレームで作るのは10年前の作り方という気がする。
商用Webサイトでフレームつかってるところがほとんど
なくなったの考えてみて。

まぁDataGrid使ってみれば分かるよ
結果のソート、ページングなどもできて便利。
0524nobodyさん2008/05/13(火) 10:28:06ID:???
521じゃないけど
でも実際はSEOの関係でフレーム非推奨になったわけで、主な用途はイントラなんで
代替となる機能がサクッと実現できないのが困る。
0525nobodyさん2008/05/13(火) 23:26:50ID:???
まぁ確かにそれもあるんだけど、それを言ってしまうと、
VB6の方が何でも出来てよくなかった?とかその辺の話にな(ry
0526nobodyさん2008/05/14(水) 21:34:17ID:???
>>522
クイックチュートリアル読んで、
コードビハインドの意味を考察してみるといいよ。

MS謹製の書籍でも.aspxにビジネスロジック書いてたりすることがあるが、
説明しやすくためであるのと実運用で使うのは意味が異なる。
0527nobodyさん2008/05/15(木) 00:50:53ID:???
>>522
できるよ。
以上。
↓次の方どうぞ
0528nobodyさん2008/05/15(木) 10:34:44ID:???
コードとビジネスロジックの分離。
3階層 とか ObjectDataSource とか でググれ

つづきはwebで・・・
■ このスレッドは過去ログ倉庫に格納されています