プロが教える店舗&オフィスのセキュリティ対策術

現在、アプリケーションを作成しているのですが構想と近いサンプルが@ITに
ありましたので利用させて頂きました。

参考にさせて頂いたのは[ASP.NET]1つのWebフォーム内で一覧/詳細画面を切り替えるには?です。
http://www.atmarkit.co.jp/fdotnet/dotnettips/354 …

現在、サンプルのままでテーブル等を変更しただけの状態になっており、表示もうまくされております。

作りたいのはこのサンプルの前に検索フォームがあり、検索フォームで押されたボタン1が押されてこのサンプルに
きた場合は検索キーはA・ボタン2が押された場合の検索キーはBとサンプルのPage_Loadの際にに表示されるテーブルの検索キーが異なってくる形のものです。

ボタンの種類によって検索キーを変える処理分岐の方法が分からないのとこのサンプルでPage_Loadの際に
テーブルをあと4つ表示させたいのですがどの様にすれば宜しいのでしょうか?
(データソース名も違うテーブルです。)

色々調べてみたのですがどうしても分からなかったので教えて頂けるとありがたいと思っています。

最近、勉強し始めたばかりで分かりづらい部分があるかと思いますが宜しくお願い致します。

A 回答 (51件中1~10件)

検索キーや検索方法を検索ページ側でプロパティまたはコントロールで参照できるようにします



言語はVB.NETとして回答します
たとえば TextBox1に検索キー、HiddenField1に検索方法を格納するとします
プロパティでやるなら 検索ページ側の VBファイルで
Public Readonly Property myKey() as String
  Get
    return Text1.Text
  End Get
End Property

public readonly property myProc() as String
  Get
    return HiddenField1.Value.ToString
  End Get
end Property

といった具合にプロパティを準備します
ボタンAのClickイベントで
HiddenField1.Value = ButtonA.CommandName

ボタンBのClickイベントで
HiddenField1.Value = ButtonB.CommandName

ボタンA・ボタンBの PostBackUrlプロパティを遷移先ページに設定
ボタンA・ボタンBのCommandNameプロパティを遷移先ページに渡したいデータを設定

遷移先ページのaspxをソースビューにして
<@ Pasge Langage="VB" @>の次の行に 遷移元ページを示すディレクティブを追加します
<%@ PreviousPageType VirtualPath="~/Search.aspx" %>
これで Loadイベントなどで PreviusPageで検索設定ページを参照できます
VirtualPathなどは適宜修正してください

Loadイベントで
PreviusPage.myKeyやPreviusPage.myProcなどでデータソースのSelectCommandなどを編集してください

プロパティを遷移元ページに設定しないなら
dim obnjText as TextBox
objText = CType( PreviusPage.FindControl("TextBox1"), TextBox )
strSsqlCommand += "Where ['項目'] like '%" & objText.Txt & "%'"
といった具合でコントロールを限定してデータを取得しましょう

PlaseHolderのOn/Offなどの設定も PreviusPage.myProcで判断するとかだと思います

具体的に どのテーブルをどんな具合で表示したいのかを投稿してみましょう

この回答への補足

redfox63さん
ありがとうございます!
ちょっと難しい感じがしてしまいました。。。

月曜日がんばって試してみます。
またご質問させて頂くと思いますが宜しくお願い致します。

補足日時:2007/10/19 20:06
    • good
    • 0
この回答へのお礼

すみません。。。

プロパティを遷移元ページに設定しない場合はサンプルでいう→SqlCommand comm = new SqlCommand("SELECT isbn,title,publish FROM books ORDER BY published DESC", db);をご教示頂いたソースでコントロールすると言う事でしょうか?

理解が乏しく申し訳ありません。

表示希望はこのサンプルのPage_Load時の一覧にテーブルが増えた感じです。
--------------------------------
booksカラム
--------------------------------
books
--------------------------------
books1
--------------------------------
books2
--------------------------------

booksの詳細が押下されたらbooksの一覧をbooks1の詳細が押下されたらbooks1の一覧を表示させたいです。

どうか宜しくお願い致します。

お礼日時:2007/10/22 11:30

一度何が必要でどうコーディングすべきかなどの検討をやってみる必要があるでしょうね

    • good
    • 0
この回答へのお礼

おっしゃる通りです。

ありがとございました☆

お礼日時:2007/11/25 14:31

Label.Textに何を代入したのでしょう?


前頁からの指から構築したSQLなのでしょうか …
SQLなら『 SELECT ほにゃらら FROM ほげほげ WHERE 何とか ORDER BY ぺけぺけ』といった文字列になるともいますが
    • good
    • 0
この回答へのお礼

お返事遅れ申し訳ございません。

