タイトルが示すように、DataBind() を呼び出した後、各列の幅を取得したいと考えています。
Calling gv.Columns[i].ItemStyle.Width.Value returns 0. これはおそらく、.aspx ファイルの GridView の定義で幅が定義されていないためです。私はそれを定義したくありません。
クライアントでレンダリングされる列の幅を取得したいですか? コンテンツの幅、ページの他の場所の CSS 設定、ブラウザー ウィンドウのサイズなどの影響を受けますか?
これを行うには、クライアント側のコードを使用し、幅を収集して隠しフィールドに格納し、ポストバックを待つか、Ajax 経由で送り返す必要があります。
DataBind
いずれにせよ、これは 2 段階のプロセスになります。同じページ読み込みで幅がどのくらいになるかを確認することはできません。実際の幅を判断するには、クライアントでページがレンダリングされるまで待つ必要があります。
いずれにせよ、 を正式に設定しない限り、クライアントでレンダリングされる列の幅は自動的に更新されるものではないため、ポストバックのItemStyle.Width
直後または直後にゼロ以外の値を持つことはありません。ポストバック。上記の私の提案はすべて、クライアント側で値を決定し、それを別の方法で返すことを含みます。 DataBind