如何在动态绑定DataGrid控件时控制DateGrid的格式?

ff167 2006-01-12 11:16:59
因为动态添加DataGrid控件(客户要打印几页的数据,但想一次打出来,但如果放在同一个DG里,用IE打印有显示问题,又找不到适用的控件,所以只好动态加了),但不知道在添加控件时,原本在HTML页里进行设置的部分(页首页尾,显示格式等),在服务端应该怎么写.谢谢
...全文
176 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChengKing 2006-01-12
  • 打赏
  • 举报
回复
比如里面有a,b,c三列,我想设a的列为100宽,又怎么设呢
A: this.DataGrid1.Columns[0].HeaderStyle.Width = "300px"

如果直接弄控件可以加ItemDataBound的事件,现在也不知道怎么加了.
A: 在方法InitializeComponent()中加:
this.DataGrid1.ItemDataBound +=new DataGridCommandEventHandler(DataGrid1_ItemDataBound);
singlepine 2006-01-12
  • 打赏
  • 举报
回复
循环设置
private void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
{
for (int i=1; i < DataGrid1.Columns.Count; i++)//只调整被编辑的列
{
   e.Item.Cells[i].Attributes.Add("Width", "70px");
}
}

单个设置
private void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
{
   e.Item.Cells[0].Attributes.Add("Width", "100px");
   e.Item.Cells[1].Attributes.Add("Width", "70px");
   e.Item.Cells[2].Attributes.Add("Width", "50px");
}
ff167 2006-01-12
  • 打赏
  • 举报
回复
谢谢三位

比如里面有a,b,c三列,我想设a的列为100宽,又怎么设呢

我直接用myDataGrid.Columns[0].ItemStyle.Width来设的话,报错,说index有问题.

主要是想设置下面几个列的宽度.以及每个列里每行的字体大小,因为字数不同,字体大小要自动调整.本来如果直接弄控件可以加ItemDataBound的事件,现在也不知道怎么加了.

再次感谢,完成马上结贴给分.
LoveCherry 2006-01-12
  • 打赏
  • 举报
回复
都能写啊
DataGrid1.AutoGenerateColumns=false;//不启用自动生成列
DataGrid1.CssClass="border";//边框样式
DataGrid1.BorderWidth=0;
DataGrid1.CellSpacing=1;
DataGrid1.CellPadding=5;
DataGrid1.ItemStyle.CssClass="item";//普通列样式
DataGrid1.HeaderStyle.CssClass="header";//头样式
DataGrid1.PagerStyle.CssClass="header";//页脚样式
DataGrid1.DataKeyField="stuid";//主键字段
DataGrid1.AllowPaging=true;//允许分页
DataGrid1.PageSize=5;//分页大小
DataGrid1.PagerStyle.Mode=PagerMode.NumericPages;//数字形式分页
卧_槽 2006-01-12
  • 打赏
  • 举报
回复
http://www.cnblogs.com/suibing/archive/2005/04/05/132650.html
Eddie005 2006-01-12
  • 打赏
  • 举报
回复
在属性窗口列出的属性,都可以在后台代码设置...
ff167 2006-01-12
  • 打赏
  • 举报
回复
自己处理完了,谢谢各位,结贴
ff167 2006-01-12
  • 打赏
  • 举报
回复
我是用这种方法动态加控件
for (int i=1; i<=numlabels; i++)
{
DataGrid myDataGrid = new DataGrid();
myDataGrid.DataSource = ds;
myDataGrid.DataBind();
myDataGrid.ID = "DataGrid " + i.ToString();

PlaceHolder1.Controls.Add(myDataGrid);

PlaceHolder1.Controls.Add(new LiteralControl("<br>"));
}
所以如果用 this.DataGrid1.ItemDataBound +=new DataGridCommandEventHandler(DataGrid1_ItemDataBound);


会报找不到控件.

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