0


0

GridViewコントロールでColumnNameを使用していくつかの列を非表示にする方法

グリッドビューのいくつかの列を非表示にしてから表示します。 複数のコントロールで使用できる共通の関数を作成することでそれを行いたいです。 私は拡張機能を使用していますが、それがどのように行われるか知りたいです。

これが私のコードです

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;

}

リストで提供される列を配列として非表示または表示する拡張機能を作成したい。 最初の機能はページで使用されます。 以下の2つの関数は、複数のアプリケーションで使用する必要がありますが

1 Answer


1


要件を満たすには2つの方法があります。

  1. set ViewType.Columns [in] .visible = false;

  2. cssが非表示列を処理できるようにします。

    .hidden
    {
        display:none;
    }
    .visble
    {
        display:block;
    }
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";
     }
}