Gridview自动列时怎么设置列宽度

yingziming 2009-12-11 03:42:46
Gridview中使用AutoGenerateColumns="true",也就是自动填充数据,所以弄的列名排放不好看,我想列不换行,这样就能自动调整宽度,为什么Gridview1.Columns[0] 找不到呀,希望大家帮我下,谢谢。
...全文
847 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2009-12-11
  • 打赏
  • 举报
回复
GridView1.Columns[1].HeaderStyle.Width = 200;

for (int i = 0; i < GridView1.Columns.Count; i++)
{
GridView1.Columns[i].ItemStyle.Width = new Unit("100");
}
lxiron 2009-12-11
  • 打赏
  • 举报
回复
给你写一个吧 把下面的if语句写在 RowCreated事件里面!
    protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[0].Width = 480;
e.Row.Cells[1].Width = 200;
}
}
jshi123 2009-12-11
  • 打赏
  • 举报
回复
1. 自动生成的数据栏无法通过GridView.Columns访问到

2. 如果希望表格中所有内容都不换行,那很容易,在表格属性中加上样式就行:
<asp:GridView ID="GridView1" runat="server" style="white-space:nowrap" ...

3. 如果要对每一个列单独控制,那就要麻烦点,在GridView前面加上一段样式设定:

<style type="text/css">
#GridView1 tr td:first-child { width: 100px } /* 第一列 */
#GridView1 tr td:first-child+td { width: 200px } /* 第二列 */
#GridView1 tr td:first-child+td+td { width: 300px } /* 第三列 */
</style>

(注意如果table-layout不是fixed,列宽会自动调整,不一定会等于你设定的值)

4. 上面这个方法只在IE7/8,FireFox下有效,如果要支持IE5/6,那就更麻烦了,可以考虑用jquery动态去设定列宽。
wanggenhu0 2009-12-11
  • 打赏
  • 举报
回复
this.dataGridView1.Columns["印家"].Width = 120;

62,074

社区成员

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

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

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

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