Kết quả 1 đến 9 của 9
  1. #1
    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 */
    }
    }
    Nó chỉ xuất ra số hàng có trong datagrid view hiện tại
    Bây h mình muốn nó xuất ra hết thì phải làm ntn ???

  2. #2
    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

  3. #3
    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 Đề:&nbsp;
                        </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:&nbsp;
                        </td>
                        <td style="width: 80%;">
                          Từ Ngày&nbsp;  <asp:TextBox runat="server" ID="txtTuNgay" Width="20%" MaxLength="500"></asp:TextBox>
                          &nbsp;-&nbsp;Đến&nbsp;&nbsp; <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">&nbsp;</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">&nbsp;</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" >&nbsp;</asp:CompareValidator>
                    </tr>
                    <tr>
                        <td style="width: 20%;">
                        </td>
                        <td nowrap="nowrap">
                            Người Tạo:&nbsp;
                        </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:&nbsp;
                        </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;">&nbsp;Sửa&nbsp;</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;">&nbsp;Xóa&nbsp;</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>
    Code behind:


    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 */
            }

  4. #4
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi tieuquynhi
    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
    Nếu cậu k làm theo cái của t cậu tự làm cho t 1 cái mới đi chỉ là export theo các cột mà mình muốn chứ k phải tất cả cậu à ! Như kiểu code t ở trên t chỉ mốn export 2 4 và 5 thôi ạ.

  5. #5
    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

  6. #6
    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();
        }

  7. #7
    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ỉ ???

  8. #8
    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 ).

  9. #9
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi khoviyeuem05
    :Happy-Ok:À nhâm là để export các cột theo mình muốn chứ k phải show ( SR ).

    Trích dẫn Gửi bởi khoviyeuem05
    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ỉ ???
    Chọn 1 hay nhiều cột thì do câu lấy datasource của mình thôi

 

 

Các Chủ đề tương tự

  1. thiết lập thông báo trong Excel
    Bởi honghoa trong diễn đàn Office
    Trả lời: 1
    Bài viết cuối: 02-10-2012, 08:53 PM
  2. Trả lời: 0
    Bài viết cuối: 07-09-2011, 05:50 PM
  3. 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ềm
    Trả lời: 0
    Bài viết cuối: 09-13-2010, 05:08 PM

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •