- - PR -
DataGrid使用時のPanel位置について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-07-10 15:35
はじめまして。rascと申します。
いつも参考にさせて頂いております。 C#+ASP.NETでWebアプリの開発をしています。 DB内のデータを表示させるため、DataGridを使用し 実データ(5列)と[編集]ボタン(<asp:Button>)を設定しています。 編集モード時は[更新][キャンセル]ボタンを表示させています。 編集モードでは、編集対象データに関するの付属情報を Panelコントロール内に追加したLabelで一時的に表示させているのですが、 Panel表示位置の取得が出来ず困っています。 (Panelは通常は非表示となっています) クリックされた[編集]ボタンの絶対位置を調べて、 対象行のすぐ上(下)にPanelを移動&表示すればOK・・・と 考えたのですが、その絶対位置を取得する方法がわかりません。 [試したこと] ・該当すると思われるプロパティ探し →見当たりません。。。 (Windowsフォームの"Button"では絶対位置の取得が可能) ・((Button)e.Item.FindControl("btnEdit")).Style["Top"] →DataGrid上の[編集]ボタンには Styleを指定していないため取得不能 ・btnEdit.Attributes("Style") →同上 Javascriptならクリックした場所の絶対位置が取得できますが、 マウスカーソルの先っぽの位置を取得するため [編集]ボタン押下時の位置によりpanelが表示される位置に 若干のズレが生じます。 サーバサイドで特にStyle設定などを行っていない webコントロールの絶対位置を取得することは、 そもそも可能なのでしょうか? ご存知の方、よろしくお願いいたします。 |
|
投稿日時: 2003-07-10 17:02
aspxのHTMLビューでpageLayoutプロパティをGridLayout(デフォルト)からFlowLayoutに変えて、各コントロールのstyleの中の位置指定を削除して下さい。
そうすると、重ならないで出るので、計算する必要はありません。 |
|
投稿日時: 2003-07-10 17:25
catsさま
早速のお返事、ありがとうございます。 ご指摘の件ですが既にFlowLayout設定済みです。 >そうすると、重ならないで出るので、計算する必要はありません。 PanelはDataGridの上に重なって表示させたいと考えています。 必要な時だけ表示されるレイヤみたいなイメージです。 表示させるデータ件数が多いため、 DataGridではページングを有効&ページサイズを20行としています。 Panelの表示位置を(例えば画面上部で)固定してしまうと、 1行目のデータで[編集]ボタンをクリックしたときには 上部にあるPanelは見えますが、20行目のデータで 同様の操作を行うと画面をスクロールしないとPanelは表示されません。 データ編集時のみ、該当データに対する付属情報 (あくまでも参照するだけ)を常に表示させたいのです。 なお各コントロールの表示状態の遷移(?)は以下のとおりです。 1)ページ起動時: Grid:表示/Panel:非表示 2)[編集]ボタン押下時: Grid:表示/Panel:表示(カレント行のデータに対する付属情報記載) 3)[キャンセル]ボタン押下時: Grid:表示/Panel:非表示 上記のような動作は可能でしょうか? |
1