- PR -

GridViewの初期化方法を教えてください。

1
投稿者投稿内容
きよよ
常連さん
会議室デビュー日: 2007/01/17
投稿数: 32
投稿日時: 2007-01-18 15:14
お世話になります。
VS2005で初めてWeb開発を行っています。

GridViewを使用しているのですが、データバインド時に「ある件数以上データが
あったら明細を表示しない」という制御をしたいです。

しかしGridViewの行を0件にする方法がわかりません。
(Disposeとか色々やってみたのですがだめでした。)

初歩的なことかもしれませんが、宜しくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-01-18 16:07
引用:

きよよさんの書き込み (2007-01-18 15:14) より:

しかしGridViewの行を0件にする方法がわかりません。
(Disposeとか色々やってみたのですがだめでした。)


GridView が表示している DataSource を 0 件にすると...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2007-01-18 16:25
GridViewにDataSourceをバインドしないでおいて、データがある件数以下の
場合だけバインドする、といった仕組みのほうが簡単なような気がする。
きよよ
常連さん
会議室デビュー日: 2007/01/17
投稿数: 32
投稿日時: 2007-01-18 17:15
お返事ありがとうございます。

現在は、テキストボックスに入力された値をSqlDataSourceの
SelectQueryにパラメータ渡しでSQLを設定しています。
また、GridViewのデザインでもバインドしているSqlDataSourceの内容を
反映させています。

どっとねとふぁんさんの方法を試そうとしたところ、
GridViewからSqlDataSourceのバインドを外すと
デザインが崩れてしまうので、じゃんぬねっとさんの
方法を試そうと思いました。

ところが、SqlDataSourceのデータを0件にしようと、SqlDataSourceの
プロパティを見てみたのですが方法がわかりません。
簡単に0件にする方法があるのでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-01-18 17:22
引用:

きよよさんの書き込み (2007-01-18 17:15) より:

どっとねとふぁんさんの方法を試そうとしたところ、GridViewからSqlDataSourceのバインドを外すとデザインが崩れてしまうので、じゃんぬねっとさんの方法を試そうと思いました。


ヘッダが表示されなかったような気がします。

引用:

ところが、SqlDataSourceのデータを0件にしようと、SqlDataSourceのプロパティを見てみたのですが方法がわかりません。
簡単に0件にする方法があるのでしょうか?


使用中の DataSource を 0 件にするのではなく、
インスタンスしただけで、空っぽの DataSource を設定すれば良いのではないでしょうか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
きよよ
常連さん
会議室デビュー日: 2007/01/17
投稿数: 32
投稿日時: 2007-01-18 18:39
以下の方法で実現できました。

@SqlDataSourceを2つ用意
ASqlDataSource1のバインド結果の件数が一定件数以上だったら
 SqlDataSource2の空のデータソースをGridViewに表示する。

みなさんありがとうございました!
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2007-01-18 19:29
ん?これだと(2)のときはヘッダー表示されないよね。
これでいいなら私のいってた方法でいいはず。

すでにバインドしてあるSqlDataSourceをはずそうとすると、「初期化します」という
メッセージが表示されたんじゃないかと思うけど、ここで初期化させなければ
GridViewの書式は残ったはず。
データの取得にはSqlDataSourceを使ってもいいけど、ページングとかがないなら
DataReaderとかでデータとりだしてバインドしてもきちんと動いたと思います。
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2007-01-19 09:03
コード:
if (一定件数以上()) {
    string sqlText = "SELECT * FROM hogehoge WHERE 1 = 0;";
}



ダメかな?^^;

_________________
R・田中一郎 -  R.Tanaka.Ichiro’s Blog
1

スキルアップ/キャリアアップ(JOB@IT)