我试图通过在DataBound事件中放置代码来格式化GridView控件中的列。它不起作用,因为由于某种原因没有填充列集合。控件绑定,它可以工作,但是列集合显示的计数为零,因此代码不起作用。
想法?
protected void gvReport_DataBound(object sender, EventArgs e)
{
for (int columnIndex = 0; columnIndex <= gvReport.Columns.Count - 1; columnIndex += 1)
{
var col = ((BoundField)gvReport.Columns[columnIndex]);
if (object.ReferenceEquals(col.DataField.GetType(), typeof(System.DateTime)))
col.DataFormatString = "MM/dd/yyyy";
}
}
答案 0 :(得分:1)
使用Columns
生成的列在GridView的RowDataBound
集合中不可用。您可以在protected void gvReport_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
for (int i = 0; i < e.Row.Cells.Count; i++)
{
object value = (e.Row.DataItem as DataRowView).Row.ItemArray[i];
if (value is DateTime)
{
TableCell cell = e.Row.Cells[i];
cell.Text = ((DateTime)value).ToShortDateString();
}
}
}
}
事件处理程序中处理单元格:
fromJSON