如何从datagridview

时间:2016-08-16 20:43:35

标签: c# asp.net

我有疑问,

如何从当前单元格中获取特定ID? 我在每个ROW的datagridview中做一个fileuploader, 所以当我在fileUploader上clic并按我上传(上传文件)时, 当我点击“上传”时,我需要从当前行获取一个特定的ID。

ID To get whene you press "Upload"

1 个答案:

答案 0 :(得分:0)

您可以在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>