我有一个包含以下内容的网络表单
<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.
最佳答案
您可以将LinkButton从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));
}
更新
如果文件名始终是LinkButton的文本,则还可以将发件人强制转换为一个并获得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中的LinkButton可以将音频文件从文件夹检索到html音频,以便可以播放,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43169150/