gpt4 book ai didi

c# - 格式化动态 GridView

转载 作者:行者123 更新时间:2023-11-30 19:49:16 75 4
gpt4 key购买 nike

我有一个 GridView,其中的列是动态的。 GridView 被绑定(bind)到 DataTable。

其中一列是 DateTime 列。我需要将该列格式化为显示“01/01/2010”而不是“01/01/2010 12:00:00 AM”。

我无法将列更改为存储字符串而不是 DateTime。

执行此操作的最佳方法是什么?

<asp:GridView ID="gvResults" runat="server">
</asp:GridView>


CustomReportDataTable dt = new CustomReportDataTable();
dt.LoadData();
gvResults.DataSource = dt;
gvResults.DataBind();

最佳答案

如果是这种情况,我假设您正在将网格与 AutoGenerateColumns 一起使用,如果有的话,我不确定正确的方法,但这是一种更改正在输出的文本的快速而肮脏的方法.

 protected void grdTest_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.DataItem != null)
{
e.Row.Cells[1].Text = DateTime.Parse(e.Row.Cells[1].Text).ToShortDateString();
}
}

您将在这段代码中创建行数据绑定(bind)事件,然后解析文本,并按照您想要的方式设置格式。这只有在您知道日期将始终位于特定列中时才有效。

如果您需要动态列但更多控制,则另一种选择是将 AutoGenerateColumns 设置为 false,并在绑定(bind)之前用您想要的列动态填充 GridView 的列,这样您就可以使用数据格式字符串。这需要多做一些工作,但您仍然可以控制您的列:

BoundField Col1 = new BoundField();
Col1.DataField = "StringFieldName";

BoundField Col2 = new BoundField();
Col2.DataField = "DateFieldName";
Col2.DataFormatString = "{0:d}";

grdTest.Columns.Add(Col1);
grdTest.Columns.Add(Col2);

关于c# - 格式化动态 GridView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4249629/

75 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com