C# GridView是否有OnRowSelect事件?

C# GridView是否有OnRowSelect事件?,c#,asp.net,.net,gridview,C#,Asp.net,.net,Gridview,我知道这可能是一个愚蠢的问题,但GridView是否有像ASP.NET C#中的onRowUpdate、onRowDelete这样的OnRowSelect 当我把上面的代码放在事件中时,我在e.RowIndex上得到了一个错误 任何帮助都将非常感谢。这是gridview,您可能需要SelectedIndexChanged将您的按钮放在模板字段中,并将其指定为一个正常的单击事件,如下所示 <asp:GridView ID="gvProducts" runat="server" AutoGen

我知道这可能是一个愚蠢的问题,但GridView是否有像ASP.NET C#中的onRowUpdate、onRowDelete这样的OnRowSelect

当我把上面的代码放在事件中时,我在e.RowIndex上得到了一个错误


任何帮助都将非常感谢。

这是gridview,您可能需要
SelectedIndexChanged

将您的按钮放在模板字段中,并将其指定为一个正常的单击事件,如下所示

<asp:GridView ID="gvProducts" runat="server" AutoGenerateColumns="False" 
                EnableModelValidation="True">
                <Columns>
                    <asp:BoundField HeaderText="field 1" />
                    <asp:BoundField HeaderText="field2" />
                    <asp:TemplateField HeaderText="Select">
                        <ItemTemplate>
                            <asp:Button ID="btnSelect" runat="server" onclick="btnSelect_Click" 
                                Text="Select" />
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>

您必须启用
autogenerateselectbutton=true


否,但它已选择可用于此目的的DexChanged事件。以下是GridView支持的事件列表。

您必须首先通过简单的插入、更新、删除来查看此gridview的事件……以下是链接

然后看看这个链接,它可能会对你有帮助

void CustomersGridView_RowCommand(Object sender, GridViewCommandEventArgs e)
  {
    if(e.CommandName=="Select")
    {
      int index = Convert.ToInt32(e.CommandArgument);    
      GridViewRow selectedRow = CustomersGridView.Rows[index];
      TableCell contactName = selectedRow.Cells[1];
      string contact = contactName.Text;  
      Message.Text = "You selected " + contact + ".";
    }
  }
Gridview看起来像这样

<asp:gridview id="CustomersGridView" datasourceid="CustomersSqlDataSource" 
        autogeneratecolumns="false" onrowcommand="CustomersGridView_RowCommand"
        runat="server">

        <columns>

          <asp:buttonfield buttontype="Button" 
            commandname="Select" headertext="Select Customer" text="Select"/>

          <asp:boundfield datafield="CompanyName" headertext="Company Name"/>

          <asp:boundfield datafield="ContactName" headertext="Contact Name"/>

        </columns>

</asp:gridview>


您也可以在vsI did中应用
CommandName=“Edit”,CommandName=“Delete”而不是CommandName=“Select”

检查网格视图的事件列表,它确实显示了上面的事件,但当我尝试在网格视图中查找控件时,我得到一个错误我在网格视图中有一个按钮,我应该使用什么命令启动SelectedIndexChanged按钮?您将在GridView的RowCommand中获得button click事件,该示例可以帮助您非常感谢您的帮助
<asp:GridVew id="Gridview1" OnSelectedIndexChanging="GridView1_SelectedIndexChanging"
   OnSelectedIndexChanged="GridView1_SelectedIndexChanged" autogenerateselectbutton="True">

</asp:GridVew >
 protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
 {

       GridViewRow row = GridView1.Rows[e.NewSelectedIndex];

 }

 protected void GridView1_SelectedIndexChanged(object sender, GridViewSelectEventArgs e)
 {

       GridViewRow row = GridView1.SelectedRow;

 }
void CustomersGridView_RowCommand(Object sender, GridViewCommandEventArgs e)
  {
    if(e.CommandName=="Select")
    {
      int index = Convert.ToInt32(e.CommandArgument);    
      GridViewRow selectedRow = CustomersGridView.Rows[index];
      TableCell contactName = selectedRow.Cells[1];
      string contact = contactName.Text;  
      Message.Text = "You selected " + contact + ".";
    }
  }
<asp:gridview id="CustomersGridView" datasourceid="CustomersSqlDataSource" 
        autogeneratecolumns="false" onrowcommand="CustomersGridView_RowCommand"
        runat="server">

        <columns>

          <asp:buttonfield buttontype="Button" 
            commandname="Select" headertext="Select Customer" text="Select"/>

          <asp:boundfield datafield="CompanyName" headertext="Company Name"/>

          <asp:boundfield datafield="ContactName" headertext="Contact Name"/>

        </columns>

</asp:gridview>