-
12-23-2013, 05:42 PM #1
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
[Help] Giúp tớ Export to Excel trong C# Web
Mình có đoạn code ntn
protected void lnkXuatExcelAll_Click(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.xls");
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
using (StringWriter sw = new StringWriter())
{
HtmlTextWriter hw = new HtmlTextWriter(sw);
//To Export all pages
grdTinTuc.AllowPaging = false;
this.BindGrid();
grdTinTuc.HeaderRow.BackColor = Color.White;
foreach (TableCell cell in grdTinTuc.HeaderRow.Cells)
{
cell.BackColor = grdTinTuc.HeaderStyle.BackColor;
}
foreach (GridViewRow row in grdTinTuc.Rows)
{
row.BackColor = Color.White;
foreach (TableCell cell in row.Cells)
{
if (row.RowIndex % 2 == 0)
{
cell.BackColor = grdTinTuc.AlternatingRowStyle.BackColor;
}
else
{
cell.BackColor = grdTinTuc.RowStyle.BackColor;
}
cell.CssClass = "textmode";
}
}
grdTinTuc.RenderControl(hw);
//style to format numbers to string
string style = @"<style> .textmode { } </style>";
Response.Write(style);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
}
}
public override void VerifyRenderingInServerForm(Control control)
{
/* Verifies that the control is rendered */
}
}
Bây h mình muốn nó xuất ra hết thì phải làm ntn ???
-
12-23-2013, 06:03 PM #2
Silver member
- Ngày tham gia
- Aug 2015
- Bài viết
- 369
Code export ra excel thì mình cũng có. Nhưng có điều chưa dùng theo cách render qua HtmlTextWriter như bạn. Bạn gửi cho mình 2 file (giao diện/code) luôn để mình xem dc ko? Vì bạn gửi 1 đoạn thế này mình k biết trang của bạn thế nào và các control bạn dùng là những gì để test
-
12-23-2013, 06:07 PM #3
Silver member
- Ngày tham gia
- Nov 2015
- Bài viết
- 0
Design Code:
Mã:<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="Server"> <div class="divTitle"> TIN TỨC </div> <uc1:ucSiteMap ID="ucSiteMap1" runat="server" /> <div> <fieldset class="fieldset1"> <legend id="lblheadTitle" runat="server" class="legend1">Tìm kiếm</legend> <table style="width: 100%;" class="FormStyle"> <tr> <td style="width: 20%;"> </td> <td nowrap="nowrap"> Tiêu Đề: </td> <td style="width: 80%;"> <asp:TextBox ID="txtTieuDe" runat="server" Width="70%" MaxLength="250"></asp:TextBox> </td> </tr> <tr> <td style="width: 20%;"> </td> <td nowrap="nowrap"> Ngày Đăng Tin: </td> <td style="width: 80%;"> Từ Ngày <asp:TextBox runat="server" ID="txtTuNgay" Width="20%" MaxLength="500"></asp:TextBox> - Đến <asp:TextBox runat="server" ID="txtDenNgay" Width="20%" MaxLength="500"></asp:TextBox> </td> <asp:CompareValidator ID="validTuNgay" runat="server" ControlToValidate="txtTuNgay" ErrorMessage="Sai định dạng ngày đặng tin (Từ ngày)" Operator="DataTypeCheck" Type="Date"> </asp:CompareValidator> <asp:CompareValidator ID="validDenNgay" runat="server" ControlToValidate="txtDenNgay" ErrorMessage="Sai định dạng ngày đặng tin (Đến ngày)" Operator="DataTypeCheck" Type="Date" SetFocusOnError="true"> </asp:CompareValidator> <asp:CompareValidator ID="CompareValidator2" runat="server" ControlToValidate="txtDenNgay" ControlToCompare="txtTuNgay" ErrorMessage="Ngày đặng tin (Từ ngày) nhỏ hơn hoặc bằng (Đến ngày)" Operator="GreaterThanEqual" Type="Date" SetFocusOnError="true" > </asp:CompareValidator> </tr> <tr> <td style="width: 20%;"> </td> <td nowrap="nowrap"> Người Tạo: </td> <td style="width: 80%;"> <asp:TextBox runat="server" ID="txtTacGia" Width="70%" MaxLength="500"></asp:TextBox> </td> </tr> <tr> <td style="width: 20%;"> </td> <td nowrap="nowrap"> Nhóm Tin Tức: </td> <td style="width: 80%;"> <asp:CheckBox ID="chkNhomTinTuc" class="CheckAll" Text="Chọn tất cả" runat="server" onclick="return ChonNhomTinTuc(this);" Font-Bold="True" /> <div id="divNhomTinTuc" class="divList" style="width: 70%;"> <asp:CheckBoxList RepeatDirection="Horizontal" RepeatColumns="1" runat="server" ID="chklNhomTinTuc"> </asp:CheckBoxList> </div> </td> </tr> <tr> <td> </td> <td> </td> <td> <asp:LinkButton ID="lnkTimKiem" CssClass="SaveButton" runat="server" OnClick="lnkTimKiem_Click"><img src="../App_Themes/Images/Icons/search.png" alt="" />Tìm kiếm</asp:LinkButton> </td> </tr> </table> </fieldset> </div> <div> <fieldset class="fieldset1"> <legend id="Legend1" runat="server" class="legend1">Danh sách Tin Tức</legend> <table width="100%"> <tr> <td> <uc2:ucSearch ID="ucSearch1" runat="server" Visible="false" /> </td> <td align="right"> <asp:LinkButton ID="lnkBaoCao" runat="server" CssClass="SaveButton" EnableEventValidation="false" ><img alt="" height="16px" src="../App_Themes/images/BaoCao.png" width="16px" />Xuất báo cáo</asp:LinkButton> <asp:LinkButton ID="lnkXuatExcelAll" runat="server" CssClass="SaveButton" EnableEventValidation="false" onclick="lnkXuatExcelAll_Click"><img alt="" height="16px" src="../App_Themes/images/xls.gif" width="16px" />Xuất dữ liệu</asp:LinkButton> <asp:LinkButton ID="lnkThemMoi" CssClass="SaveButton" runat="server" CausesValidation="False"><img src="../App_Themes/Images/Icons/add.jpg" alt="" />Thêm mới</asp:LinkButton> <asp:LinkButton ID="lnkXoa" CssClass="SaveButton" runat="server" CausesValidation="False" OnClick="lnkXoa_Click"><img src="../App_Themes/Images/Icons/delete.png" alt="" />Xóa</asp:LinkButton> </td> </tr> <tr> <td colspan="2"> <asp:UpdatePanel runat="server" ID="updGrid"> <ContentTemplate> <cc1:GridViewPager ID="grdTinTuc" runat="server" UseRenderPaging="true" AllowMultiColumnSorting="False" AllowPaging="True" AllowSorting="false" BackColor="White" BorderColor="#FFFFFF" BorderStyle="None" BorderWidth="1px" CellPadding="4" CssRowEffect="#FBF1A6" AutoGenerateColumns="false" Width="100%" OnPageIndexChanging="grdTinTuc_PageIndexChanging" OnRowCreated="grdTinTuc_RowCreated" OnRowCommand="grdTinTuc_RowCommand" OnRowDataBound="grdTinTuc_RowDataBound" DataKeyNames="ID" CssClass="lbGrid"> <Columns> <asp:TemplateField> <HeaderTemplate> <span style="font-weight: bold;">STT</span> </HeaderTemplate> <ItemTemplate> <asp:Label runat="server" ID="lblSTT"></asp:Label> </ItemTemplate> <HeaderStyle Width="30" HorizontalAlign="Center" /> <ItemStyle HorizontalAlign="Right" /> </asp:TemplateField> <asp:TemplateField> <HeaderTemplate> <span style="font-weight: bold;">Ảnh Đại Diện</span> </HeaderTemplate> <ItemTemplate> <asp:Image ID="imgAnhDaiDien" Width="70px" Height="90px" runat="server" ImageUrl=<%# Eval("AnhDaiDien") %>/> </ItemTemplate> <HeaderStyle Width="12%" HorizontalAlign="Center" /> </asp:TemplateField> <asp:TemplateField> <HeaderTemplate> <span style="font-weight: bold;">Tiêu Đề</span> </HeaderTemplate> <ItemTemplate> <asp:Label ID="lblTieuDe" runat="server"><%# Eval("TieuDe")%></asp:Label> </ItemTemplate> <HeaderStyle Width="40%" HorizontalAlign="Center" /> </asp:TemplateField> <asp:TemplateField> <HeaderTemplate> <span style="font-weight: bold;">Ngày Đăng Tin</span> </HeaderTemplate> <ItemTemplate> <asp:Label runat="server" ID="lblNgayDang"><%# Eval("NgayDang","{0:dd/MM/yyyy}")%></asp:Label> </ItemTemplate> <HeaderStyle Width="15%" HorizontalAlign="Center" /> <ItemStyle HorizontalAlign="Center"/> </asp:TemplateField> <asp:TemplateField> <HeaderTemplate> <span style="font-weight: bold;">Người Tạo</span> </HeaderTemplate> <ItemTemplate> <asp:Label runat="server" ID="lblNguoiTao"><%# Eval("TacGia")%></asp:Label> </ItemTemplate> <HeaderStyle Width="10%" HorizontalAlign="Center" /> </asp:TemplateField> <asp:TemplateField> <HeaderTemplate> <span style="font-weight: bold;">Nhóm Tin Tức</span> </HeaderTemplate> <ItemTemplate> <asp:Label runat="server" ID="lblNhomTinTuc"><%# Eval("TenNhomTinTuc")%></asp:Label> </ItemTemplate> <HeaderStyle Width="13%" HorizontalAlign="Center" /> </asp:TemplateField> <asp:TemplateField> <HeaderTemplate> <span style="font-weight: bold;">Trạng Thái</span> </HeaderTemplate> <ItemTemplate> <asp:Label runat="server" ID="lblTrangThai"><%# Eval("TrangThai")%></asp:Label> </ItemTemplate> <HeaderStyle Width="30%" HorizontalAlign="Center" /> </asp:TemplateField> <asp:TemplateField> <HeaderTemplate> <span style="font-weight: bold;"> Sửa </span> </HeaderTemplate> <ItemStyle Width="30" HorizontalAlign="Center" /> <ItemTemplate> <asp:LinkButton runat="server" ID="lnkUpdate" CausesValidation="false"> <asp:Image ID="Image1" runat="server" ImageUrl="~/App_Themes/Images/Icons/edit.png" Width="15" Height="15" ToolTip="Cập nhật" /></asp:LinkButton> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <HeaderTemplate> <span style="font-weight: bold;"> Xóa </span></HeaderTemplate> <ItemStyle Width="30" HorizontalAlign="Center" /> <ItemTemplate> <asp:LinkButton CommandName="XOA" CommandArgument='<%# Eval("Id")%>' runat="server" ID="lnkDelete" ToolTip="Xóa" CausesValidation="false"> <asp:Image ID="Image2" runat="server" ImageUrl="~/App_Themes/Images/Icons/delete.png" Width="15" Height="15" /></asp:LinkButton> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemStyle Width="30" HorizontalAlign="Center" /> <HeaderTemplate> <input id="chkAll" type="checkbox" title="Toàn bộ" onclick="CheckAll('<%= grdTinTuc.ClientID %>');" /> </HeaderTemplate> <ItemTemplate> <input type="checkbox" id="chkDelete" runat="server" onclick="CheckItem(this.id);" /> <asp:Label runat="server" ID="lblId" Visible="false" Text='<%# Eval("Id")%>'></asp:Label> </ItemTemplate> </asp:TemplateField> </Columns> <PagerSettings Mode="Numeric" Position="Bottom"></PagerSettings> <HeaderStyle CssClass="lbGridHeader" /> <AlternatingRowStyle CssClass="lbGridAlterCell" /> <RowStyle CssClass="lbGridCell" /> <EditRowStyle CssClass="lbGridEdit" /> <PagerStyle CssClass="lbGridPager" /> </cc1:GridViewPager> </ContentTemplate> </asp:UpdatePanel> </td> </tr> </table> <div style="text-align: right"> </div> <div id="Grid" style="padding-top: 5px; margin-top: 5px;"> </div> </fieldset> </div>
Mã:public partial class TinTuc_wpTinTuc_DanhSach : WebBase { #region "Page number" private void lnkFirst_Click(object sender, EventArgs e) { grdTinTuc.PageIndex = 0; BindGrid(); } private void lnkLast_Click(object sender, EventArgs e) { grdTinTuc.PageIndex = grdTinTuc.PageCount - 1; BindGrid(); } private void lnkNext_Click(object sender, EventArgs e) { grdTinTuc.PageIndex = grdTinTuc.PageIndex + 1; BindGrid(); } private void lnkPrev_Click(object sender, EventArgs e) { grdTinTuc.PageIndex = grdTinTuc.PageIndex - 1; BindGrid(); } #endregion /// <summary> /// Load page /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Page_Load(object sender, EventArgs e) { RegisterJavascript("../"); BindScript(); if (!Page.IsPostBack) { Check_Permission(); Session["TIM_KIEM"] = null; BindGrid(); txtTieuDe.Focus(); } } /// <summary> /// Bid sự kiện Script /// </summary> private void BindScript() { lnkBaoCao.Attributes.Add("OnClick", "return OnPopup('wpTinTuc_BaoCao.aspx?',565,900);"); lnkXoa.Attributes.Add("OnClick", "return Confirm2Delete('" + ddlLabel.Items[1].Text + "','" + ddlLabel.Items[0].Text + "')"); lnkThemMoi.Attributes.Add("OnClick", "return OnPopup('wpTinTuc_SuKien.aspx?',375,600);"); } /// <summary> /// Kiểm tra quyền /// </summary> private void Check_Permission() { if (CheckPermission((int)EnumSystem.Q0402).Equals(false)) StartupAlert(this.Page, sPermission, "document.location.href='../Default.aspx'"); lnkThemMoi.Visible = CheckPermission((int)EnumSystem.Q0402); grdTinTuc.Columns[grdTinTuc.Columns.Count - 3].Visible = CheckPermission((int)EnumSystem.Q0402); lnkXoa.Visible = CheckPermission((int)EnumSystem.Q0402); grdTinTuc.Columns[grdTinTuc.Columns.Count - 2].Visible = lnkXoa.Visible; } /// <summary> /// Load danh sach Thủ Tục Hành Chính /// </summary> private void BindGrid() { TtTinRepository repTtTinRepository = new TtTinRepository(new EFRepository<TtTin>(), new EFUnitOfWork()); DataTable tlstTtTin = repTtTinRepository.GetPaged_getNhomTtName(ProcessCondition(), "TieuDe", grdTinTuc.PageIndex, iRowsInPage, out iSumRecord); grdTinTuc.VirtualItemCount = iSumRecord; grdTinTuc.PageSize = iRowsInPage; grdTinTuc.EmptyDataText = ddlLabel.Items[2].Text; grdTinTuc.SummaryText = ddlLabel.Items[4].Text; grdTinTuc.FirstText = ddlLabel.Items[5].Text; grdTinTuc.PrevText = ddlLabel.Items[6].Text; grdTinTuc.NextText = ddlLabel.Items[7].Text; grdTinTuc.LastText = ddlLabel.Items[8].Text; grdTinTuc.DataSource = tlstTtTin; if (iSumRecord > 0) SetStyle2Link(lnkXoa, true); else SetStyle2Link(lnkXoa, false); grdTinTuc.DataBind(); ProcessDisplaySearch(ucSearch1); } /// <summary> /// Trả về điều kiện load thông tin /// </summary> /// <returns></returns> /// <modified> /// Author Date Comment /// </modified> private string ProcessCondition() { string sQuery = "1=1"; string sStartDate = txtTuNgay.Text; string sEndDate = txtDenNgay.Text; string sNhomTinTuc = chklNhomTinTuc.Text; if (!string.IsNullOrEmpty(txtTieuDe.Text)) sQuery += "AND UPPER(T.TieuDe) LIKE N'%" + FormatString(txtTieuDe.Text, true) + "%'"; if (!string.IsNullOrEmpty(txtTacGia.Text)) sQuery += "AND UPPER(T.TacGia) LIKE N'%" + FormatString(txtTacGia.Text, true) + "%'"; if (!string.IsNullOrEmpty(sStartDate)) sQuery += " AND CONVERT(NVARCHAR(15), T.NgayDang, 112) >= '" + ConvertToDateTime(sStartDate).ToString("yyyyMMdd") + "'"; if (!string.IsNullOrEmpty(sEndDate)) sQuery += " AND CONVERT(NVARCHAR(15), T.NgayDang, 112) <= '" + ConvertToDateTime(sEndDate).ToString("yyyyMMdd") + "'"; DanhSachNhomTinTuc(); if (!string.IsNullOrEmpty(sNhomTinTuc)) sQuery += "AND UPPER(T.TtNhomTinId) LIKE N'%" + sNhomTinTuc.ToUpper() + "%'"; return sQuery; } /// <summary> /// Gán sự kiện khi tạo các số trang trên grid. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <Modified> /// Author Date comments /// </Modified> protected void grdTinTuc_RowCreated(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Pager) { grdTinTuc.lnkFirst.CausesValidation = false; grdTinTuc.lnkLast.CausesValidation = false; grdTinTuc.lnkNext.CausesValidation = false; grdTinTuc.lnkPrev.CausesValidation = false; grdTinTuc.lnkFirst.Click += new EventHandler(lnkFirst_Click); grdTinTuc.lnkLast.Click += new EventHandler(lnkLast_Click); grdTinTuc.lnkNext.Click += new EventHandler(lnkNext_Click); grdTinTuc.lnkPrev.Click += new EventHandler(lnkPrev_Click); } } /// <summary> /// Thực hiện kiểm tra gán các bản ghi vào gird. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <Modified> /// Author Date comments /// </Modified> protected void grdTinTuc_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { string sId = DataBinder.Eval(e.Row.DataItem, "ID").ToString(); Label lblSTT = (Label)e.Row.FindControl("lblSTT"); if (lblSTT != null) lblSTT.Text = (grdTinTuc.PageIndex * grdTinTuc.PageSize + e.Row.RowIndex + 1).ToString() + "."; LinkButton lnkUpdate = (LinkButton)e.Row.FindControl("lnkUpdate"); if (lnkUpdate != null) lnkUpdate.Attributes.Add("OnClick", "return OnPopup('wpTinTuc_SuKien.aspx?ID=" + sId + "',375,600);"); LinkButton lnkDelete = (LinkButton)e.Row.FindControl("lnkDelete"); if (lnkDelete != null) lnkDelete.Attributes.Add("OnClick", "return ConfirmDelete('" + string.Format(ddlLabel.Items[0].Text, "") + "');"); } } /// <summary> /// Thực hiện các sự kiện trên grid. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <Modified> /// Author Date comments /// </Modified> protected void grdTinTuc_RowCommand(object sender, GridViewCommandEventArgs e) { int iId = ConvertToInt32(e.CommandArgument); switch (e.CommandName.ToUpper()) { case "XOA": TtTinRepository repTtTinTucRepository = new TtTinRepository(new EFRepository<TtTin>(), new EFUnitOfWork()); TtTin objTtTin = repTtTinTucRepository.GetById(iId); if (objTtTin != null && objTtTin.Id > 0) { // Kiểm tra ràng buộc trước khi xóa if (KiemTraRangBuoc(objTtTin)) { StartupAlert(this.Page, String.Format(ddlLabel.Items[10].Text, "")); return; } repTtTinTucRepository.Delete(objTtTin); repTtTinTucRepository.Save(); ReLoadGrid(); WriteLog((int)EnumSystem.Q0402, String.Format(ddlLabel.Items[9].Text, "")); StartupAlert(this.Page, String.Format(ddlLabel.Items[9].Text, "")); } break; } } /// <summary> /// Thay đổi trang trên grid. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <Modified> /// Author Date comments /// </Modified> protected void grdTinTuc_PageIndexChanging(object sender, GridViewPageEventArgs e) { grdTinTuc.PageIndex = e.NewPageIndex; BindGrid(); } /// <summary> /// Sự kiện xóa nhiều /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lnkXoa_Click(object sender, EventArgs e) { int iTongXoa = 0; // Đếm số bản ghi xóa thành công int iTongKhongXoa = 0; // Đếm số bản ghi KHONG xóa thành công foreach (GridViewRow row in grdTinTuc.Rows) { System.Web.UI.HtmlControls.HtmlInputCheckBox chkSelect = (System.Web.UI.HtmlControls.HtmlInputCheckBox)row.FindControl("chkDelete"); if (chkSelect != null && chkSelect.Checked) { Label lblId = (Label)row.FindControl("lblId"); if (lblId != null) { try { TtTinRepository repTtTinRepository = new TtTinRepository(new EFRepository<TtTin>(), new EFUnitOfWork()); TtTin objTtTin = repTtTinRepository.GetById(ConvertToInt32(lblId.Text)); if (objTtTin != null && objTtTin.Id > 0) { // Kiểm tra ràng buộc trước khi xóa if (KiemTraRangBuoc(objTtTin).Equals(false)) { repTtTinRepository.Delete(objTtTin); repTtTinRepository.Save(); iTongXoa++; } else iTongKhongXoa++; } } catch (Exception) { } } } } WriteLog((int)EnumSystem.Q0402, String.Format(ddlLabel.Items[11].Text, iTongXoa, iTongKhongXoa)); StartupAlert(this, String.Format(ddlLabel.Items[11].Text, iTongXoa, iTongKhongXoa)); ReLoadGrid(); } /// <summary> /// Sự kiện Reload trang /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <Modified> /// Author Date Comment /// </Modified> protected void lnkReload_Click(object sender, EventArgs e) { ReLoadGrid(); } private void ReLoadGrid() { grdTinTuc.PageIndex = 0; BindGrid(); } /// <summary> /// Chức năng tìm kiếm /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lnkTimKiem_Click(object sender, EventArgs e) { Session["TIM_KIEM"] = true; ReLoadGrid(); } /// <summary> /// Kiểm tra ràng buộc /// </summary> /// <param name="objCatNational"></param> /// <returns> = true : Nếu có ràng buộc. = False nếu ngược lại</returns> /// <Modified> /// Author Date Comment /// </Modified> private bool KiemTraRangBuoc(TtTin objTtTin) { TtTinRepository repTtTinRepository = new TtTinRepository(new EFRepository<TtTin>(), new EFUnitOfWork()); repTtTinRepository.GetPaged("objTtTinId = " + objTtTin.Id.ToString(), "", 0, 1, out iSumRecord); if (iSumRecord > 0) return true; return false; } /// <summary> /// Lấy danh sách nhóm tin tức /// </summary> private void DanhSachNhomTinTuc() { chklNhomTinTuc.Items.Clear(); TtNhomTinRepository repTtTinRepository = new TtNhomTinRepository(new EFRepository<TtNhomTin>(), new EFUnitOfWork()); var tblPhongBan = repTtTinRepository.GetPaged("1=1", "Ten", 0, int.MaxValue, out iSumRecord); chklNhomTinTuc.DataSource = tblPhongBan; chklNhomTinTuc.DataTextField = "Ten"; chklNhomTinTuc.DataValueField = "Id"; chklNhomTinTuc.DataBind(); } /// <summary> /// Xuất dữ liệu từ gridview ra Excel . /// </summary> protected void lnkXuatExcelAll_Click(object sender, EventArgs e) { Response.Clear(); Response.Buffer = true; Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.xls"); Response.Charset = ""; Response.ContentType = "application/vnd.ms-excel"; using (StringWriter sw = new StringWriter()) { HtmlTextWriter hw = new HtmlTextWriter(sw); //To Export all pages grdTinTuc.AllowPaging = false; this.BindGrid(); grdTinTuc.HeaderRow.BackColor = Color.White; foreach (TableCell cell in grdTinTuc.HeaderRow.Cells) { cell.BackColor = grdTinTuc.HeaderStyle.BackColor; } foreach (GridViewRow row in grdTinTuc.Rows) { row.BackColor = Color.White; foreach (TableCell cell in row.Cells) { if (row.RowIndex % 2 == 0) { cell.BackColor = grdTinTuc.AlternatingRowStyle.BackColor; } else { cell.BackColor = grdTinTuc.RowStyle.BackColor; } cell.CssClass = "textmode"; } } grdTinTuc.RenderControl(hw); //style to format numbers to string string style = @"<style> .textmode { } </style>"; Response.Write(style); Response.Output.Write(sw.ToString()); Response.Flush(); Response.End(); } } public override void VerifyRenderingInServerForm(Control control) { /* Verifies that the control is rendered */ }
-
12-23-2013, 06:24 PM #4
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Gửi bởi tieuquynhi
-
12-23-2013, 06:27 PM #5
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Mình vừa thử với 1 gridview mặc định của windows. Sau khi nhét dữ liệu từ database vào và export ra thì thấy bình thường (dùng code của bạn). Mình thấy Control GridView bạn dùng là bạn đã chỉnh sửa lại rồi nên không rõ là khi thay đổi control bạn có làm gì nó không hiển thị được hay không?
Nếu không khi export bạn làm 1 thủ thuật nhỏ đi.
Tạo 1 gridview theo dạng mặc định (để vào 1 cái div với display=none thì sẽ không ai thấy). Khi export thì bạn đổ dữ liệu vào gridview đó rồi export từ đó ra. Mình nghĩ sẽ được. Còn để chỉnh cái kia của bạn thì bạn buộc phải run code lên rồi debug thôi chứ nhìn 1 file đơn lẻ này thì ko thể nói dc là nó lỗi ở đâu
-
12-23-2013, 06:30 PM #6
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Đây là code mình thử và thành công. Mình nghĩ bạn làm theo thủ thuật như trên là được nếu không cầu toàn
Mã:protected void lnkXuatExcelAll_Click(object sender, EventArgs e) { Response.Clear(); Response.Buffer = true; Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.xls"); Response.Charset = ""; Response.ContentType = "application/vnd.ms-excel"; using (StringWriter sw = new StringWriter()) { HtmlTextWriter hw = new HtmlTextWriter(sw); //To Export all pages grdTinTuc.HeaderRow.BackColor = Color.White; foreach (TableCell cell in grdTinTuc.HeaderRow.Cells) { cell.BackColor = grdTinTuc.HeaderStyle.BackColor; } foreach (GridViewRow row in grdTinTuc.Rows) { row.BackColor = Color.White; foreach (TableCell cell in row.Cells) { if (row.RowIndex % 2 == 0) { cell.BackColor = grdTinTuc.AlternatingRowStyle.BackColor; } else { cell.BackColor = grdTinTuc.RowStyle.BackColor; } cell.CssClass = "textmode"; } } grdTinTuc.RenderControl(hw); //style to format numbers to string string style = @"<style> .textmode { } </style>"; Response.Write(style); Response.Output.Write(sw.ToString()); Response.Flush(); Response.End(); } } protected void Page_Load(object sender, EventArgs e) { //Lấy dữ liệu grdTinTuc.DataSource = grdTinTuc.DataBind(); }
-
12-23-2013, 06:39 PM #7
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Như cậu thì nó sẽ export tất cả các cột có trong gridview bây h tớ muốn chọn 1 trong các cột đó để show thì phải làm sao cậu nhỉ ???
-
12-23-2013, 06:40 PM #8
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
:Happy-Ok:À nhâm là để export các cột theo mình muốn chứ k phải show ( SR ).
-
12-23-2013, 08:49 PM #9
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Gửi bởi khoviyeuem05
Gửi bởi khoviyeuem05
Các Chủ đề tương tự
-
thiết lập thông báo trong Excel
Bởi honghoa trong diễn đàn OfficeTrả lời: 1Bài viết cuối: 02-10-2012, 08:53 PM -
Excel Password Unlocker v4.0.2.3 (x86/x64) - Phá pass file Excel
Bởi nmhquoc trong diễn đàn OfficeTrả lời: 0Bài viết cuối: 07-09-2011, 05:50 PM -
Các thủ thuật hay nhất trong Excel
Bởi vietkanpy trong diễn đàn Mẹo Vặt - Thủ Thuật - Hướng Dẫn Phần MềmTrả lời: 0Bài viết cuối: 09-13-2010, 05:08 PM
NEW YORK , ngày 10 tháng 2 năm 2025 -- Ngày lễ tình nhân từ lâu đã được kỷ niệm bằng những cử chỉ vượt thời kì—hoa, sôcôla và những bữa tối lãng mạn. Tuy nhiên, trong kỷ nguyên số hiện tại, tình yêu...
Máy rung Lush 4 – Công nghệ rung...