- - PR -
GridViewとfocusの関係
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-11-24 19:19
かるあさん、ご返信ありがとうございます。
かるあさんの「なんとなく」コード、試してみました。 うまくいきませんでした。。。 すなわち、フォーカスはセットされませんでした。。。 SortingではなくSortedで実装するのか? と思ってやろうとしましたが、引数に「System.Web.UI.WebControls.GridViewSortEventArgs」を持っていなかったので、(力不足の私は)にっちもさっちもいかなくなりました。。。 また、お知恵をお借りできると幸いです。 あと、DirectCastとCTypeの違い、後で調べようと思っておりましたが、早速URLを拝見しました。納得です。現在開発中のシステムは、レスポンスの速さも「それなりに」求められておりますので、大いに参考にさせて頂きます。 本当にいろいろとありがとうございます。 | ||||||||
|
投稿日時: 2006-11-25 14:36
さすがになんとなくだけあって、
これはいかがなものかと思いましたがw ついでに言うと一致する列見つけた後にbreakしてないし。 #無駄なループはCType以上に性能に影響します しかしそういう細かいつっこみはおいといて、 私の環境ではちゃんと動くのにおかしーなーと思って いろいろ試してたら、わかってきましたよ。 ずばり、デザイナから設定したDataSourceを使ってますね m9(・∀・) まず、TabIndexと同様、LinkButtonへの属性の追加は、 DataBindの後でやらないと反映されません。 私は(そしておそらくかるあさんも)コード上で DataSourceをセットして、DataBind()を自分でコールしてたので、 Sortingイベントハンドラ内で「DataBind後」の状態をつくることができてました。 ところが、デザイナで設定したDataSourceを使うと、DataBind()は自分でコールしないんですね。 #使ったことなかったから知らなかった orz 試しにデザイナから設定したDataSourceを初めて使ってみて、 空のSorting、Sorted、DataBinding、DataBoundのイベントハンドラを作って ブレークポイントをはってデバッグしてみたら、イベントは Sorting⇒Sorted⇒DataBinding⇒DataBoundの順に発生しました。 だから、Sortedでやってもだめで、DataBoundでやったらうまくいきました。 コードはこんなかんじです。
| ||||||||
|
投稿日時: 2006-11-26 00:06
うぁ、はずかしい(汗
ぼのぼのさん フォローありがとうございます。 デザイナで設定するとイベントの発生じゅう所が違ったんですね。 勉強になります。 _________________ かるあ のメモ と スニペット | ||||||||
|
投稿日時: 2006-11-27 09:59
ご返信、ありがとうございます。
ぼのぼのさんの実装方法で、うまくいきました! クラス変数を定義して、sortingでソート対象列を格納、databoundでフォーカス設定という流れですね。 確かに、クラス変数を定義するという発想は常道ですよね。。。 開発環境が違うと、こうした発想も飛んでいってしまいます。。。 Exit Forのご指摘も大変助かりました。 本当にいろいろと勉強になります。ありがとございました。 今後とも宜しくお願い致します。 |