WebGrid固定列(Fixed-Coloum)的设定

来源:互联网 发布:淘宝运营助理怎么样 编辑:程序博客网 时间:2024/06/05 14:13
  有时候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;
这样再向右拉动滚动条,“姓名”列也不会随着移动了。

 
原创粉丝点击