1

グリッドビューがデータバインドされた後、列の幅を取得する必要があるグリッドビューがあります。グリッドビューがバインドされているデータテーブルの列が固定されないため、AutoGenerateColumns=true にする必要があります。私が抱えている問題は、AutoGenerateColumns が true の場合、gridview 列のコレクションが作成されないことです。グリッドビューがデータバインドされた後、各列の幅を取得できる方法はありますか? RowDataBound を使用してテーブルセルを調べてみましたが、すべての列の幅が 0 です。

4

2 に答える 2

3

列の幅を特定のサイズに設定していない限り(そうではありません)、少なくともrender Page_Renderイベントが発生するまで、生成された列の幅を知ることはできません。コントロールのhtmlはそれまで存在せず、ページがhtmlにレンダリングされ、添付されたcssが処理されるまで、その幅を知ることはできません。

于 2010-01-26T04:28:21.237 に答える
0

おそらく、これはコントロールのライフ サイクルの初期段階にあり、GridView のプロパティにアクセスできません。DataBound イベントで GridView の列幅にアクセスしようとしましたか? 詳細については、ASP.NET ページ ライフ サイクルの概要を参照してください。

データバインド イベント:

このイベントは、データ バインド コントロールでのデータ バインディング操作の終了を示します。GridView コントロールでは、すべての行とすべての子コントロールに対してデータ バインディングが完了します。このイベントを使用して、データ バインドされたコンテンツをフォーマットしたり、現在のコントロールのコンテンツの値に依存する他のコントロールでデータ バインドを開始したりします。

于 2010-01-26T03:44:45.603 に答える