2011-12-15 6 views
0

격자보기가 있고 거기에 템플릿 필드가 있고 단추를 클릭하여 선택한 행의 색인을 가져 오려고합니다. 필드 유형을 변경하려면 원인을 바꿀 필요가 있습니다. 속성을 수동으로 내 뒤에 코드. 다음은 내 코드입니다 :버튼을 클릭하여 gridview에서 선택된 색인 가져 오기

<asp:GridView ID="gvService" runat="server" BackColor="White" AutoGenerateColumns="False" 
    BorderColor="#999999" BorderStyle="None" BorderWidth="1px" CellPadding="3" GridLines="Vertical" DataKeyNames="Service_Id, UserId"> 
    <AlternatingRowStyle BackColor="#DCDCDC" /> 
    <Columns> 
     <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" HeaderStyle-BackColor="Gray"> 
      <HeaderStyle BackColor="Gray"></HeaderStyle> 
     </asp:BoundField> 
     <asp:BoundField DataField="L_Name" HeaderText="LastName" SortExpression="L_Name" 
      HeaderStyle-BackColor="Gray"> 
      <HeaderStyle BackColor="Gray"></HeaderStyle> 
      <asp:TemplateField> 
      <ItemTemplate> 
       <asp:Button ID="bttCost" runat="server" Text="Cost" OnCommand="Cmd_Pay" Visible='<%# IsNotPaid((Decimal)Eval("Cost")) %>' /> 
      </ItemTemplate> 
      </asp:TemplateField> 

내 코드 숨김

 int rowIndex = gvService.SelectedIndex; 
     HFServiceID.Value = (string)gvService.DataKeys[rowIndex]["Service_Id"]; 
     HFUserID.Value = (string)gvService.DataKeys[rowIndex]["UserId"]; 
+1

버튼이나 템플릿 입력란이 보이지 않습니다. –

답변

3

가 클릭 된 버튼을, 당신의 onclick 이벤트에 이것을 추가 속한 행 인덱스를 얻을 수 있습니다.

var rowIndex = ((GridViewRow)((Control)sender).NamingContainer).RowIndex; 
관련 문제