ASP.NET(C#)

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

protected void SizeColumns(DataGrid grid)
{
   Graphics g = CreateGraphics(); 

   DataTable dataTable = (DataTable)grid.DataSource;

   DataGridTableStyle dataGridTableStyle = new DataGridTableStyle();

   dataGridTableStyle.MappingName = dataTable.TableName;

   foreach(DataColumn dataColumn in dataTable.Columns)
   {
      int maxSize = 0;

      SizeF size = g.MeasureString(
      dataColumn.ColumnName,
      grid.Font);

   if(size.Width > maxSize)
      maxSize = (int)size.Width;

   foreach(DataRow row in dataTable.Rows)
   {
      size = g.MeasureString(
      row[dataColumn.ColumnName].ToString(),
      grid.Font);

   if(size.Width > maxSize)
      maxSize = (int)size.Width;
   }

   DataGridColumnStyle dataGridColumnStyle = new DataGridTextBoxColumn();
   dataGridColumnStyle.MappingName = dataColumn.ColumnName;
   dataGridColumnStyle.HeaderText = dataColumn.ColumnName;
   dataGridColumnStyle.Width = maxSize + 5;
   dataGridTableStyle.GridColumnStyles.Add(dataGridColumnStyle);
    
   grid.TableStyles.Add(dataGridTableStyle); 

   g.Dispose();
}

posted on 2007-02-03 08:45  battlerstar  阅读(224)  评论(0编辑  收藏  举报