Как отсортировать сетку, когда я нажимаю текст заголовка на сетке в asp.net - PullRequest
2 голосов
/ 24 июня 2011

Я разработал приложение asp.net, которое имеет элемент управления Gridview.Я хочу, чтобы он сортировался, когда я нажимал на текст заголовка Gridview в asp.net.Платформа сущностей используется для привязки вида сетки.

protected void grdmortgagesaver_Sorting(object sender, GridViewSortEventArgs e)
{
    string sortExpression = e.SortExpression;

    if (GridViewSortDirection == SortDirection.Ascending)
    {
        GridViewSortDirection = SortDirection.Descending;
        SortGridView(sortExpression, DESCENDING);
    }
    else
    {
        GridViewSortDirection = SortDirection.Ascending;
        SortGridView(sortExpression, ASCENDING);
    }   

}

private void SortGridView(string sortExpression, string direction)
{

 //  You can cache the DataTable for improving performance
     var databind = from i in mortgageentites.Clients orderby i.LastName select i;
    if (databind.Count() > 0)
    {    
        grdmortgagesaver.DataSource = databind.ToList();
        grdmortgagesaver.DataBind();
        DataTable dt = clients;
        if (dt != null)
        {
            // DataTable dt = ds.Tables[0];
            DataView dv = new DataView(dt);
            dv.Sort = sortExpression + direction;
            grdmortgagesaver.DataSource = dv;
            grdmortgagesaver.DataBind();
        }
    }
}

Ответы [ 3 ]

4 голосов
/ 24 июня 2011

Если вы используете стандартный ASP.NET System.Web.UI.WebControls.GridView, вы можете просто «Включить сортировку», на панели свойств, установив «AllowSorting» в true или через «всплывающее окно» нав правом верхнем углу элемента управления, отметив «Включить сортировку»

1 голос
/ 24 июня 2011

добавьте AllowSorting = "true" в свой элемент управления gridview и

protected void grd_Sorting(object sender, GridViewSortEventArgs e)
    {
        if (e.SortExpression == hdfSortExp.Value)
        {
            if (hdfUpDown.Value == "1")
                hdfUpDown.Value = "0";
            else
                hdfUpDown.Value = "1";
        }
        else //New Column clicked so the default sort direction will be incorporated
            hdfUpDown.Value = "0";

        hdfSortExp.Value = e.SortExpression; //Update the sort column
        BindGrid(hdfSortExp.Value, this.CBool(hdfUpDown.Value));
    }

в свой код c #

public void BindGrid(string sortBy, bool inAsc)
    {
        grd.DataSource = WManager.GetAdminTags(txtSearch.Text.Trim(), sortBy, inAsc);
        grd.DataBind();
    }
0 голосов
/ 24 июня 2011

Сначала на своей странице в теге объявления GridView добавьте свойство AllowSorting="true", а в Gridview_SortCommand попробуйте следующий код в качестве подсказки

try {
    if (SortType == false) {
        SortView.Sort = e.SortExpression + " ASC";
        //dviewGeneral.Sort = e.SortExpression & " ASC"
        Session.Item("SortOrder") = SortView.Sort.ToString;
        SortType = true;
    } else {
        SortView.Sort = e.SortExpression + " DESC";
        Session.Item("SortOrder") = SortView.Sort.ToString;
        //dviewGeneral.Sort = e.SortExpression & " DESC"
        SortType = false;
    }
    CMSgrid.SelectedIndex = -1;
    CMSgrid.CurrentPageIndex = 0;
    SortBind();
} catch (Exception ex) {
    UserMsgBox(ex.ToString());
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...