0

I have a gridview with filtering/sorting functions working properly. My problem is that onload, it does not show asc/desc image right after my header. Sorting image shows only after clicking any header. Any help would be appreciated.

Codebehind:

#region Sorting Arrows for Gridview Header
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.Header)
    {
        foreach (TableCell tc in e.Row.Cells)
        {
            // search for the header link
            LinkButton lnk = (LinkButton)tc.Controls[0];
            if (tc.HasControls() && lnk != null && GridView1.SortExpression == lnk.CommandArgument)
            {
                // inizialize a new image
                System.Web.UI.WebControls.Image img = new System.Web.UI.WebControls.Image();
                // setting the dynamically URL of the image
                img.ImageUrl = "~/Contents/Images/" + (GridView1.SortDirection == SortDirection.Ascending ? "asc" : "desc") + ".png";
                // adding a space and the image to the header link
                tc.Controls.Add(new LiteralControl(" "));
                tc.Controls.Add(img);
                //
            }
        }
    }
}
#endregion

1 Answer 1

2

I just figured it out..

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {       
        Image img = new Image();
        img.ImageUrl = "~/Contents/Images/asc.png";
        GridView1.HeaderRow.Cells[1].Controls.Add(new LiteralControl(" "));
        GridView1.HeaderRow.Cells[1].Controls.Add(img);
    }
}

Thanks..

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.