下位部分にLabel.Textがありましたのでそれが原因でした。。。
その部分を削除して実行すると次は画面が真っ白になってしまいました。

redfox63さまの環境では期待通りの動作がなされていたとのお話も御座いましたので1度最初から投稿内容を確認しながら作成し直そうと思います。自分で考えながら作成してみますので一旦、投稿を締め切ろうと思います。

どうしても期待通りの動作がなければ再度、投稿させて頂きますのでご覧になる事がありましたらご教示下さいませ。

今回は最初から長期間に渡りご指導いただきました事非常に感謝いたしております。本当にありがとうございました。

ASP.NETに関する投稿をした際は必ずredfox63さまに回答頂いていました。今回のみならず感謝しております。

これからもどうかよろしくお願い申し上げます。

お礼日時:2007/11/25 12:35

よかったですね ・・・ ん~ 原因の究明が出来ていないのが気にかかりますけど



そうですね#29辺りまで戻れば良いでしょう

PreviousPage.myProcOne やPrevoiusPage.myKeyOneを取得して
SQLを構築実行でしょう
SQLを組み立てる際に ソート用の ORDER BY句を最後にしましょう

この回答への補足

ありがとうございます☆

♯12のコードにて実行しました。
すると画面の上部に

Label Label Label

とだけ表示されました。
レコードがでないので間違いになるのですよね??

補足日時:2007/11/21 16:18
    • good
    • 0

919156の情報は チーム開発用のサーバーが導入されている場合の更新手続きだと思います


参考URLに Term Foundation ServerのホームページURLを貼っておきます

参考URL:http://www.microsoft.com/japan/msdn/vstudio/prod …

この回答への補足

redfox63さま

ありがとうございます☆
VS2005を1度アンインストールして再インストール後に919156の情報を無視してSP1をインストールして見た所、SP1を当てる事ができました!

そこで早速、SP1を当てた状態でF5実行した所、「アプリケーション・・・」のエラーが出なくなりました♪

一体、何が原因だったのかはわかりませんが・・・
諦めずご教示頂いた事感謝致しております。
ありがとうございます!!

本題は♯29くらいまで戻らせて頂けばよろしいでしょうか?
(かなり前になりますね・・・すみません。)

宜しくお願い申し上げます。

補足日時:2007/11/21 11:29
    • good
    • 0

ん~


どうやっても 同じ状況を作れませんねぇ

VirtualPCでネットワーク接続をしない状態にしても別段開発は出来てますし
クリーンインストールしても状況が変わらないのであれば ちょっとお手上げですね

VS2005のサービスパックを適用してみてはいかがでしょう

# 改善されるかどうか怪しいですが … 何でかなぁ?

参考URL:http://www.microsoft.com/japan/msdn/vstudio/down …

この回答への補足

ありがとうございます!

とりあえずVS2005 SP1を当ててみたいと思い、サポート技術情報 919156 の更新プログラムをインストールした際にメッセージボックスが出たのですがこれは何かバージョンの違いとかあるのでしょうか?

メッセージボックス内容
Windowインストーラサービスでアップグレード修正プログラムをインストールできません。アップグレードするプログラムがないか、またはアップグレード修正プログラムでアップグレードするプログラムのバージョンが違う可能性があります。アップグレードするプログラムがこのコンピューターにあり、アップグレード修正プログラムが正しいかどうかを確認してください。

と表示されました。

補足日時:2007/11/20 15:46
    • good
    • 0
この回答へのお礼

あ、すみません。

最新版の有無を確認でUpdataしたらSP1になったと思います。
SP1って何か使い方が少し違う気がするのですが・・・

お礼日時:2007/11/20 17:10

もしかして NIC(ネットワークインターフェース)にケーブルもつながない状態で実行していたのでしょうか?



社内のイントラネットにつながった状態を考えていたのですが ・・・

この回答への補足

ありがとうございます!

担当に確認してみました。

>もしかして NIC(ネットワークインターフェース)にケーブルもつながない状態で実行していたのでしょうか?
繋がった状態との事です。

>社内のイントラネットにつながった状態を考えていたのですが ・・・
社内のイントラネットに繋がった状態との事です。

お答えになっていますでしょうか?
よろしくお願い致します。

補足日時:2007/11/20 09:28
    • good
    • 0

IISマネージャで見た際に 左ペインで


インターネット インフォメーション サービス
 コンピュータ名(ローカルコンピュータ)
  Webサイト
   既定のWebサイト
    この下にいろいろなフォルダ
といった構成ですよね
でこの下にいろいろなフォルダの階層に
     aspnet があって
      Web があって ここにaspxファイルが置いてある
といった構成ですか?

