如何在datagridview上从选定行获取id

本文关键字:获取 id datagridview | 更新日期: 2023-09-27 18:02:36

我有一个疑问,

我如何从当前单元格获得特定的id ?我在datagridview中每行做一个文件加载器,当我点击fileUploader并点击Upload(上传文件)时,当我点击"上传"时,我需要从当前行获得一个特定的id。

ID当你按下"Upload"

如何在datagridview上从选定行获取id

您可以在ASP中使用命令按钮。. NET并通过ID传递到后面的代码,如CommandArgument='<%# Eval("ID") %>' .需要注意的一点是,命令按钮需要实现OnCommand事件,而不是OnClick

下面是一个简单的例子来帮助你开始。

代码:

protected void Page_Load(object sender, EventArgs e)
{
    if(!Page.IsPostBack)
    {
        var f1 = new FileData { ID = 1 };
        var f2 = new FileData { ID = 2 };
        GridView1.DataSource = new List<FileData> { f1, f2 };
        GridView1.DataBind();
    }
}
protected void bntFileUpload_Command(object sender, CommandEventArgs e)
{
    if(e.CommandName == "Upload")
    {
        int id = Int32.Parse(e.CommandArgument.ToString());
        lblOutput.Text = String.Format("You clicked on ID - {0}", id);
    }
}

。ASPX:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="ID" HeaderText="ID" />
        <asp:TemplateField HeaderText="Upload">
            <ItemTemplate>
                <asp:Button ID="bntFileUpload" CommandArgument='<%# Eval("ID") %>' OnCommand="bntFileUpload_Command" CommandName="Upload" runat="server" Text="Upload" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
<asp:Label ID="lblOutput" runat="server"></asp:Label>