【问题标题】:how to select the row id on button click event inside gridview如何在gridview内的按钮单击事件上选择行ID
【发布时间】:2014-10-26 07:59:53
【问题描述】:

我在我的网格视图中添加了两个按钮.. 在页面加载事件的网格视图中加载数据的位置.. 现在我想分别在添加和删除按钮上编写更新和删除查询。 我的问题是如何在按钮点击事件中选择行 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>

【问题讨论】:

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


    【解决方案1】:

    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];
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2018-11-27
      • 2015-09-05
      • 2011-05-22
      • 2015-01-19
      • 1970-01-01
      • 2011-12-02
      • 2018-12-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多