- PR -

GridView.DataSourceをコードで指定時のトラブル

1
投稿者投稿内容
たど
会議室デビュー日: 2007/09/19
投稿数: 3
投稿日時: 2007-09-19 08:59
お世話になります。
VisualWebDeveloper SP1で開発しています。
コードで、GridView.DataSourceに
OdbcDataReaderから作成したDataReaderを指定しています。

GridViewのCommandFieldで作成した編集ボタンを押すと
1度目の編集ボタン押下ではGridViewが編集状態になりません。
2度押すと編集状態になります。
このとき別の行の編集ボタンを押すと2度目に押した行ではなく
1度目に押した行が編集状態になります。
またキャンセルボタンも同様に2回押す必要があります。

DataSourceをSqlDataSourceに設定すると、このようなことはなく
1度目に押した行が編集状態になります。
GridViewだけでなく、DetailsViewでも同様でした。
何か対策はありますでしょうか?
よろしくお願いいたします。



[ メッセージ編集済み 編集者: たど 編集日時 2007-09-19 09:13 ]
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2007-09-20 15:00
DataSourceにDataReaderを設定する作業はどのようにして行っていますか?
たぶん設定のタイミングとかの問題じゃなかったかと思います。
たど
会議室デビュー日: 2007/09/19
投稿数: 3
投稿日時: 2007-09-20 17:09
どっとねっとふぁんさん、ありがとうございます。

Page_Loadで、
Dim reader as OdbcDataReader = (New HOGE).SelectAllDataReader
GridView1.DataSource = reader
GridView1.DataBind()

としています。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2007-09-20 17:22
Postback時(IsPostBackがtrueのとき)にDataBindしないようにしたらどうなります?

#たぶんそれでいけたと思うけど、もしかしたら違ってたかもしれん。
たど
会議室デビュー日: 2007/09/19
投稿数: 3
投稿日時: 2007-09-20 18:06
たびたびありがとうございます。

Page_Loadで下記のようにしてみたところポストバック時には
GridViewにデータがなくGridViewが表示されなくなってしまいました。。。

If IsPostBack = False Then
Dim reader as OdbcDataReader = (New HOGE).SelectAllDataReader
GridView1.DataSource = reader
GridView1.DataBind()
End If

どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2007-09-20 18:42
ああ、そうですね。。。
前に同じような状況になった記憶はあるんだけど、なんでそうなったんだか
思い出せなくて。

#出先なんで試すわけにもいかず。。。
1

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