1

我有一个gridview:

<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

返回空值;我应该如何找到选择了哪一行?

4

2 回答 2

1
<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]; 
}
于 2015-06-09T08:44:23.767 回答
0

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

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

现在在这里,这是一个控件,例如 aButtonImageButton。您可能不得不为此即兴创作ButtonField

您也可以使用 将 更改ButtonField为简单TemplateFieldButton

希望这可以帮助。

于 2015-06-09T08:46:44.553 回答