根据 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";
我需要在后面的代码中右对齐 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";