如何在GridView中获取单元格的固定大小(尤其是宽度)?

时间:2012-01-16 05:33:00

标签: asp.net css

我有一个GridView,它的Header中有不同宽度的不同单元格。我想获得每个单元格的特定大小,因为我有一个从左到右的滚动条。 我现在所拥有的是以下内容:

enter image description here

我想要的是拥有如下内容: enter image description here

表的风格是:

<style type="text/css">

        .fixedColumn .fixedTable td
        {
            color: #FFFFFF;
            background-color: #5097d1;
            font-size: 14px;
            font-weight: normal;
        }

        .fixedHead td, .fixedFoot td
        {
            color: #FFFFFF;
            /*background-color: #5097d1;*/
            font-size: 14px;
            font-weight: normal;
            padding: 5px;
            border: 1px solid #187BAF;
            width: 600px;
        }
        .fixedTable td
        {
            font-size: 10pt;
            background-color: #FFFFFF;
            padding: 5px;
            /*text-align: left;*/
            border: 1px solid #CEE7FF;
        }
    </style>

编辑: 我使用了以下代码:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
         if ((e.Row.RowType == DataControlRowType.Header) || (e.Row.RowType == DataControlRowType.DataRow))
           {     
             foreach (TableCell c in e.Row.Cells){
                    c.Wrap=true; 

                    c.Width = Unit.Percentage(100);
             }
           }
}

标题稍有变化,我不知道为什么如下所示: enter image description here

2 个答案:

答案 0 :(得分:1)

更好的选择是使用gridview的皮肤文件,它可以帮助你。请点击此处了解更多详情http://msdn.microsoft.com/en-us/library/aa479342.aspx

答案 1 :(得分:0)

您可以使用Gridview RowDataBound方法指定每个单元格的宽度。

protected void gridview_RowDataBound(object sender, GridViewRowEventArgs)
{
  if ((e.Row.RowType == DataControlRowType.Header) || (e.Row.RowType == DataControlRowType.DataRow))
   {     
            e.Row.Cells[yourCellIndex].Wrap=true; 

           e.Row.Cells[yourCellIndex].Width = Unit.Percentage(% value);

   }
}

如果使用Unit.Percentage()方法,则确保所有单元格的总宽度应等于100%。

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowdatabound.aspx