C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■6621  Re[3]: エンコードのエラー
□投稿者/ chite -(2006/09/20(Wed) 13:08:13)

    分類:[C#] 

    No6609に返信(επιστημηさんの記事)

    > 名前空間 System.Web だっけか確か。

    それが、using System.Web を設定したのにビルドエラーがでます。
    どうしてなんでしょうか?
記事No.6604 のレス /0過去ログ6より / 関連記事表示
削除チェック/

■87576  ASP.netのListViewについての疑問
□投稿者/ ねこ -(2018/06/07(Thu) 20:37:33)

    分類:[ASP.NET (C#)] 

    こんにちは。
    初めて投稿させていただきます。

    開発環境
    Visual Studio 2015 Community
    C#

    現在、DropDownListとListViewとButtunを使用して検索結果を出力するサイトを作成しています。
    ListViewは下記サイトを参考にして作成しました。
    http://www.atmarkit.co.jp/fdotnet/dotnettips/913aspnetlistvwcust/aspnetlistvwcust.html
    http://www.atmarkit.co.jp/fdotnet/dotnettips/918aspnetlistvwpager/aspnetlistvwpager.html

    疑問1.
    DropDownListにキーワードが格納されていてキーワードを選択して検索ボタンを押すとListViewに紐付けているSqlDataSourceのSelectCommandを切り替えるという仕組みです。(例えば、SELECT COL1, COL2, COL3 FROM TABLE1 WHERE COL1 = [DropDownListのキーワード])
    その際、DropDownListに何も選択していなかったら全検索する為にSqlDataSourceを作成した時に設定したSQL文(例えば、SELECT COL1, COL2, COL3 FROM TABLE1)と同じSelectCommandを指定しているのですがListViewの表示が切り替わりません。
    仕方がないので全検索するときのSelectCommandには「WHERE 1 = 1」を追加して全検索しているのですがListViewの仕様でしょうか?

    疑問2.
    上記仕組みにはページャーを設定しているのですが他のページをクリックしてもページングされないのでPagePropertiesChangedイベント時に再度SelectCommandを設定しています。これもListViewの仕様でしょうか?

    ご存知の方がいらっしゃったらご教示いただけないかと思い質問させていただきました。
    よろしくお願いいたします。
親記事 /過去ログ150より / 関連記事表示
削除チェック/

■87577  Re[1]: ASP.netのListViewについての疑問
□投稿者/ WebSurfer -(2018/06/07(Thu) 21:28:20)
    No87576 (ねこ さん) に返信

    > ListViewの仕様でしょうか?

    参考にされているサイトは読んでませんし(それを読めというの自分には負担が大きすぎますので)、
    質問者さんがどういうコードを書いているかが全く分かりませんんけど、普通に考えてそれはないと
    思います。

    問題を再現できる必要最低限のコードをアップできませんか? そうしていただけるとお役に立てる
    かもしれません。

    なお、その際は、あなたの開発環境(OS, .NET, IIS のバージョン、テンプレートは何かなど)を書
    いていただくようお願いします。
記事No.87576 のレス /過去ログ150より / 関連記事表示
削除チェック/

■87578  Re[1]: ASP.netのListViewについての疑問
□投稿者/ WebSurfer -(2018/06/08(Fri) 12:40:46)
    No87576 (ねこ さん) に返信

    いろいろ不明ですが、できる方法を紹介しておきます。

    ASP.NET 3.5 の ListView や DapaPager にはいろいろ不具合があるのですが、.NET 4.5.2
    以降を使っているなら以下に紹介する方法で問題ないでしょう。多分

    もし、UpdatePanel を使っているなら非同期ポストバックのトリガとなるコントロールの
    ClientIDMode プロパティはデフォルトではなく AutoID にしておくことをお勧めします。

    #だから開発環境を書いてくれと言っているわけで、意味もなく聞いているわけではない
     のですよ。

    > SqlDataSourceのSelectCommandを切り替えるという仕組みです。

    そういう方法ではなくて、WHERE 句は以下のように固定しておいて、

    SELECT COL1, COL2, COL3
    FROM TABLE1
    WHERE @COL1 = 'ALL' OR COL1 = @COL1

    DropDownList の SelectedValue プロパティの値をパラメータ @COL1 に代入して、全件抽出と
    条件抽出の両方に対応できるようにするという方法ではいかがですか?

    以下の記事は ListView ではなく GridView を使った場合ですが、GridView を ListView に置
    き換えても同じことはでき、これで「疑問1.」は解決するはずです。

    DropDownList を使って絞込み
    http://surferonwww.info/BlogEngine/post/2011/07/17/Showing-records-selected-by-DropDownLists-into-GridView.aspx

    デザイナでページングを有効にすれば DataPager が自動的に配置されてページングは可能にな
    り「疑問2.」も解決できると思います。

    ただし、 DataPager を配置してページングを行う場合、例えば、全件抽出してから別のページ
    に移動したあと、そのページで条件抽出を行った場合、何ページかという情報は保持されていて、
    「そのページ」を表示しようとします。

    条件抽出でレコード数が減ると当然全ページ数は減りますが、「そのページ」にはレコードがない
    場合 DataPager を含めて何も表示されないという結果になります。

    なので、DropDownList の選択が変更されたら最初のページを表示するようなコートを追加する必
    要があります。

    デザイナを使った場合、DataPager フィールドにデフォルトで NextPreviousPagerField が設定
    されると思いますが、それではページ指定の制御ができないのでNumericPagerField を実装し、
    その HandleEvent メソッドを利用します。

    具体例は以下の記事を見てください。

    ListView でページ指定
    http://surferonwww.info/BlogEngine/post/2010/11/13/Show-specified-page-of-ListView-programmatically.aspx
記事No.87576 のレス /過去ログ150より / 関連記事表示
削除チェック/

■87579  Re[2]: ASP.netのListViewについての疑問
□投稿者/ ねこ -(2018/06/08(Fri) 19:31:02)
    No87578 (WebSurfer さん) に返信
    > ■No87576 (ねこ さん) に返信
    
    WebSurfer様
    
    ご返信ありがとうございます。
    
    まずは、開発環境です。
    OS           Windows7
    .NET         4.0
    IIS          10.0 Express
    テンプレート 使っていません
    
    投稿後に冷静になるとこんな仕様ではないはず、、、と思いまして、それでどちらかというと同じような症状の方がいないかな、位の気持ちになっています。
    わけのわからない投稿にこんなにご丁寧にご回答いただきましてありがとうございます。
    
    > 
    > いろいろ不明ですが、できる方法を紹介しておきます。
    > 
    > ASP.NET 3.5 の ListView や DapaPager にはいろいろ不具合があるのですが、.NET 4.5.2 
    > 以降を使っているなら以下に紹介する方法で問題ないでしょう。多分
    
    4.0だと微妙ですかね。
    
    > もし、UpdatePanel を使っているなら非同期ポストバックのトリガとなるコントロールの
    > ClientIDMode プロパティはデフォルトではなく AutoID にしておくことをお勧めします。
    
    UpdatePanelは使用していません。
    
    > #だから開発環境を書いてくれと言っているわけで、意味もなく聞いているわけではない
    >  のですよ。
    
    開発環境というとVisual Studioのことかと思い、.NET Frameworkのことを失念しておりました。
    
    >>SqlDataSourceのSelectCommandを切り替えるという仕組みです。
    > 
    > そういう方法ではなくて、WHERE 句は以下のように固定しておいて、
    > 
    > SELECT COL1, COL2, COL3 
    > FROM TABLE1 
    > WHERE @COL1 = 'ALL' OR COL1 = @COL1
    > 
    > DropDownList の SelectedValue プロパティの値をパラメータ @COL1 に代入して、全件抽出と
    > 条件抽出の両方に対応できるようにするという方法ではいかがですか?
    > 
    > 以下の記事は ListView ではなく GridView を使った場合ですが、GridView を ListView に置
    > き換えても同じことはでき、これで「疑問1.」は解決するはずです。
    > 
    > DropDownList を使って絞込み
    > http://surferonwww.info/BlogEngine/post/2011/07/17/Showing-records-selected-by-DropDownLists-into-GridView.aspx
    
    WebSurfer様のページはいつも見させていただいております。
    今回もこちらのページを見させていただいたのですが、ALLという選択肢を相手(と言っても社内)が望まず断念しておりました。
    
    > デザイナでページングを有効にすれば DataPager が自動的に配置されてページングは可能にな
    > り「疑問2.」も解決できると思います。
    
    デザイナでページングを有効にしたのですがページをクリックしても表示が変わらずネットで色々調べて(その後そのサイトが見つからずリンクを貼れないのですが)PagePropertiesChangedイベントでSelectCommandを再設定すればいいとあり設定しました。
    一応動いているのですが疑問に思いまして。
    
    > ただし、 DataPager を配置してページングを行う場合、例えば、全件抽出してから別のページ
    > に移動したあと、そのページで条件抽出を行った場合、何ページかという情報は保持されていて、
    > 「そのページ」を表示しようとします。
    > 
    > 条件抽出でレコード数が減ると当然全ページ数は減りますが、「そのページ」にはレコードがない
    > 場合 DataPager を含めて何も表示されないという結果になります。
    > 
    > なので、DropDownList の選択が変更されたら最初のページを表示するようなコートを追加する必
    > 要があります。
    > 
    > デザイナを使った場合、DataPager フィールドにデフォルトで NextPreviousPagerField が設定
    > されると思いますが、それではページ指定の制御ができないのでNumericPagerField を実装し、
    > その HandleEvent メソッドを利用します。
    > 
    > 具体例は以下の記事を見てください。
    > 
    > ListView でページ指定
    > http://surferonwww.info/BlogEngine/post/2010/11/13/Show-specified-page-of-ListView-programmatically.aspx
    
    この件は、検索ボタンを押した時の処理に以下のコードを書いて対応しています。
    DataPager dp = (DataPager)ListView1.FindControl("DataPager1");
    dp.SetPageProperties(0, 20, false);
    
    同じような症状の方がいらっしゃるかこの土日待ってみてから解決済みにします。
記事No.87576 のレス /過去ログ150より / 関連記事表示
削除チェック/

■87580  Re[3]: ASP.netのListViewについての疑問
□投稿者/ WebSurfer -(2018/06/08(Fri) 20:13:41)
    No87579 (ねこ さん) に返信

    一番最初の私のレスで、

    > 問題を再現できる必要最低限のコードをアップできませんか? そうしていただけるとお役に立てる
    > かもしれません。

    ・・・と書きましたけどそれはやる気なしですか?

    とにかく、SELECT クエリを切り替えても表示が変わらないとか、ページャーが働かないということの
    原因が ListView の仕様ということはありえません。

    質問者さんのやり方の問題でしょうから、そのやり方がどうなっているか、ここで得られる情報以外は
    知り得ない第三者に分かるようにしていただかないと、質問者さんが期待する情報は出てこないと思う
    のですが・・・
記事No.87576 のレス /過去ログ150より / 関連記事表示
削除チェック/

■87581  Re[4]: ASP.netのListViewについての疑問
□投稿者/ ねこ -(2018/06/08(Fri) 21:17:19)
    No87580 (WebSurfer さん) に返信
    > ■No87579 (ねこ さん) に返信
    >
    > 一番最初の私のレスで、
    >
    >>問題を再現できる必要最低限のコードをアップできませんか? そうしていただけるとお役に立てる
    >>かもしれません。
    >
    > ・・・と書きましたけどそれはやる気なしですか?
    >
    > とにかく、SELECT クエリを切り替えても表示が変わらないとか、ページャーが働かないということの
    > 原因が ListView の仕様ということはありえません。
    >
    > 質問者さんのやり方の問題でしょうから、そのやり方がどうなっているか、ここで得られる情報以外は
    > 知り得ない第三者に分かるようにしていただかないと、質問者さんが期待する情報は出てこないと思う
    > のですが・・・
    >

    WebSurfer様

    すみません。
    セキュリティ上会社からコードを投稿出来ませんでしたので自宅で環境が整えば投稿します。
    遅くなりそうでしたら一旦解決済みにしようと思います。
記事No.87576 のレス /過去ログ150より / 関連記事表示
削除チェック/

■87583  Re[5]: ASP.netのListViewについての疑問
□投稿者/ ねこ -(2018/06/10(Sun) 13:06:21)
    No87581 (ねこ さん) に返信
    > ■No87580 (WebSurfer さん) に返信
    >>■No87579 (ねこ さん) に返信
    >>
    >>一番最初の私のレスで、
    >>
    > >>問題を再現できる必要最低限のコードをアップできませんか? そうしていただけるとお役に立てる
    > >>かもしれません。
    >>
    >>・・・と書きましたけどそれはやる気なしですか?
    >>
    >>とにかく、SELECT クエリを切り替えても表示が変わらないとか、ページャーが働かないということの
    >>原因が ListView の仕様ということはありえません。
    >>
    >>質問者さんのやり方の問題でしょうから、そのやり方がどうなっているか、ここで得られる情報以外は
    >>知り得ない第三者に分かるようにしていただかないと、質問者さんが期待する情報は出てこないと思う
    >>のですが・・・
    >>
    >
    > WebSurfer様
    >
    > すみません。
    > セキュリティ上会社からコードを投稿出来ませんでしたので自宅で環境が整えば投稿します。
    > 遅くなりそうでしたら一旦解決済みにしようと思います。

    WebSurfer様

    自宅でテストプロジェクトを作成しましたが、疑問1. 疑問2. 共再現しませんでした。
    お騒がせして申し訳ございません。
    明日もう一度会社のコードを見直してみます。
記事No.87576 のレス / END /過去ログ150より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -