0

我有一个gridview,其中一列将日期和时间存储在一起。我想将该列分成两列,一列存储日期,另一列存储时间。有没有办法做到这一点?谢谢。

这是我用来将gridview导出到excel的代码。

protected void exportBtn_Click(object sender, EventArgs e)
{
    loadGridViewContent();
    Response.Clear();
    Response.AddHeader("content-disposition", "attachment;filename=report.xls");
    Response.Charset = "";

    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    Response.ContentType = "application/vnd.xls";
    Response.Write(@"<style> TD {mso-number-format:\@;}</style>");
    System.IO.StringWriter stringWrite = new System.IO.StringWriter();
    System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);

    HtmlForm frm = new HtmlForm();
    gvResult.Parent.Controls.Add(frm);
    frm.Controls.Add(gvResult);
    frm.RenderControl(htmlWrite);

    Response.Write(stringWrite.ToString());
    Response.End();
}

这是我目前拥有的。

   |----------------------|
   | 13-MAR-2013 14:24:05 |
   |----------------------|

这就是我想要完成的。

   |-------------|----------|
   | 13-MAR-2013 | 14:24:05 |
   |-------------|----------|
4

3 回答 3

0

您可以这样做:

<asp:GridView runat="server" ID="gv" AutoGenerateColumns="false" >
    <Columns>
        <asp:BoundField DataField="YourDateTimeColumn" HeaderText="Date" DataFormatString="{0:MM/dd/yyyy}"/>
        <asp:BoundField DataField="YourDateTimeColumn" HeaderText="Time" DataFormatString="{0:hh:mm:tt}" />
    </Columns>
</asp:GridView>
于 2013-03-13T06:15:30.933 回答
0

为此,您需要进行一些返工。要导出到 excel,您需要使用一个虚拟的网格视图,您要为其分配日期和时间的单独列。你会在这里找到有用的代码

于 2013-03-13T06:41:15.980 回答
0

尝试通过添加另外两列来保存日期和时间值,通过在这些列上将可见属性设置为 false 来隐藏它们。

在您租用之前将这两列设置为可见并隐藏 DateTime 列并呈现它。

隐藏列

gvResult.Columns[columnsIndex1].visible = false;

显示列

gvResult.Columns[columnsIndex2].visible = true;

gvResult.DataBind();

最后渲染它。

gvResult.RenderControl(htmlWrite);
于 2013-03-13T06:48:37.840 回答