- - PR -
Live Demo:DataListにページング機能を追加するには
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2002-11-13 11:03
Dr ADO.NETさんこんにちは
XXXさん 途中で割り込んですいません。 御教示して頂いたのに レスが遅くなり申し訳ありません。 ------------------------------------------------------------------------------- DataListのFooterTemplateにButtonを配置するときは DataListのOnItemDataBoundイベントでButtonのEnabledプロパティを 書き換えます。 コード: ------------------------------------------------------------------------------- If e.Item.ItemType = ListItemType.Footer Then CType(e.Item.FindControl("btnFirst"), Button).Enabled = False or True ::: End If ------------------------------------------------------------------------------- 上記を参考にさせて頂きうまくいきました。 ありがとうございました。 これからも宜しくお願いします。 | ||||||||
|
投稿日時: 2002-11-16 01:15
Dr ADO.NETさん、ご回答ありがとうございます。
>DataListに並べ替えとページング機能を組み込むときは、 >DataAdapterのFill()メソッドを採用すべきでは? ⇒使用するように書いたつもりなんですが・・・以下がそうです。 mySqlDataAdapter.Fill(DataSet, 3, 4, srcTable) 単純にSelectしただけでは、全行がDBよりWebに返却されるのでこれを懸念している のです。Dr ADO.NETさんのようなTop指定をしない限り全行が返却されますが 私が記述したデータ構造とSelest条件&ソート条件では単純にDr ADO.NETさんが 示されているストアドでは実現できないかなぁと思いました。 (Select * from syain order by 社員名) Dr ADO.NETさんは、私がやりたいような場合は、Dr ADO.NETさんが示されたやり方は できないので全行をWebに返却してキャッシュなどを利用してやるのが良いという思いで 返信されたのでしょうか? >性能と操作性が要求されるWebサイトを構築するときは、データベースのテーブルを >DataSetに格納してWebサーバのメモリ上にCacheする方法もあります。 >DataSetからDataTable/DataViewを作成すれば、並べ替えをメモリ上で行って >DataListにバインドできます。ページがポストバックされたときも、Cacheされた >DataSetを再利用できます。 ⇒これってPageDataキャッシュのことですよね? 使用してみようと思ってるのですが、なかなか他の懸案に追われて調査できていないのですが 上記でキャッシュされたデータは全ての接続ユーザーで利用可能なのでしょうか? またキャッシュと同じSelect文を発行した場合に.NET FWがキャッシュ有無を判断して 有ればDB取得をやめキャッシュ取得を自動的に行うような仕様なのでしょうか? mySqlDataAdapter.Fill(DataSet,srcTable)の場合ですと、DataSetにはDBからではなく キャッシュより読み込まれたデータが入るということでしょうか? キャッシュの多用はWebサーバーのメモリを圧迫させる原因になるかと思いますが ASP.NETのパフォーマンスオブジェクトでキャッシュされているメモリ量を測定するカウンタ というのは存在すするのでしょうか? お手数ですがご教授のほど、よろしくお願いいたします。 また、伝わりにくい表現が多くご迷惑をおかけいたしますことお詫びいたします。 | ||||||||
|
投稿日時: 2002-11-16 05:14
< Dr ADO.NETさんは、私がやりたいような場合は、Dr ADO.NETさんが示されたやり方は
< できないので全行をWebに返却してキャッシュなどを利用してやるのが良いという思いで < 返信されたのでしょうか? そうです。 < これってPageDataキャッシュのことですよね? そうです。 Data Cacheは、すべての接続ユーザ間で共有されます。 < キャッシュと同じSelect文を発行した場合に.NET FWがキャッシュ有無を判断して < 有ればDB取得をやめキャッシュ取得を自動的に行うような仕様なのでしょうか? すべてアプリケーション側で制御します。
< キャッシュの多用はWebサーバーのメモリを圧迫させる原因になるかと思いますが Sliding Expiration Plicyを適用すればこの問題は回避できるのでは? 以下の例は、Cacheが1分以上使用されなかったときに無効になります。 つまり、メモリが解放されます。
Happy Programming! Akio Kasai | ||||||||
|
投稿日時: 2002-11-17 21:26
Dr ADO.NETさん、ご回答ありがとうございます。
Webサーバーに全行返却ですかー・・・。 利用者数が多ければ多いほど余計なデータを保持する分 Webサーバーのメモリは圧迫されますね。 この場合はスケールアウトで対応するしかないんでしょうね。 またDataキャッシュはアプリケーション間で共通なデータしか使用できませんね。 商品カテゴリなど・・・。 ユーザー個人個人で検索条件が異なる場合の返却データはやはりSessionに格納するのが 一番なんでしょうかね。ただSessionはタイムアウトが存在する分だけ、キャッシュより やっかいですが・・・。 キャッシュのソース例を載せて頂きましてありがとうございました。 アプリケーション側で使用するしないは制御しないといけないのですね。 PageOutputキャッシュやPageFragmentキャッシュも同様なのでしょうね? てっきり私はPageOutputキャッシュを使用した場合、該当ページのaspxインスタンスが生成 されることなくキャッシュをクライアントに返却するものと思っておりました。 引き続きこの二つのキャッシュについても勉強してみます。 ありがとうございました。 | ||||||||
|
投稿日時: 2003-02-27 17:29
いつもお世話になっております。
ページング機能について調べてたのですがDEMOのソースを見せていただける事は できないでしょうか? なにぶん初心者でmySqlDataAdapter.Fill(DataSet, startRecord, maxRecords, srcTable) と書かれましてもよくわかりません。ソースを見ればイメージが湧くと思うのですが・・・宜しくお願いします。 |