locked
Align text of grid-view cell to the top of exported excel file RRS feed

  • Question

  • User-172769993 posted

    Hello i am using nested grid-view that has master and child grid view.

    The issue is the text of master grid-view columns will be showed at the bottom based on number of columns of  child grid view.

    How can i Align it to the top ?

    Exporting Code

        protected void btnexcel_Click(object sender, EventArgs e)
        {
            try
            {
                gridreturneditems.Columns[1].Visible = false;
                gridreturneditems.Columns[2].Visible = false;
                gridreturneditems.Columns[7].Visible = false;
    
                foreach (GridViewRow row in gridreturneditems.Rows) 
                {
                    GridView gvItems = row.Cells[0].FindControl("gvItems") as GridView;
                    gvItems.Columns[0].Visible = false;
                    gvItems.Columns[1].Visible = false;
                    gvItems.Columns[5].Visible = false;
                    gvItems.Columns[6].Visible = false;
                    gvItems.Columns[7].Visible = false;
                    gvItems.Columns[8].Visible = false;
                    gvItems.Columns[9].Visible = false;
                    Button btn = row.FindControl("btnadddetail") as Button;
                    btn.Visible = false;
                    btn.Text = "";
                }
                gridreturneditems.Caption = "Returned Items Report";
    
                foreach (GridViewRow row in gridreturneditems.Rows)
                {
                    foreach (TableCell cell in row.Cells)
                    {
                        for (int i = cell.Controls.Count - 1; i >= 0; i--)
                        {
                            if (cell.Controls[i] is Image)
                            {
                                Image img = cell.Controls[i] as Image;
    
    
                                if (img.ImageUrl.Contains("plus.png") || img.ImageUrl.Contains("minus.png"))
                                {
                                    cell.Controls.RemoveAt(i);
                                }
                            }
                        }
                    }
                }
    
                gridreturneditems.GridLines = GridLines.Both;
    
                Response.Clear();
                Response.AddHeader("content-disposition",
                 "attachment;filename=ReturnedItemsReport.xls");
                Response.Charset = "";
                Response.ContentType = "application/vnd.xls";
                System.IO.StringWriter stringWrite = new System.IO.StringWriter();
                System.Web.UI.HtmlTextWriter htmlWrite =
                new HtmlTextWriter(stringWrite);
                Response.ContentEncoding = System.Text.Encoding.Unicode;
                Response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble());
                gridreturneditems.RenderControl(htmlWrite);
                Response.Write(stringWrite.ToString());
                Response.End();
            }
            catch (Exception ex)
            {
                //Response.Write("Error: " + ex.Message);
            }
        }

     

    Saturday, September 17, 2016 10:30 PM

All replies

  • User36583972 posted

    Hi asp.net4,

    According to your description , As far as  I know , solve this problem you can try to set ItemStyle-VerticalAlign="Top" in datagridview ,then export excel file.

    Sample Code :

    <body>
        <form id="form1" runat="server">
        <div>
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="MigrationId,ContextKey" DataSourceID="SqlDataSource1" Height="500px">
                <Columns>
                    <asp:BoundField DataField="MigrationId" HeaderText="MigrationId" ReadOnly="True" SortExpression="MigrationId" />
                    <asp:BoundField DataField="ContextKey" HeaderText="ContextKey" ReadOnly="True" SortExpression="ContextKey" />
                    <asp:BoundField DataField="ProductVersion" HeaderText="ProductVersion" SortExpression="ProductVersion" ItemStyle-VerticalAlign="Top" />
                </Columns>
            </asp:GridView>
            <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=F:\Publish\App_Data\Movies.mdf;Integrated Security=True;Connect Timeout=30" ProviderName="System.Data.SqlClient" SelectCommand="SELECT * FROM [__MigrationHistory]"></asp:SqlDataSource>
        </div>
        </form>
    < /body>

    Best Regards,
     
    Yohann Lu

    Monday, September 19, 2016 7:33 AM