GridView的列宽度如何设定?

zhuyaowei 2006-05-25 10:31:50
我使用dataset绑定到GridView上,设定了AutoGenerateColumns=true,这样就能够绑定数据显示,现在该如何设定列宽?
使用this.GridViewData.HeaderRow.Cells[5].Width = new Unit(500, UnitType.Pixel);的时候没有反应,使用this.GridViewData.HeaderRow.Cells[5].Height = new Unit(500, UnitType.Pixel);到显示正确,不知道为什么?
使用GridViewData.Columns[5].ItemStyle.Width=new Unit(500, UnitType.Pixel);说索引超出了范围,我查msdn的时候说如果AutoGenerateColumns=true的时候,自动生成的列不会加到Columns中,晕,到底该怎么设定列宽?
...全文
638 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuyaowei 2006-06-06
  • 打赏
  • 举报
回复
to Eddie005(♂) 暴赱 『零零伍』(︶︵︶):如果整个表格的宽度超过了屏幕,还是会自动换行的,我最后使用了不换行的!
zhuyaowei 2006-05-26
  • 打赏
  • 举报
回复
to antiking(Q狼E行) :我用了 AutoGenerateColumns=true,就是自动绑定,因为这个控件可能会显示很多表,所以用GridView1.Columns[6].ItemStyle.Width = 60;的时候就提示“索引超出范围。必须为非负值并小于集合大小。”!
meixiaofeng 2006-05-26
  • 打赏
  • 举报
回复
好像不可,加空格
仓木泽 2006-05-26
  • 打赏
  • 举报
回复
ding
ilovejolly 2006-05-26
  • 打赏
  • 举报
回复
mark
Eddie005 2006-05-26
  • 打赏
  • 举报
回复
这问题有那么复杂吗??? 不是一开始就给出了答案了吗???

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[0].Width = 100;
}
}
antiking 2006-05-26
  • 打赏
  • 举报
回复
GridView1.Columns[i-1].ItemStyle.Width = 60;
antiking 2006-05-26
  • 打赏
  • 举报
回复
GridView1.Columns[i].ItemStyle.Width = 60;
yd 2006-05-25
  • 打赏
  • 举报
回复
支持楼上的,是否可以用GridView的Width属性设置呢
antiking 2006-05-25
  • 打赏
  • 举报
回复
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{

if (e.Row.RowType == DataControlRowType.DataRow)
{

for (int i = 0; i < GridView1.Columns.Count; i++)
{
GridView1.Columns[i].HeaderStyle.CssClass = "style2003";
GridView1.Columns[0].ItemStyle.Width = 80;
GridView1.Columns[1].ItemStyle.Width = 60;
GridView1.Columns[2].ItemStyle.Width = 200;
GridView1.Columns[3].ItemStyle.Width = 60;
GridView1.Columns[4].ItemStyle.Width = 100;
GridView1.Columns[5].ItemStyle.Width = 80;
GridView1.Columns[6].ItemStyle.Width = 60;
}
}
}
zhuyaowei 2006-05-25
  • 打赏
  • 举报
回复
protected void GridViewData_RowDataBound(object sender, GridViewRowEventArgs e)
{



System.Data.DataRowView drv;

drv = (System.Data.DataRowView)e.Row.DataItem;
//显示汉字和单位
//控制显示宽度

if (e.Row.RowType == DataControlRowType.DataRow)
{
if (drv != null)
{
for (int i = 0; i < 25; i++)
{

e.Row.Cells[i].Width = new Unit(500, UnitType.Pixel);
//GridViewData.Columns[i].ItemStyle.Wrap = false;
}
}
}
}

tmd,都设定到了500,还是没有反应
不知道哪儿出错了!
Eddie005 2006-05-25
  • 打赏
  • 举报
回复
在RowDataBound事件中处理试试~

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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