0

列の1つが日付と時刻を一緒に格納するグリッドビューがあります。その列を2つに分割したいと思います。1つは日付を格納し、もう1つは時刻を格納します。これを達成する方法はありますか?ありがとう。

これは、グリッドビューを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

このためには、いくつかの手直しを行う必要があります。Excel にエクスポートするには、日付と時刻に別々の列を割り当てるダミーのグリッドビューを取得する必要があります。ここに便利なコードがあります

于 2013-03-13T06:41:15.980 に答える
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

日付と時刻の値を保持するために別の 2 つの列を追加してみてください。それらの列の visible プロパティを false に設定して非表示にします。

これらの2つの列を表示するように設定し、DateTime列を非表示にしてレンダリングする前に。

列を非表示にする

gvResult.Columns[columnsIndex1].visible = false;

列を表示する

gvResult.Columns[columnsIndex2].visible = true;

gvResult.DataBind();

最後にレンダリングします。

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