2010-08-11 2 views
0

표시되기 전에 gridview의 열을 숨기고 싶습니다. 여러 컨트롤에서 사용할 수있는 공통 함수를 만들어서이 작업을 수행하려고합니다. 확장 프로그램을 사용하고 있으며 확장 프로그램을 어떻게 수행 할 수 있는지 알고 싶습니다.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; 

} 

입니다. 첫 번째 기능이 페이지에서 사용됩니다. 아래 두 기능은 여러 응용 프로그램에 사용해야합니다.

답변

1

두 가지 방법으로 요구 사항을 충족 할 수 있습니다.

  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"; 
    } 
} 
관련 문제