因为你是AutoGenerateColumns所以Columns.count都是0你可以用以下代码实现你想要的.columns为0但是cells不为0你可以把第一个ROW的所有cells都设成你想要的宽度。因为没个cell都是td所以其他的都会跟着设成你想要的宽度 public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ var persons = new List
{
new Person
{
Name = "赵本山",
Address =
"Very very long address Very very long address Very very long address"
},
new Person
{
Name = "郭德纲",
Address = "Short address"
},
};
grid.DataSource = persons;
if (!IsPostBack)
{
grid.DataBind();
} if (grid.Rows != null && grid.Rows.Count > 0)
{
if (grid.Rows[0].Cells != null && grid.Rows[0].Cells.Count > 0)
{
for (int i = 0; i < grid.Rows[0].Cells.Count; i++)
{
grid.Rows[0].Cells[i].Width = Unit.Pixel(100);
}
}
} } } public class Person
{
public string Name { get; set; }
public string Address { get; set; }
}
在GridView里面加一句CssClass="testGridView"然后在css文件里面加一句
.testGridView td
{
width: 100px;
}
在编辑列里面,直接就有设置列宽度的!如果你不想单元格的内容把单元格撑大,那么就加一个样式
table{table-layout:fixed}
,意思就是每列都固定为最初设置的样式,不再变化,超出的部分隐藏