获取Asp.net Rowcommand事件的行索引

Sha*_*hin 31 c# asp.net gridview rowcommand

我有一个asp.net Gridview.

<asp:TemplateField HeaderText="View Faktor" ShowHeader="False" Visible="True">
    <ItemTemplate>
        <asp:ImageButton ID="imgBtn1" CssClass="SelectRow" runat="server" CausesValidation="false"
            CommandArgument='<%#(eval("mprID")) %>' CommandName="ViewFactors" ImageUrl="~/tadarokat/Images/factor.png"
            Text="" />
    </ItemTemplate>
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)

如何在行命令事件中获取rowIndex?
我想在Rowcommand触发时突出显示(选择)目标行.

rah*_*rma 67

这是你的问题的答案.

GridViewRow gvr = (GridViewRow)(((ImageButton)e.CommandSource).NamingContainer);

int RowIndex = gvr.RowIndex; 
Run Code Online (Sandbox Code Playgroud)


Vin*_*sta 12

ImageButton\Button等

CommandArgument='<%# Container.DataItemIndex%>' 
Run Code Online (Sandbox Code Playgroud)

代码隐藏

protected void gvProductsList_RowCommand(object sender, GridViewCommandEventArgs e)
{
    int index = e.CommandArgument;
}
Run Code Online (Sandbox Code Playgroud)

  • 当gridview中有多个页面时,这将不起作用 (3认同)

小智 7

或者,您可以使用control类而不是类型:

GridViewRow row = (GridViewRow)(((Control)e.CommandSource).NamingContainer);

int RowIndex = row.RowIndex; 
Run Code Online (Sandbox Code Playgroud)