我有疑问,
如何从当前单元格中获取特定ID? 我在每个ROW的datagridview中做一个fileuploader, 所以当我在fileUploader上clic并按我上传(上传文件)时, 当我点击“上传”时,我需要从当前行获取一个特定的ID。
答案 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>