Я студент и занимаюсь разработкой веб-сайта как проекта в Visual Studio с использованием C # и HTML5.Моя проблема в том, что мне нужно две команды в одной GridView
.Я попытался сделать две кнопки, и это не сработало.
Это HTML-код:
<asp:Panel ID="Panel1" runat="server">
<asp:GridView ID="GridView1" runat="server" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" RowCommand="GridView1_RowCommand" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="Play">
<ItemTemplate>
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="play-sign.jpg" HeaderText="Play" Height="25" Width="25" CommandName="PLAY"/>
</ItemTemplate>
</asp:TemplateField>
<asp:ImageField ControlStyle-Height=" 100" ControlStyle-Width=" 100" DataImageUrlField="Picture" NullDisplayText="The picture doesnt exist" HeaderText="Photo">
<ControlStyle Height="100px" Width="100px" />
</asp:ImageField>
<asp:BoundField DataField="Artist" HeaderText="Artist"/>
<asp:BoundField DataField="NameOfSong" HeaderText="Song"/>
<asp:BoundField DataField="Genre" HeaderText="Genre"/>
<asp:BoundField DataField="Price" HeaderText="Price" />
<asp:BoundField DataField="DateOfRelease" HeaderText="Release Date"/>
<asp:BoundField runat="server" DataField="Song" Visible="false"/>
<asp:BoundField runat="server" DataField="picture" Visible="false" />
<asp:TemplateField HeaderText="Add To Cart">
<ItemTemplate>
<asp:Button ID="Button1" runat="server" Text="Add To Cart" CommandName="ATC"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Image ID="Image1" runat="server" Height="100px" Width="100px" Visible="False" />
<!-- Audio Player HTML -->
<audio id="audioplayer" typeof="audio/mp3" runat="server" preload="metadata" controls="controls" autoplay="autoplay" visible="false" controlsList="nodownload"></audio>
</asp:Panel>
, а это код C #:
protected void play()
{
audioplayer.Visible = true;
string s = InfoDB.Getsong(GridView1.SelectedRow.Cells[2].Text, GridView1.SelectedRow.Cells[3].Text);
string p = InfoDB.GetPic(GridView1.SelectedRow.Cells[2].Text, GridView1.SelectedRow.Cells[3].Text);
Image1.ImageUrl = p;
Image1.Visible = true;
audioplayer.Attributes["src"] = s;
}
protected void GridView1_RowCommand(object sender,GridViewCommandEventArgs e)
{
if (e.CommandName == "ATC")
{
Session["cart"] += GridView1.SelectedRow.Cells[2].Text;
Session["cart"] += "_";
Session["cart"] += GridView1.SelectedRow.Cells[3].Text;
Session["cart"] += ";";
}
else if(e.CommandName=="PLAY")
{
play();
var g = GridView1.GridLines;
}
}
Когда я запускаю программу, она завершается с ошибкой:
Недопустимый аргумент обратной передачи или обратного вызова.Проверка события включена с использованием в конфигурации или <% @ Page EnableEventValidation = "true"%> на странице.В целях безопасности эта функция проверяет, что аргументы для событий обратной передачи или обратного вызова исходят от серверного элемента управления, который первоначально их представил.Если данные действительны и ожидаемы, используйте метод ClientScriptManager.RegisterForEventValidation, чтобы зарегистрировать данные обратной передачи или обратного вызова для проверки.
Мой вопрос заключается в том, как я могу это исправить и как я могу сделать *Кнопка 1016 * и кнопка Play
в этом GridView
.