通过中继器控制做一个按钮动态



我有这个中继器控件如何使下载按钮动态

<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();
    }
}

尝试这个。

最新更新