2009-09-13 5 views
6

내가하고 싶은 것은 gridview의 헤더에 ASP : 버튼을 넣는 것이다. ID, 이름, 패밀리 등 3 개의 열이있는 격자보기가 있다고 가정 해 보겠습니다. 그래서, 헤더 [id, name, family] 대신에 [id, name, asp : button]이되기를 원합니다. 그래서 버튼에는 물론 액션이 있습니다.ASP.NET gridview의 머리글에 단추를 넣는 방법은 무엇입니까?

감사합니다. 로마입니다.

답변

0

이들은 사실 LinkButtons입니다. CSS를 사용하여 실제 버튼의 모양과 느낌을 줄 수 있습니다. 디자인의 추세가

+0

내 자신을 분명하게 만들지는 못했을 것입니다. 이미 LinkButton과 동일한 작업을하고 싶지 않습니다. 다른 버튼 (예 : 다른 페이지로 이동)을 넣고 싶습니다. 감사합니다. –

+0

을 삽입하려는 경우 더 간단합니다. 한 줄의 코드에서 jQuery (또는 다른 js 라이브러리)를 사용하십시오. –

11

당신이 필요합니다 접근 방식 (당신이 사랑하는 모든 인기있는 웹 응용 프로그램, INC. 이것 봐) 대신 버튼의 사실 사용 링크에 반면

그러나, 그것은 거의 우아한 것 필요한 GridView 열을 템플릿 필드로 만드는 것입니다. 템플릿 필드를 사용하면 gridview 컨트롤 (헤더, 항목, 바닥 글 등)의 각 주요 섹션에 asp.net 컨트롤을 지정할 수 있습니다. 나는이 시험하지 않았다하지만 원칙적으로는 다음과 같습니다

 <asp:GridView ID="Gridview1" runat="server"> 
     <Columns> 
      <asp:BoundField DataField="yourDbColumnName" HeaderText="id" /> 
      <asp:BoundField DataField="yourDbColumnName" HeaderText="name" /> 
      <asp:TemplateField> 
       <HeaderTemplate> 
        <asp:Button runat="server" ID="btnFamily" CommandName="FamilyClicked" /> 
       </HeaderTemplate> 
       <ItemTemplate> 
        <asp:Literal runat="server" ID="litFamily" Text='<%# EVAL("YourDbColumnValue") %>'></asp:Literal> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
    </asp:GridView> 

으로 "캡처"당신의 버튼의 클릭 이벤트와 당신이의 GridView의 RowCommand 이벤트를 활용할 필요가 그것으로 무언가를 (여기 출발점이다 - 검증되지 않은 다시) :

Protected Sub Gridview1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles Gridview1.RowCommand 
    If e.CommandName = "FamilyClicked" Then 
     ' they clicked by grid view header's asp:button control... 
     Response.Write("TEST") 
    End If 
End Sub 

여기에 마법 I가 "FamilyClicked"로 설정 (이 경우 귀하의 버튼의 명령 이름 속성의 할당에 있지만 그것은 당신이 원하는 무엇이든 할 수있다). link text

희망하는 데 도움이 -

는 여기에서의 GridView가 사용하는 템플릿 필드 기술에 좀 더 기본이다.

관련 문제