C# 在gridview中处理按钮事件

C# 在gridview中处理按钮事件,c#,asp.net,gridview,C#,Asp.net,Gridview,今天我有几个问题,我是ASP和C的新手,所以我需要一些帮助,问题是下一个。(我会尽量做到最具体) 我从数据库中创建了一个GridView,我在GridView中添加了一列按钮(详细信息),下面是问题。当我单击一个按钮时,我需要在浏览器中打开一个新窗口(我如何从C#执行此操作,或者仅在客户端使用javascrip?即可),在我需要显示数据库中的详细信息后,首先我需要从按钮所在的行中获取ID,即GridView中的列ID,那么,在单击按钮的位置,如何获取ID列的行值呢 这是我的ASP GridVie

今天我有几个问题,我是ASP和C的新手,所以我需要一些帮助,问题是下一个。(我会尽量做到最具体)

我从数据库中创建了一个GridView,我在GridView中添加了一列按钮(详细信息),下面是问题。当我单击一个按钮时,我需要在浏览器中打开一个新窗口(我如何从C#执行此操作,或者仅在客户端使用javascrip?即可),在我需要显示数据库中的详细信息后,首先我需要从按钮所在的行中获取ID,即GridView中的列ID,那么,在单击按钮的位置,如何获取ID列的行值呢

这是我的ASP GridView代码

<asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="false"
AllowPaging="true" CellPadding="3"
OnPageIndexChanging="grdData_PageIndexChanging" PagerSettings-Position="Top"
PagerStyle-ForeColor="Orange"
PageSize="10">
<Columns>
    <asp:BoundField DataField="id" HeaderText="ID" />
    <asp:BoundField DataField="request_type" HeaderText="RequestType"/>
    <asp:BoundField DataField="priority" HeaderText="Priority" />
    <asp:BoundField DataField="modality" HeaderText="Modality" />
    <asp:BoundField DataField="name" HeaderText="Name" />
    <asp:BoundField DataField="start_date" HeaderText="Start Date"/>
    <asp:BoundField DataField="end_date" HeaderText="End Date"  />
    <asp:BoundField DataField="hour" HeaderText="Start Hour" />
    <asp:BoundField DataField="requester" HeaderText="Requester Name" />
    <asp:TemplateField>
        <ItemTemplate>
            <asp:Button ID="Details" runat="server" 
                CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" 
                Text="Details" CssClass="botonformulario"/>
        </ItemTemplate>
    </asp:TemplateField>
</Columns>
我试着在这一页上做同样的事情

从这一次开始

我真的不知道我做错了什么,当我点击一个按钮时什么也没发生。 我尝试过放置断点,但我注意到断点从未出现


非常感谢您的时间,任何评论都会很有帮助。

您有
GridView1\u RowCommand
处理程序,但它没有绑定到您发布的html中。您可能需要将事件绑定到
GridView

<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand"
AutoGenerateColumns="false"
AllowPaging="true" CellPadding="3"
OnPageIndexChanging="grdData_PageIndexChanging" PagerSettings-Position="Top"
PagerStyle-ForeColor="Orange"
PageSize="10">

您有
GridView1_row命令
处理程序,但它没有绑定到您发布的html中。您可能需要将事件绑定到
GridView

<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand"
AutoGenerateColumns="false"
AllowPaging="true" CellPadding="3"
OnPageIndexChanging="grdData_PageIndexChanging" PagerSettings-Position="Top"
PagerStyle-ForeColor="Orange"
PageSize="10">

谢谢我现在就试试这个:)谢谢我现在就试试这个:)
 <asp:Button ID="Details" runat="server" CommandName="cmdDetails"
            CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" 
            Text="Details" CssClass="botonformulario"/>
  <asp:GridView ID="GridView1" runat="server"
  AutoGenerateColumns="false"
  AllowPaging="true" CellPadding="3"
  OnPageIndexChanging="grdData_PageIndexChanging" PagerSettings-Position="Top"
  PagerStyle-ForeColor="Orange"
  PageSize="10">
  <Columns>
<asp:BoundField DataField="id" HeaderText="ID" />
<asp:BoundField DataField="request_type" HeaderText="RequestType"/>
<asp:BoundField DataField="priority" HeaderText="Priority" />
<asp:BoundField DataField="modality" HeaderText="Modality" />
<asp:BoundField DataField="name" HeaderText="Name" />
<asp:BoundField DataField="start_date" HeaderText="Start Date"/>
<asp:BoundField DataField="end_date" HeaderText="End Date"  />
<asp:BoundField DataField="hour" HeaderText="Start Hour" />
<asp:BoundField DataField="requester" HeaderText="Requester Name" />
<asp:TemplateField>
    <ItemTemplate>
        <asp:Button ID="Details" runat="server" 
            CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" 
            Text="Details" OnClick="Details_Click" CommandName='<%# Eval("id")%>' CssClass="botonformulario"/>
    </ItemTemplate>
</asp:TemplateField>
protected void Details_Click(object sender, EventArgs e)
 {
          Button btn=(Button)sender;
          Response.Redirect("Details.aspx?id="+btn.CommandName);
 }