2011-01-07 3 views
2

이것은 매우 간단한 질문입니다. 정확하게 수행하는 방법을 모르겠습니다. 단추 또는 아마도 ImageButton을 ASP.NET/C#의 GridView에 바인딩하고 싶습니다. 현재 GridView에는 두 개의 열이 있으며 두 개의 열이있는 DataTable에 바인딩되어 있습니다. GridView에 세 번째 열을 추가하려고합니다.이 열은 Button을 포함합니다.단추를 GridView에 바인딩

GridView에 ButtonField가 있음을 알고 있지만 원하는대로 사용하는 방법을 잘 모릅니다. 동적으로이 버튼을 생성하여 GridView에 추가하려고합니다.

다음
<TemplateField> 
    <ItemTemplate> 
     <asp:ImageButton ImageUrl="image url" CommandName="SomeCommand" CommandArgument='<%# Eval("Id") %>'/> 
    </ItemTemplate> 
</TemplateField> 

당신의 GridView의 RowCommand 이벤트를 처리하고 확인할 수 있습니다,

<asp:GridView 
    ID="GridView1" 
    Runat="server"> 
    <Columns> 
     <asp:HyperLinkField 
      HeaderText="Display Name" 
      DataNavigateUrlFields="DISPNAME" 
      DataNavigateUrlFormatString="ViewItem.aspx" 
      DataTextField="DISPNAME"> 
      <ItemStyle Width="70%" /> 
     </asp:HyperLinkField> 
     <asp:BoundField 
      DataField="TypeDisp" 
      HeaderText="Type"> 
      <ItemStyle Width="20%" /> 
     </asp:BoundField> 
    </Columns> 
</asp:GridView> 

답변

6

당신은 다음과 같은 템플릿 필드를 사용할 수 있습니다 여기에

내의 GridView 지금 모습입니다 e.CommandName을 사용하면 실행할 명령을 확인할 수 있으며 e.CommandArgument도 얻을 수 있습니다. 위의 코드에서 사용한 것처럼 행 ID가 될 수 있습니다.

+0

감사합니다.이 솔루션은 실행 가능한 솔루션처럼 보입니다. 나는 월요일에 그것을 시험해보고 다시보고 할 것이다. –

+0

행운을 빕니다 ...... –

+0

잘 했어. 다시 한 번 감사드립니다! –

1

항상 존재하는 버튼을 사용하고 있다면 ButtonField를 사용하거나 TemplateField를 사용하고 버튼을 템플릿에 제공하고 데이터를 버튼에 바인딩 할 수 있습니다 (데이터를 버튼의 속성?)

UI에서 동적으로 버튼을 생성하려면 RowCreated 이벤트를 누르고 GridView 버튼을 추가하십시오. 모든 페이지로드시이 작업을 수행해야합니다. GridView는 프로그래밍 방식으로 생성 된 버튼을 기억하지 못합니다.

HTH.

관련 문제