如何在gridview中的按钮点击事件中选择行id

时间:2014-10-26 07:59:53

标签: asp.net ado.net ado.net-entity-data-model

我在gridview中添加了两个按钮.. 在页面加载事件的网格视图中加载数据的位置.. 现在我想分别在添加和删除按钮上编写更新和删除查询。 我的问题是如何在按钮点击事件

上选择行ID
 <asp:GridView ID="GridView1" runat="server" CssClass="flat-table flat-table-1">
   <Columns>
   <asp:TemplateField>
       <ItemTemplate>
           <asp:Button ID="btn_add" runat="server" CommandName="Add" OnClick="btn_add_Click" Text="Add" CssClass="btn btn-align btn-primary" />
             <asp:Button ID="btn_cancel" runat="server" CommandName="Cancel" OnClick="btn_cancel_Click" Text="Delete" CssClass="btn btn-align btn-danger" />
        </ItemTemplate>
   </asp:TemplateField>
 </Columns>
</asp:GridView>

1 个答案:

答案 0 :(得分:0)

ItemTempalate修改为以下内容。注意:我已使用CommandArgument传递选定的row_index

<asp:TemplateField>
    <ItemTemplate>
        <asp:Button ID="btn_add" runat="server" CommandName="Add" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>"
            Text="Add" CssClass="btn btn-align btn-primary" />
        <asp:Button ID="btn_cancel" runat="server" CommandName="Cancel" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" Text="Delete" CssClass="btn btn-align btn-danger" />
    </ItemTemplate>
</asp:TemplateField>

添加row_command事件,并使用以下服务器端代码,我只处理"Add"操作。

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if(e.CommandName == "Add")
    {
        // Handling for add
        string arg = e.CommandArgument.ToString();
        int rowidx = int.Parse(arg);
        // arg = selected index, as we are using that in cmd arg.
        GridViewRow SelectedRow = GridView1.Rows[rowidx];
    }
}