web-dev-qa-db-ja.com

GridViewの列のヘッダーテキストを変更する

C#コードを使用してプログラムでバインドするGridViewがあります。問題は、列がデータベースからヘッダーテキストを直接取得することです。これは、Webサイトで表示すると奇妙に見える場合があります。したがって、基本的には、列ヘッダーのテキストを変更しますが、プログラムで変更します。私はすでに以下を試しました、

testGV.Columns[0].HeaderText = "Date";

そして

this.testGV.Columns[0].HeaderText = "Date";

正しい結果が得られないようです。

25
Mana

GridViewの RowDataBound イベントで実行する必要があります。このイベントは、GridViewRowafterごとにトリガーされます。データバインドされました。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.Header)
    {
        e.Row.Cells[0].Text = "Date";
    }
}

または、 AutogenerateColumnsfalseに設定し、aspxに宣言的に列を追加できます。

<asp:gridview id="GridView1" 
  onrowdatabound="GridView1_RowDataBound"
  autogeneratecolumns="False"
  emptydatatext="No data available." 
   runat="server">
    <Columns>
         <asp:BoundField DataField="DateField" HeaderText="Date" 
            SortExpression="DateField" />
    </Columns>
</asp:gridview>
49
Tim Schmelter

私はこれがうまくいくと思う:

 testGV.HeaderRow.Cells[0].Text="Date"
14
basim

Gridviewのデータ行バインドイベントを使用して実行できます。次のサンプルコードを試してください。

protected void grv_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[0].Text = "TiTle";
}
}

行データバインドイベントスタディの詳細については、 Thsi ....

4
Ram Singh

Asp.netページでgridviewを追加します

<asp:GridView ID="GridView1" onrowdatabound="GridView1_RowDataBound" >
</asp:GridView>

GridView1_RowDataBoundという名前のc#クラスにメソッドprotected voidメソッドを作成します

として

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.Header)
    {
        e.Row.Cells[0].Text = "HeaderText";
    }
}

すべて正常に動作するはずです。

1

グリッドビューで列を追加/削除するたびに問題が発生しないように、静的/修正インデックスの代わりにグリッドビューからセルを検索する方が良いです。

ASPX:

<asp:GridView ID="GridView1" OnRowDataBound="GridView1_RowDataBound" >
    <Columns>
        <asp:BoundField HeaderText="Date" DataField="CreatedDate" />
    </Columns>
</asp:GridView>

CS:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.Header)
    {
        for (int i = 0; i < e.Row.Cells.Count; i++)
        {
            if (string.Compare(e.Row.Cells[i].Text, "Date", true) == 0)
            {
                e.Row.Cells[i].Text = "Created Date";
            }
        }
    }
}
0
Jitendra G2
protected void grdDis_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            #region Dynamically Show gridView header From data base
            getAllheaderName();/*To get all Allowences master headerName*/

            TextBox txt_Days = (TextBox)grdDis.HeaderRow.FindControl("txtDays");
            txt_Days.Text = hidMonthsDays.Value;
            #endregion
        }
    }
0
JIYAUL MUSTAPHA