我在gridview中自动绑定一张多列的表!但由于表中的数据有长有短使得gridview的列名有的横向显示有的纵向显示!看着很不爽!!有什么办法可以让自动生成的列名都横向显示(固定列宽),无论表中的数据是长还是短!
补充:我在网上查了一些方法都不管用! this.GridView1.HeaderStyle.Width = 100;不管用!!使用GridView1.Columns[0].HeaderStyle.Width = Unit.Parse("100");
显示下标越界!我用断点跟踪发现gridview1.columns.count始终为零!我不要手动绑定列!!因为我的列数是可变的!!!
请高手指点!!!!!
因为你是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<Person>
{
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;
}