0

各列の幅が動的で、に応じてGridView変化する がありDataSetます。各列の幅を取得する必要がありますが、おそらく幅プロパティを設定していないため、列/セルの幅は常に「0」です。

これを回避する方法はありますか?

コードは次のとおりです。

        gridResult.DataSource = dtResult;
    gridResult.DataBind();

    for (int i = 0; i < gridResult.Rows.Count; i++)
    {
        for (int j = 0; j < gridResult.Rows[i].Cells.Count; j++)
        {
            string encoded = gridResult.Rows[i].Cells[j].Text;
            gridResult.Rows[i].Cells[j].Text = Context.Server.HtmlDecode(encoded);

        }
    }

    GridView2.ShowHeaderWhenEmpty = true;

    int tblCols = gridResult.HeaderRow.Cells.Count;

    Table tbl = new Table();
    TableRow tr = new TableRow();
    double check = gridResult.Columns[0].ItemStyle.Width.Value;
    double check2 = gridResult.Rows[0].Cells[0].Width.Value;
       // TableRow tr = new TableRow();
        for (int j = 0; j < tblCols; j++)
        {

            // Add the table to the placeholder control
            TableCell td = new TableCell();
            td.Text = gridResult.HeaderRow.Cells[j].Text;
            td.Attributes.Add("width", gridResult.HeaderRow.Cells[j].Width + "px");
            td.HorizontalAlign = HorizontalAlign.Center;
            tr.Cells.Add(td);
            td.BorderWidth = 1;
            td.BorderColor = System.Drawing.Color.Black;

        }
        tbl.Rows.Add(tr);
    PlaceHolder1.Controls.Add(tbl);
4

0 に答える 0