根据 column.DataType 右对齐 GridView 列

Right Justify a GridView Column Based on column.DataType

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

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

foreach (DataColumn column in ResultTable.Columns) {

            if (column.DataType == typeof(int))
            {
               //Set the column justification to "right"
            } }

在转发器被调用之前,但是一点谷歌搜索让我没有任何东西可以放在 if 语句中。 IE。我无法从代码后面设置样式。

我找到了一个针对所有包含整数的单元格使用 javascript 的解决方案,但由于它使用正则表达式来查找整数,因此它也不会右对齐列的 header。典型列的结果如下所示;

在这种情况下,我也需要 "Count" 右对齐。

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

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

希望对您有所帮助

我在 Repeater_ItemCreated 方法中解决了这个问题。使用 css class 设置对齐方式。

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