2011-10-24 1 views
1

에서 BoundField를 얻을 수 있습니다 내가이 다음의 GridView는 어떻게의 GridView

<asp:GridView ID="grdImoveis" runat="server" DataSourceID="dsGrid"> 
        <Columns> 
         <asp:BoundField HeaderText="Nome" DataField="NomeCompleto" /> 
         <asp:ImageButton ID="ibtnAlterar" ImageUrl="../tema/_Internas/icons/edit.png" runat="server" OnClick="btnChange_Click" /> 
        </Columns> 
</GridView> 

어떻게 내가 뒤에 코드에서이 필드의 값을 얻을 내 btnChange_Click 이벤트에 값을 전달할 수 있습니다?

답변

4

내가 생각하는 것을 묻는다면 GridView의 OnRowCommand를 처리하고 거기에 버튼 작업을 캡처하고 싶습니다.

<asp:GridView ID="grdImoveis" onrowcommand="grdImoveis_RowCommand" ... 

숨김 코드 :

protected void grdImoveis_RowCommand(object sender, GridViewCommandEventArgs e) 
    { 
     if (e.CommandName == "BUTTON") 
     { 
      // Check value of e.CommandArgument and do something here: 
     } 
    } 

그리고 당신이 전달할 값으로 CommandNameCommandArgument를 설정하여과 같이 뭔가로하여 ImageButton을 변경합니다.

<asp:TemplateField> 
      <ItemTemplate> 
<asp:ImageButton CommandName="BUTTON" CommandArgument='<%#Eval("NomeCompleto") %>' ID="ibtnAlterar" ImageUrl="../tema/_Internas/icons/edit.png" runat="server" /> 
</ItemTemplate></asp:TemplateField> 

CommandArgument='<%# Container.DataItemIndex %>' 
TemplateField 내부

다음 'OnRowCommand'이벤트 처리기 뒤에 코드에서 다음과 같이 사용 등의

+0

ImageButton이 있습니다 ... 거기를 클릭하면 특정 클라이언트의 데이터를 수정할 수 있습니다. 이 클라이언트의 이름이 GridView의 BoundField에 있으면 특정 클라이언트를 어떻게 얻을 수 있습니까? –

+0

@ Lucas_Santos templatefield에서 imagebutton을 감싸는 답을 편집하여 그 부분을 잊어 버렸습니다. 그러나 <% # Eval ("...") %>는 명령 데이터에서 해당 데이터를 설정합니다. 당신은 정상적인 버튼 클릭 핸들러를 할 수 없을 것입니다. –

0

사용 CommandArgument 속성 :

또한 TemplateField에 포장해야
protected void gv_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    object dataItem = gv.Rows[int.Parse(e.CommandArgument.ToString())].DataItem; 
} 
관련 문제