QA@IT
«回答へ戻る

回答を投稿

protected void GridView_RowCreated(object sender, GridViewRowEventArgs e)
{
    //ヘッダー行の場合
    if (e.Row.RowType == DataControlRowType.Header)
    {
        ////動的作成列のヘッダーの文字を縦書きに設定する。
        //Style myStyle = new Style();
        //myStyle.CssClass = "Tategaki2";

        System.Collections.Generic.List<TableCell> cells = 
       new System.Collections.Generic.List<TableCell>();
        foreach (TableCell cell in e.Row.Cells)
        {
            cells.Add(cell);
        }

        int iCellCnt = cells.Count;     //列数

        //ヘッダー追加用行
        GridViewRow row1 = 
     new GridViewRow(-1, -1, DataControlRowType.Header, DataControlRowState.Normal);
        GridViewRow row2 = 
     new GridViewRow(-1, -1, DataControlRowType.Header, DataControlRowState.Normal);

        //現状のヘッダと同じヘッダ文字列を設定する。
        for (int i = 0; i < iCellCnt; i++)
        {
            if (i < 13)
            {
                cells[i].Text = e.Row.Cells[i].Text;
            }
            else
            {
                string[] sHeader = e.Row.Cells[i].Text.Split(':');
                cells[i].Text = sHeader[0];
            }
        }

        //13列まではセル結合(2行を1列)とする。
        for (int i = 0; i < 13; i++)
        {
            cells[i].RowSpan = 2;
        }

        //1行目に全セルを設定する。
        for (int i = 0; i < iCellCnt; i++)
        {
            row1.Cells.Add(cells[i]);
        }

        //2行目は結合していない列のみを追加する。
        for (int i = 13; i < iCellCnt; i++)
        {
            row2.Cells.Add(cells[i]);
        }

        for (int i = 0; i < row2.Cells.Count; i++)
        {
            row2.Cells[i].Text = "aaa";
        }

        row2.CssClass = "Tategaki2";

        //GridViewのヘッダーを設定する。
        GridView.Controls[0].Controls.Clear();
        GridView.Controls[0].Controls.Add(row1);
        GridView.Controls[0].Controls.Add(row2);
    }



```ここに言語を入力
protected void GridView_RowCreated(object sender, GridViewRowEventArgs e)
{
    //ヘッダー行の場合
    if (e.Row.RowType == DataControlRowType.Header)
    {
        ////動的作成列のヘッダーの文字を縦書きに設定する。
        //Style myStyle = new Style();
        //myStyle.CssClass = "Tategaki2";

        System.Collections.Generic.List<TableCell> cells = 
       new System.Collections.Generic.List<TableCell>();
        foreach (TableCell cell in e.Row.Cells)
        {
            cells.Add(cell);
        }

        int iCellCnt = cells.Count;     //列数

        //ヘッダー追加用行
        GridViewRow row1 = 
     new GridViewRow(-1, -1, DataControlRowType.Header, DataControlRowState.Normal);
        GridViewRow row2 = 
     new GridViewRow(-1, -1, DataControlRowType.Header, DataControlRowState.Normal);

        //現状のヘッダと同じヘッダ文字列を設定する。
        for (int i = 0; i < iCellCnt; i++)
        {
            if (i < 13)
            {
                cells[i].Text = e.Row.Cells[i].Text;
            }
            else
            {
                string[] sHeader = e.Row.Cells[i].Text.Split(':');
                cells[i].Text = sHeader[0];
            }
        }

        //13列まではセル結合(2行を1列)とする。
        for (int i = 0; i < 13; i++)
        {
            cells[i].RowSpan = 2;
        }

        //1行目に全セルを設定する。
        for (int i = 0; i < iCellCnt; i++)
        {
            row1.Cells.Add(cells[i]);
        }

        //2行目は結合していない列のみを追加する。
        for (int i = 13; i < iCellCnt; i++)
        {
            row2.Cells.Add(cells[i]);
        }

        for (int i = 0; i < row2.Cells.Count; i++)
        {
            row2.Cells[i].Text = "aaa";
        }

        row2.CssClass = "Tategaki2";

        //GridViewのヘッダーを設定する。
        GridView.Controls[0].Controls.Clear();
        GridView.Controls[0].Controls.Add(row1);
        GridView.Controls[0].Controls.Add(row2);
    }



```