正在RowCommand中获取selectedrow

本文关键字:selectedrow 获取 RowCommand 正在 | 更新日期: 2023-09-27 17:54:38

我有一个网格视图:

<asp:GridView ID="gdvOpinions" runat="server" Width="100%" CellPadding="4" 
                        ForeColor="#333333" GridLines="None" Height="100px" Visible="False" 
                        AutoGenerateColumns="False" onrowcommand="gdvOpinions_RowCommand" >
                    <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                    <Columns>
                        <asp:ButtonField ButtonType="Button" CommandName="Confirm" Text="تائید" />
                        <asp:ButtonField ButtonType="Button" CommandName="Delete" Text="حذف" />
                        <asp:BoundField DataField="ID" HeaderText="ID" />
                        <asp:BoundField DataField="مقاله" HeaderText="مقاله" >
                        <ControlStyle Width="150px" />
                        </asp:BoundField>
                        <asp:BoundField DataField="نظر کاربر" HeaderText="نظر کاربر" >
                        <ControlStyle Width="250px" />
                        </asp:BoundField>
                    </Columns>
                    <EditRowStyle BackColor="#999999" />
                    <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                    <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                    <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                    <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                    <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                    <SortedAscendingCellStyle BackColor="#E9E7E2" />
                    <SortedAscendingHeaderStyle BackColor="#506C8C" />
                    <SortedDescendingCellStyle BackColor="#FFFDF8" />
                    <SortedDescendingHeaderStyle BackColor="#6F8DAE" />
                </asp:GridView>

正如你所看到的,我每行都有两个按钮字段,但当我点击其中一个按钮并想在中获得它们的行时

gdvOpinions_RowCommand

gdvOpinions.SelectedRow

返回null;我应该如何找到所选的行?

正在RowCommand中获取selectedrow

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns = "false" 
    OnRowCommand = "OnRowCommand">
 <Columns>
  <asp:ButtonField CommandName = "ButtonField"  DataTextField = "CustomerID"
        ButtonType = "Button"/>
 </Columns>
</asp:GridView>
protected void OnRowCommand(object sender, GridViewCommandEventArgs e)
{
    int index = Convert.ToInt32(e.CommandArgument);
    GridViewRow gvRow = GridView1.Rows[index]; 
}

根据我对你的问题的理解,如果你试图获得点击按钮的行,那么在这种情况下,这可能是正确的做法:

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

现在,这是针对诸如ButtonImageButton之类的控件。你可能不得不为ButtonField即兴创作。

您也可以将ButtonField更改为具有Button的简单TemplateField

希望这能有所帮助。