右对齐GridView列基于column.DataType

时间:2016-02-01 17:20:46

标签: .net c#-4.0 gridview alignment datacolumn

我需要在后面的代码中右对齐DataColumn中的所有单元格。 我正在使用转发器生成大量表,因此我无法将样式硬编码到<td>元素或css文件(据我所知)。

理想情况下,我会抓住像这样的相关专栏;

foreach (DataColumn column in ResultTable.Columns) {

            if (column.DataType == typeof(int))
            {
               //Set the column justification to "right"
            } }
在调用转发器之前

,但是一点点的谷歌搜索让我没有任何东西可以放入if语句中。即我无法从代码后面设置样式。

我使用javascript为包含整数的所有单元格找到了一个解决方案,但是因为它使用正则表达式来查找整数,所以它也不会右对齐列的标题。对于典型的列,其结果看起来像这样;

enter image description here

在这种情况下,我需要将“Count”对齐。

2 个答案:

答案 0 :(得分:1)

您可以使用 GridView 事件 RowDataBound ,在该行被数据绑定后的每一行都会触发此事件。您可以使用 GridViewRow 获取行,然后使用 row.cells [index] ,其中index是列号

GridViewRow gvr = e.Row;
gvr.Cells[0].HorizontalAlign = HorizontalAlign.Right;

希望这有帮助

答案 1 :(得分:0)

我在Repeater_ItemCreated方法中修复了这个问题。使用css类设置对齐方式。

var col = new BoundField
{
 HeaderText = column.ColumnName,
 DataField = column.ColumnName,
};
if(column.DataType == typeof(int))
col.ControlStyle.CssClass = "numericCell";