Как использовать ColumnName в элементе управления GridView, чтобы скрыть некоторые столбцы - PullRequest
0 голосов
/ 11 августа 2010

Я хочу скрыть несколько столбцов сетки, прежде чем они будут отображены. Я хочу сделать это путем создания общей функции, которая может использоваться несколькими элементами управления. Я использую расширение и хотел бы знать, как это можно сделать.

Вот мой код

protected void btnStandardView_Click(object sender, EventArgs e)
{
    _viewTypeDl = new ViewTypeDL();
    DataTable dt = _viewTypeDl.GetStandardView();
    gvViewType.Source(_viewTypeDl.GetStandardView(),"ColorCode");
    ViewState["request"] = "Standard View";
}

public static void Source(this CompositeDataBoundControl ctrl, DataTable dt, params string[] ColumnsToHide)
{
    ctrl.DataSource = dt;
    ctrl.DataBound += new GridViewRowEventHandler(ctrl_DataBound);

    ctrl.DataBind();
}

static void ctrl_DataBound(object sender, GridViewRowEventArgs e)
{
    e.Row.Cells["ColorCode"].Visible = false;

}

Я хочу создать расширение, чтобы скрыть или показать столбцы, представленные в списке, в виде массива. 1-я функция используется на странице. В то время как ниже две функции необходимо использовать для нескольких приложений

1 Ответ

1 голос
/ 12 августа 2010

Есть два способа удовлетворить ваши требования.

  1. установить gvViewType.Columns [i] .visble = false;

  2. РазрешитьCSS для обработки скрытых столбцов для вас.

    .hidden
    {
        display:none;
    }
    .visble
    {
        display:block;
    }
    

// Это событие Gridview.

protected void OnRowCreated(object sender, GridViewRowEventArgs e)
{
     if (e.Row.RowType == DataControlRowType.DataRow)
     {
         //Cells Represent the Column
         e.Row.Cells[0].CssClass = "hidden";
     }
     else if (e.Row.RowType == DataControlRowType.Header)
     {
         e.Row.Cells[0].CssClass = "hidden";
     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...