Две команды / события в одном виде сетки (Visual Studio) - PullRequest
0 голосов
/ 19 мая 2018

Я студент и занимаюсь разработкой веб-сайта как проекта в 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...