- PR -

DagaGrid内の各列のWidthについて

1
投稿者投稿内容
モン吉君
会議室デビュー日: 2006/06/26
投稿数: 16
投稿日時: 2006-10-06 13:44
お世話になります。
ASP.NETでWebアプリを作成しております。

@ASP.NET側でDataGrid全体のWidthを設定
AASP.NET側でDagaGrid内の各列(テンプレート列など)のWidthを%で設定
B実行時にHTMLに変換

この時、DagaGrid内の各列のWidth設定はどのタイミングで行われているのでしょうか?
BでHTMLに変換する時でしょうか?
上記の場合だったとしたら、自動設定されたDagaGrid内の各列のWidth.ValueはC#上から取得することは出来ないのでしょうか?
ちなみに、ItemDataBound時には設定されていませんでした。

もし、C#上でWidth.Valueを取得出来る方法がございましたら、ご教授願いたいと思います。
よろしくお願いいたします。

■環境
Windows Server 2000
IIS 6.0
VisualStudio.NET 2003
Webアプリ(C#)
IE6.0
峰岸竜三
会議室デビュー日: 2006/09/21
投稿数: 4
お住まい・勤務地: 小笠原組内務部長
投稿日時: 2006-10-06 13:52
それ以前に%指定なんて、ブラウザに表示してみなきゃわかんないでそ?
ブラウザによっては、親要素の影響の受け方が違いまっせ。
モン吉君
会議室デビュー日: 2006/06/26
投稿数: 16
投稿日時: 2006-10-06 15:26
ご返事ありがとうございます。

%指定によるWidth値は最終的にブラウザの動作に委ねるので、ASP.NETの段階でわかるわけがない

と理解しました。
つまり、ASP.NETでWidthを固定設定しない限りは取得出来ないのですね。
ありがとうございます。
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-10-06 23:10
引用:

モン吉君さんの書き込み (2006-10-06 13:44) より:

@ASP.NET側でDataGrid全体のWidthを設定
AASP.NET側でDagaGrid内の各列(テンプレート列など)のWidthを%で設定
B実行時にHTMLに変換


既に回答が出ているようですが、上記の場合なら一定の計算で自分で算出できそうな気がしますね。
高い精度が求められるなら厳しいかもしれませんが・・・
_________________
R・田中一郎 -  R.Tanaka.Ichiro’s Blog
モン吉君
会議室デビュー日: 2006/06/26
投稿数: 16
投稿日時: 2006-10-10 15:02
R・田中一郎さん返事ありがとうございます。

固定列と可変列に別れてまして、可変列は0文字〜50文字まで表示可能で6列ほどあります。
「W」50文字で合わせた場合の最大領域でDataGridのWidthを設定し、
全ての可変列が0文字の場合と「W」50文字の場合とでの差幅がとても大きいため、
%変換するサイズが分かればと思いました。

結論から言えば、最大50行の各可変列の最大文字数を検索して計算し、固定設定すれば可能です。
しかし、フォントサイズやフォント調などでも変動がある上に出来れば外見の処理にあまり工数もかけなくないと思いまして、どこかのタイミングでWidth値がわかればと思いました。

失礼します。
1

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