分享

c#(Asp.Net) 对 GridView控件操作:实现绑定特定列、导出Excel、导出WORD

 昵称o8H0y 2020-10-14

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="StatisticsProjectTimeWebApp._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www./TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www." >

<head runat="server">

    <title></title>

    <script src="js/calendar.js" type="text/javascript"></script>

</head>

<body>

   <form id="form1" runat="server">

    <div>

        <span>开始时间</span>

        <asp:TextBox ID="txtStartDate" οnclick="calendar.show(this);" runat="server"></asp:TextBox>

        <span>结束时间</span>

        <asp:TextBox ID="txtEndDate" οnclick="calendar.show(this);" runat="server"></asp:TextBox>

        <asp:Button ID="btnSure" runat="server" Text="查询" οnclick="btnSure_Click" />

        <asp:Button ID="BtnExcel" runat="server" Text="导出EXCEL" οnclick="BtnExcel_Click" /> 

        <asp:Button ID="BtnWord" runat="server" Text="导出WORD" οnclick="BtnWord_Click" />    

        <asp:GridView ID="GridView1" runat="server" >

        <Columns>

        <asp:TemplateField HeaderText="Brand_ID">

        <ItemTemplate>

        <asp:Label ID="Label1" runat="server" Text='<%# Eval("Brand_ID") %>'></asp:Label>

        </ItemTemplate>

        </asp:TemplateField>

        <asp:TemplateField HeaderText="项目名称">

        <ItemTemplate>

        <asp:Label ID="Label1" runat="server" Text='<%# Eval("Brand_Name") %>'></asp:Label>

        </ItemTemplate>

        </asp:TemplateField>

        <asp:TemplateField HeaderText="日期">

        <ItemTemplate>

        <asp:Label ID="Label1" runat="server" Text='<%# Eval("CDate") %>'></asp:Label>

        </ItemTemplate>

        </asp:TemplateField>

        <asp:TemplateField HeaderText="时间(毫秒)">

        <ItemTemplate>

        <asp:Label ID="Label1" runat="server" Text='<%# Eval("TotalTime") %>'></asp:Label>

        </ItemTemplate>

        </asp:TemplateField>

        <asp:TemplateField HeaderText="时间(小时)">

        <ItemTemplate>

        <asp:Label ID="Label1" runat="server" Text='<%# string.Format("{0:F2}",(double)((long)Eval("TotalTime")/60000)/60) %>'></asp:Label>

        </ItemTemplate>

        </asp:TemplateField>

        </Columns>

        </asp:GridView>

    </div>

    </form>

</body>

</html>

.cs页后台代码如下:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.IO;

using System.Text;

namespace StatisticsProjectTimeWebApp

{

    public partial class _Default : System.Web.UI.Page

    {

        protected void Page_Load(object sender, EventArgs e)

        {

            if (!IsPostBack)

            {

                BrindData(DateTime.Now, DateTime.Now);

            }        

        }

        public override void VerifyRenderingInServerForm(Control control)

        {

            //base.VerifyRenderingInServerForm(control);

        }

        /// <summary>

        /// 导出EXCEL

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        protected void BtnExcel_Click(object sender, EventArgs e)

        {

            Export("application/ms-excel", "统计项目时间.xls");

        }

        private void BrindData(DateTime beginTime,DateTime endTime)

        {

            GridView1.DataSource = SqlHelper.GetData(beginTime,endTime);

            GridView1.AutoGenerateColumns = false;

            GridView1.DataBind();

        }

        /// <summary>

        /// 定义导出Excel的函数

        /// </summary>

        /// <param name="FileType"></param>

        /// <param name="FileName"></param>

        private void Export(string FileType, string FileName)

        {

            Response.Charset = "GB2312";

            Response.ContentEncoding = System.Text.Encoding.UTF8;

            Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());

            Response.ContentType = FileType;

            this.EnableViewState = false;

            StringWriter tw = new StringWriter();

            HtmlTextWriter hw = new HtmlTextWriter(tw);

            GridView1.RenderControl(hw);

            Response.Write(tw.ToString());

            Response.End();

        }

        /// <summary>

        /// 导出WORD

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        protected void BtnWord_Click(object sender, EventArgs e)

        {

            Export("application/ms-word", "统计项目时间.doc");

        }

        /// <summary>

        /// 查询

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        protected void btnSure_Click(object sender, EventArgs e)

        {

            if (txtStartDate.Text== "")

            {

                txtStartDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now);

            }

            if (txtEndDate.Text == "")

            {

                txtEndDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now);

            }

            if (DateTime.Parse(txtStartDate.Text) > DateTime.Parse(txtEndDate.Text))

            {

                txtEndDate.Text = txtStartDate.Text;

            }

           DateTime beginTime= DateTime.Parse( txtStartDate.Text);

           DateTime endTime = DateTime.Parse(txtEndDate.Text);

           BrindData(beginTime, endTime);

        }

    }

}

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多