Как создать CSS-событие для сортировки сетки? - PullRequest
0 голосов
/ 22 июня 2009

я заполнил свой gridView. Также дайте сортировку имущества. но мне нужна сортировка изображений вверх-вниз. Нажмите по убыванию cssclass = "sortdescheader". Но я не могу этого сделать. Как я могу сделать это? Я действительно использовал приведенные ниже коды. Пожалуйста, помогите мне с кодами ниже?

protected void gvProducts_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        GridView gridView = (GridView)sender;

        if (gridView.SortExpression.Length > 0)
        {
            int cellIndex = -1;
            foreach (DataControlField field in gridView.Columns)
            {
                if (field.SortExpression == gridView.SortExpression)
                {
                    cellIndex = gridView.Columns.IndexOf(field);
                    break;
                }
            }

            if (cellIndex > -1)
            {
                if (e.Row.RowType == DataControlRowType.Header)
                {
                  e.Row.Cells[cellIndex].CssClass += (gridView.SortDirection == SortDirection.Ascending
                                                      ? " sortascheader" : " sortdescheader");
                }
                else if (e.Row.RowType == DataControlRowType.DataRow)
                {
                     e.Row.Cells[cellIndex].CssClass +=  (e.Row.RowIndex % 2 == 0  ? " sortaltrow" : "sortrow");
                }
            }
        }
    }

1 Ответ

1 голос
/ 22 июня 2009

Вы можете расширить вид сетки, чтобы можно было вставить стрелку сортировки. Таким образом, вы можете использовать его в нескольких местах без дублирования кода: ссылка: http://www.4guysfromrolla.com/articles/012308-1.aspx

public class GridView : System.Web.UI.WebControls.GridView
{
   protected override void OnSorted(EventArgs e)
   {
      string AscCSS = ...;
      string DescCSS= ...;

      foreach (DataControlField field in this.Columns)
      {
         // strip off the old ascending/descending icon
        field.HeaderStyle.CssClass.Remove();

         // See where to add the sort ascending/descending icon
         if (field.SortExpression == this.SortExpression)
         {
            if (this.SortDirection == SortDirection.Ascending)
               field.HeaderStyle.CssClass = AscCSS;
            else
               field.HeaderStyle.CssClass = DescCss;
         }
      }

      base.OnSorted(e);
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...