有时候WebGrid表格中列的数目比较多 ,若表格的宽度不足以显示所有列,当我们拉动左右滚动条就有可能看不见关键列。我们希望关键列不随着滚动条的移动而移动。
比如我们创建如下Table用来描述每个学生各个科目的成绩:
DataTable dt = new DataTable();
dt.Columns.Add("姓名", typeof(string));
dt.Columns.Add("科目1", typeof(double));
dt.Columns.Add("科目2", typeof(double));
dt.Columns.Add("科目3", typeof(double));
dt.Columns.Add("科目4", typeof(double));
dt.Columns.Add("科目5", typeof(double));
dt.Columns.Add("科目6", typeof(double));
dt.Columns.Add("科目7", typeof(double));

绑定WebGrid并设定宽度:
//绑定表格
this.UltraWebGrid1.DataSource = dt;
this.UltraWebGrid1.DataBind();
//设置表格宽度,明显小于各个列的总和
this.UltraWebGrid1.Width = new Unit("300px");
this.UltraWebGrid1.Height = new Unit("300px");
//“姓名”列应当为我们的关键列,我们希望始终看见它
this.UltraWebGrid1.Columns.FromKey("姓名").Width = new Unit("100px");
this.UltraWebGrid1.Columns.FromKey("科目1").Width = new Unit("50px");
this.UltraWebGrid1.Columns.FromKey("科目2").Width = new Unit("50px");
this.UltraWebGrid1.Columns.FromKey("科目3").Width = new Unit("50px");
this.UltraWebGrid1.Columns.FromKey("科目4").Width = new Unit("50px");
this.UltraWebGrid1.Columns.FromKey("科目5").Width = new Unit("50px");
this.UltraWebGrid1.Columns.FromKey("科目6").Width = new Unit("50px");
this.UltraWebGrid1.Columns.FromKey("科目7").Width = new Unit("50px");这时我们运行程序,会看到它长的是这样的(老道我选择了一个样式,现在没有添加数据)

若想看到后面科目4~科目7就必须拉动滚动条,可这样我们就看不见姓名列,“这个得了100分的强人是谁啊?”,得,滚动条向左拉再慢慢找。
设置WebGrid的属性如下问题就解决了:
//必须设定此属性为true.下面的Fixed的属性设定才有效
this.UltraWebGrid1.DisplayLayout.UseFixedHeaders = true;
//如果你不是在代码中设定此属性,而是在设计器的属性窗口中设定,那么你必须先将上面的UseFixedHeaders设置为true,否则此属性的true值是无法选定的
this.UltraWebGrid1.Columns.FromKey("姓名").Header.Fixed = true;这样再向右拉动滚动条,“姓名”列也不会随着移动了。
本文介绍了如何在WebGrid中设置固定列,以确保关键列在表格宽度不足时也不会随滚动条移动。通过示例展示了如何绑定WebGrid并设定列宽度,以保证关键信息始终可见。
3781

被折叠的 条评论
为什么被折叠?



