9

テーブルをasp.netのグリッドビューにバインドしています

grdIssues.DataSource = mdtIssues;

grdIssues.DataBind();

問題は、列の幅を制御できないことです.asp.netは、各列の幅を独自に決定しているようです。などの方法

 grdIssues.Columns[0].ItemStyle.Width = 100;
 grdIssues.Columns[1].ItemStyle.Width = 100;

列が動的に作成されるため、機能しません。各列を手動で作成して各行を埋める以外に、これを行う方法がないとは信じられません。

4

5 に答える 5

6

列の幅を設定するために手動で列を作成する必要はありません。これを行うことができます

 foreach (DataControlField column in OrdersGV.Columns)
    {
      column.ItemStyle.Width = Unit.Pixel(100);
    }
于 2010-04-29T21:37:54.827 に答える
1

スレッドを検索する将来のユーザーが答えを見つけられるように、できる限り自分の質問に答えるのが好きです。

やりたいことを直接行う方法が見つかりませんでした。ただし、列を自分で定義すると、プロパティを変更できることがわかりました。この例では、列データを中央揃えにしたいと考えました。このようなもの。

BoundField bdfRaisedDate = new BoundField();
clsUtilities.SetBoundFieldCenter(ref bdfRaisedDate, "RaisedDateShort",    "Opened", "RaisedDate");

grdIssues.Columns.Add(bdfRaisedDate);

grdIssues.DataSource = mdtIssues;

grdIssues.DataBind();

public static void SetBoundFieldCenter(ref BoundField bdfAny, string pDataField, string pHeadingValue, string  pSortExpression)
{
      bdfAny.DataField = pDataField;
      bdfAny.HeaderText = pHeadingValue;
      bdfAny.SortExpression = pSortExpression;
      bdfAny.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
      bdfAny.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
}
于 2010-05-12T17:27:15.767 に答える
0

私は次のようにしました:

gridView1.HeaderRow.Cells[0].Attributes["Width"] = "100px";
gridView1.HeaderRow.Cells[1].Attributes["Width"] = "50px";
gridView1.HeaderRow.Cells[2].Attributes["Width"] = "200px";
于 2016-06-29T12:01:36.270 に答える
-1

私は次のようにします:

foreach (DataControlField field in grdIssues.Columns)
{
  field.HeaderStyle.Width = 100;
}
于 2010-04-30T10:55:43.493 に答える