0

列を自動的に生成する (DataSource を持つList<>) グリッドビューがあります。今必要なHeaderTextのは、その列を指定することです。私は多くのことをグーグルで検索し、いくつかの以前の質問をチェックして、自動生成されたグリッドにColumns Collection がないことを確認しました。最後に、この記事http://damieng.com/blog/2006/09に従って独自のカスタム グリッドを作成しました/25/extending-gridview-to-access-generated-columnsプロパティで 列コレクションを取得しています。イベントBoundColumnsで HeaderText プロパティを設定しようとしましたが、すべて無駄でした。これをどのイベントに配置できるかを知る必要があります。それを機能させるためのコード PageLoadRowDataBound

            gridUsers.BoundColumns[0].Visible = false;
            gridUsers.BoundColumns[1].HeaderText = "Login ID";
            gridUsers.BoundColumns[2].HeaderText = "User Name";
            gridUsers.BoundColumns[3].Visible = false;
            gridUsers.BoundColumns[4].HeaderText = "User Email";
            gridUsers.BoundColumns[5].HeaderText = "User Status";
            gridUsers.BoundColumns[6].HeaderText = "User Role";

PS: 可視プロパティはページ読み込みで機能しています。どんな助けでも大歓迎です。

4

2 に答える 2

1

特にヘッダーを手動で設定する場合は、自動生成列を実行する必要はありません。データ ソースを正しい列ヘッダーを持つ戻り値に変更するか、 を使用し<columns><asp:boundfield HeaderText="" >...て列を手動で指定します (および を設定しますAutoGenerateColumns=false)。

ほとんどの場合、RowDataBound イベント中にヘッダーと列を変更しますが、宣言構文を使用する場合や特別なレンダリング要件がない限り、変更する必要はありません。

于 2013-01-14T07:39:57.833 に答える
0

はい、次のようにこれを行うことができます

protected void GridView1_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e) 
{

    if (e.Row.RowType == DataControlRowType.Header) 
    {
        GridView1.Columns[0].HeaderText = "your header text name";
    } 
}
于 2013-01-14T07:31:20.397 に答える