我有一个包含以下内容的网络表单

<audio controls="controls" id="audio" runat="server"></audio>


<asp:GridView ID="GridView1" runat="server" GridLines="None" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
    <Columns>
            <asp:TemplateField HeaderText="Name" SortExpression="Name">
                <ItemTemplate>
                    <asp:LinkButton ID="LinkButton1" runat="server" Text='<%# Bind("Name") %>' OnClick="LinkButton1_Click"></asp:LinkButton>
                </ItemTemplate>
            </asp:TemplateField>
        <asp:BoundField DataField="Date" HeaderText="Date" SortExpression="Date" />
    </Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConStr %>" SelectCommand="SELECT [Name], [Date] FROM [tablename]"></asp:SqlDataSource>

我被代码滞后了。我想通过检查数据库的日期和路径来播放文件夹中的音频文件。我在vb中有下面的代码
audio.Attributes("src") = "Audio/" 'I am unable to continue from here.

最佳答案

您可以将LinkBut​​ton从OnClick更改为OnCommand。这样,您就可以发送CommandArgument了。

<asp:LinkButton ID="LinkButton1" runat="server" CommandArgument='<%# Eval("FileName") %>' OnCommand="LinkButton1_Command">LinkButton1</asp:LinkButton>

然后,在后面代码中的Command方法中,您可以从命令参数中获取文件名,并将其用作播放器的源。
protected void LinkButton1_Command(object sender, CommandEventArgs e)
{
    string fileName = e.CommandArgument.ToString();
    audio.Attributes.Add("src", Server.MapPath("/Audio/" + fileName));
}

更新

如果文件名始终是LinkBut​​ton的文本,则还可以将发件人强制转换为一个并获得Text属性。
protected void LinkButton1_Command(object sender, CommandEventArgs e)
{
    LinkButton lb = sender as LinkButton;
    audio.Attributes.Add("src", Server.MapPath("/Audio/" + lb.Text));
}

关于asp.net - asp:Gridview中的LinkBut​​ton可以将音频文件从文件夹检索到html音频,以便可以播放,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43169150/

10-11 22:23
查看更多