Почему текст в Header колонки у GridView не меняется?
От: somesoul http://finesoul.livejournal.com/
Дата: 22.09.10 15:27
Оценка:
Есть страница
protected void Page_Load(object sender, EventArgs e)
{
   ...
   gvPeriodResult.Columns.Clear();
   ...
   gvPeriodResult.DataSource = dt;
   ...
   gvPeriodResult.Sort();
}


На ней компонент, который достался мне в наследство.
public class GridViewSortArrowExt : GridView
{
void GridView_Sorting(object sender, GridViewSortEventArgs e)
{
   ...
   this.ChangeHeaders(this.HeaderRow, this.ViewState["lastSortExpression"].ToString(), this.ViewState["sortDir" + e.SortExpression].ToString());
   this.DataSource = sds.DataSource;//dv;
   this.DataBind();
   ...
}
public void Sort()
{
   ...
   this.Sort(sortExpr, sortDir);//один DataBind() тут
   this.DataBind(); //а без этого не обновится хеадер таблицы
}

private void ChangeHeaders(GridViewRow headerRow, string sortExp, string sortDir)
{
   ...
   DataControlField field = ((DataControlFieldCell)headerRow.Cells[i]).ContainingField;
   ...
   field.HeaderText += ...;
   ...
}

void GridViewSortArrowExt_DataBound(object sender, EventArgs e)
{
   ...
   this.ChangeHeaders(this.HeaderRow, this.ViewState["lastSortExpression"].ToString(), this.ViewState["sortDir" + e.SortExpression].ToString());
   ...
}






Почему заголовок колонки меняется только после второго DataBind()?
Может его куда-то в другое место надо присваивать чтобы оно восстанавливалось при первом же бинде.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.