2009-06-02 3 views
2

ASP.NET GridView 컨트롤의 머리글과 바닥 글의 HTML 출력을 덮어 쓸 효율적인 방법이 있습니까?ASP.NET gridview 컨트롤의 헤더 출력 덮어 쓰기

RepeaterHeaderTemplate 태그와 유사한 방법론을 구현하고 싶거나 페이지 코드 뒤에 HTML 출력을 동적으로 포함시킬 필요가 없습니다. 이러한 두 가지 유형의 옵션을 ASP.NET GridView 컨트롤과 함께 사용할 수있는 경우

답변

0

ASP.Net Control Adapter을 사용해보십시오. 난 아주 기본적인 것들을 위해 그들을 사용했지만, 단지 Scott Guthrie 노트로 :

제어 어댑터는 당신을 수 있습니다 플러그인에있는 ASP.NET 서버 컨트롤 및 재정의, 수정 및/또는 렌더링 출력을 조정할 그것의 로직은 입니다.

Toolkit에는 GridView를 비롯한 여러 가지 "기본 제공"어댑터가 포함되어 있습니다. 다시 말하지만, 나는 당신이 원하는 것을 정확히 할 수 있을지 100 % 확신하지는 못했지만 확실히 체크 아웃 할 가치가있다. 너의 벨트 밑에 또 다른 ASP.Net 속임수를 넣는 것 이상이라면.

+0

감사를 단일 세포로 변환하고있는 gridview 위 내 마크 업/컨트롤을 그냥 ShowHeader=false를 설정합니다 다음 새 컨트롤을 추가하고 넣어 거라고합니다. 나는 다음 프로젝트를 조사 할 것이다. –

0

컨트롤을 상속하고 렌더링 기능을 재정의 할 수도 있습니다. ASP.NET 라디오 버튼의 단점을 수정하려면이 작업을 수행해야했습니다. 기본적인 아이디어는 여기에, 당신은 당신의 필요에 따라 수정할 수 있습니다

http://www.codeproject.com/KB/webforms/How_group_RButtons.aspx

1

을 GRIDVIEW에서 완전히 "파괴"헤더 및/또는 바닥 글을 다시 만들 RowCreated 이벤트를 사용할 수 있습니다. 이 이벤트 기간 동안, 확인 :

if (e.Row.RowType = DataControlRowType.Header) 
{ 
    // At this point you have access to e.Row.Cells 
    // You can now empty the collection and recreate it. 
    // If you create a singular cell in the collection 
    // you can then make its ColumnSpan reach across 
    // the length of the entire table. Then inside this 
    // cell you can add any set of controls you want. 
    // I've used this method to combine column headers 
    // and add specialty controls that simply wouldn't 
    // working using the HeaderTemplate 
} 

을이이 RowDataBound 동안 당신은 이러한 컨트롤에 액세스 할 수있는 것입니다 다음이 데이터를 기반으로 좋아하지만 그것들을 조작 할 수 RowCreated에서 이루어지기 때문에. 바닥 글에서 복잡한 계산을 수행하거나 정렬을 기반으로 헤더의 이미지를 조정할 때 편리합니다.

0

RowCreated에서 셀 단위 검사를 변경하는 방법이 예입니다. 필터링을 허용하도록 열에 드롭 다운을 추가하려는 경우 수행 할 수 있습니다.

if (e.Row.RowType = DataControlRowType.Header) 
{ 
    e.Row.Cells[0].Controls.Clear(); 

    var ddlFilter = new DropDownList(); 
    //add options etc 

    e.Row.Cells[0].Controls.Add(ddlFilter); 
} 

당신은 정보를