Получить выбранный индекс в виде сетки, нажав на кнопку - PullRequest
0 голосов
/ 16 декабря 2011

У меня есть вид сетки, и в нем есть поле шаблона, и я хочу получить индекс выбранной строки, нажав кнопку. Я не могу изменить тип поля, потому что я хочу вручную изменить атрибут 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 Ответ

3 голосов
/ 16 декабря 2011

Чтобы получить индекс строки, к которой принадлежит нажатая кнопка, добавьте это в событие onclick.

var rowIndex = ((GridViewRow)((Control)sender).NamingContainer).RowIndex;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...