我需要在后面的代码中右对齐DataColumn中的所有单元格。
我正在使用转发器生成大量表,因此我无法将样式硬编码到<td>
元素或css文件(据我所知)。
理想情况下,我会抓住像这样的相关专栏;
在调用转发器之前foreach (DataColumn column in ResultTable.Columns) { if (column.DataType == typeof(int)) { //Set the column justification to "right" } }
,但是一点点的谷歌搜索让我没有任何东西可以放入if语句中。即我无法从代码后面设置样式。
我使用javascript为包含整数的所有单元格找到了一个解决方案,但是因为它使用正则表达式来查找整数,所以它也不会右对齐列的标题。对于典型的列,其结果看起来像这样;
在这种情况下,我需要将“Count”对齐。
答案 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";