我有这个中继器控件如何使下载按钮动态
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<h4>
<asp:Label ID="title" runat="server" Text='<%# Eval("title")%>'>
<asp:Image ID="musicimage" ImageUrl='<%# Eval("image_src")%>' runat="server" Height="150" Width="150" />
<asp:Button ID="btnDownload" runat="server" Text="Download" />
</div>
</div>
</ItemTemplate>
</asp:Repeater>
这是我的C#代码 因此,当我单击按钮时,此代码运行
protected void btnDownload(object sender, EventArgs e)
{
String FileName = title; //from the db
String FilePath = image_src //source from the db
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.ClearContent();
/ response.Clear();
response.ContentType = "audio/mpeg";
response.AddHeader("Content-Disposition", "attachment; filename=" + FileName + ";");
response.TransmitFile(FilePath);
response.Flush();
response.End();
}
您可以尝试以下代码获取音乐下载ASPX代码:
<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
<ItemTemplate>
<h4>
<asp:Label ID="title" runat="server" Text='<%# Eval("title")%>'></asp:Label>
<asp:Image ID="musicimage" ImageUrl='<%# Eval("image_src")%>' runat="server" Height="150" Width="150" />
<asp:Button ID="btnDownload" runat="server" Text="Download" CommandName="DownloadMusic" />
</div>
</div>
</ItemTemplate>
</asp:Repeater>
和在.cs页面中的代码中的代码
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "DownloadMusic")
{
//To get title of music
string Title = string.Empty;
Label lbltitle = new Label();
lbltitle = (Label)e.Item.FindControl("title");
Title = lbltitle.Text;
//to get path fo music
string FilePath = string.Empty;
Image imgfile = new Image();
imgfile = (Image)e.Item.FindControl("musicimage");
FilePath = imgfile.ImageUrl;
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.ClearContent();
response.ContentType = "audio/mpeg";
response.AddHeader("Content-Disposition", "attachment; filename=" + Title + ";");
response.TransmitFile(FilePath);
response.Flush();
response.End();
}
}
尝试这个。