Webのアイコンですが フォルダーのアイコンですか
それとも段ボール箱の開いたようなアイコンでしょうか

前者なら Webアプリケーションになっていません
後者なら Webアプリケーションになっています

フォルダーアイコンの右下に地球のような物がついているのは仮想ディレクトリですからこれも Webアプリケーションではありません

ここがこのアイコンでしょう?

NTFSのアクセス権は エクスプローラでその見たいフォルダーの親まで開きます
見たいフォルダーを選択して
ファイル > プロパティ > セキュリティタブ で表示されます

この回答への補足

おはようございます☆

Webサイト
   既定のWebサイト
    この下の階層に「aspnet」があって「Web」があって ここにaspxファイルが置いてある構成なのでおっしゃる通りです!

Webのアイコンですが 段ボール箱の開いたようなアイコンになっております。

NTFSのアクセス権は問題ないようです。。。


少しだけお時間頂けますでしょうか?
端末をリカバリして1度完全にクリーンな状態にしてやり直してみます☆

補足日時:2007/11/19 10:00
    • good
    • 0
この回答へのお礼

redfox63さま

1度端末をクリーンな状態試してみました。
やはりダメだったのですが無理矢理外向けのインターネットが繋がる環境を作り実験してみた所、「アプリケーション・・・」のエラーが出ませんでした。これが原因の様です。。。

実験という名目でネット接続をしたのですが会社の環境上はネットが繋がらない状態に戻さなければいけません。。。

ローカルでエラーが出る以上、Webサーバーにaspxファイルを配置して作っていくしか方法はないと思われます。

サイトの発行をしなくても可能なのでしょうか??
よろしくお願いいたします。

お礼日時:2007/11/19 19:08

作成したサイトのパスは何処でしょう?



そのフォルダーのNTFSのアクセス許可はどのようになっていますか
また IISマネージャでそのサイトのアクセス許可がどのようになっているのでしょう

wwwrootの下に展開しているのでしょうか ・・・
MSDN Subscriptionに加盟しています?
しているのであれば インシデントを消費して質問してみると言うのも手ですよ …

この回答への補足

>作成したサイトのパスは何処でしょう?
c:\inetpub\wwwroot\aspnet\Web\aspxファイルとなっています。

>そのフォルダーのNTFSのアクセス許可はどのようになっていますか
NTFSのアクセス許可は見方が分かりませんでした。

>また IISマネージャでそのサイトのアクセス許可がどのようになっているのでしょう
フル権限とのメッセージボックスが出ます。

>MSDN Subscriptionに加盟しています?
加盟していないです。。。

またlocalhostでaspxファイルを実行すると以下のエラーが出ました。
やはりあのエラーと関係あると思われます。

'/aspnet' アプリケーションでサーバー エラーが発生しました。
--------------------------------------------------------------------------------

構成にエラーがあります。
説明: この要求を処理するために必要な構成ファイルの処理中にエラーが発生しました。以下のエラーの詳細を確認し、構成ファイルに変更を加えてください。

パーサー エラー メッセージ: アプリケーション レベルを超えて allowDefinition='MachineToApplication' として登録されているセクションを使うことはできません。このエラーは、仮想ディレクトリが IIS でアプリケーションとして構成されなかった場合に発生します。

ソース エラー:


行 50: を有効にします。
行 51: -->
行 52: <authentication mode="Windows"/>
行 53: <!--
行 54: <customErrors> セクションは、要求の実行中にハンドル


ソース ファイル: c:\inetpub\wwwroot\aspnet\Web\web.config 行: 52


--------------------------------------------------------------------------------
バージョン情報: Microsoft .NET Framework バージョン:2.0.50727.42; ASP.NET バージョン:2.0.50727.210

よろしくお願い致します。

補足日時:2007/11/16 19:23
    • good
    • 0

XPのコントロールパネルの『アプリケーションの追加と削除』で


『Windowsコンポーネントの追加と削除』ボタンをクリック
Windowsコンポーネントウィザードで『IIS』を選択
詳細ボタンをクリック
『FrontPage2000 ServerExtentions』のチェックつけてOK
次へボタンで ウィザードを完了してみてください
その後 #42
の手順を実行してみましょう

この回答への補足

ありがとうございます。

ServerExtentionsの設定できました。
IIS再起動にて実行しましたが
・アプリケーションレベルを超えて allowDefinition='MachineToApplication'として登録されているセクションを使うことはできません。このエラーは、仮想ディレクトリがIISでアプリケーションとして構成されなかった場合に発生します。行 26
のエラーは変わりませんでした。。。

補足日時:2007/11/16 14:40
    • good
    • 0
1  2  3  4  5  6 次の回答→

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!