通过单击按钮获取gridview中的选定索引

时间:2011-12-15 20:53:30

标签: c# asp.net gridview

我有网格视图,其中有一个模板字段,我希望通过单击按钮获取所选行的索引我无法更改字段类型,因为我想手动更改后面代码中的visibale属性。 这是我的代码:

    <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 个答案:

答案 0 :(得分:3)

要获取单击按钮所属的行索引,请在onclick事件中添加此内容。

var rowIndex = ((GridViewRow)((Control)sender).NamingContainer).RowIndex;