Как сделать несколько динамических c кнопок с внутренними html в asp.net - PullRequest
0 голосов
/ 17 апреля 2020

Так что я использую mysql (для моего asp. net веб-приложения) в качестве базы данных и показываю продукты в корзине с устройством чтения данных и с внутренним html. Я знаю, что не могу создавать кнопки с событием onclick в коде позади, но когда я создаю динамические кнопки c, я получаю ошибку, что содержимое не является буквальным. Если вы посмотрите на изображение, я хочу, чтобы кнопка отображалась после цены. Когда товар добавлен, должна появиться новая кнопка (справа от цены). Я могу поместить кнопку в правильном месте с внутренним html, но тогда событие onclick не работает.

Это при загрузке страницы:

cmd.CommandText = $"select b.aantal, p.productnaam, p.Productafbeelding, p.productprijs, p.productvoorraad, p.productid from tblproducten p inner join tblbestelling b on p.productID=b.productID where b.klantID = {Session["KlantID"]} and b.betaald = 0";
            dr = cmd.ExecuteReader();
            WinkelmandBody.InnerHtml = "";
            while (dr.Read())
            {
                if (Convert.ToInt32(dr[4]) > 0)
                {
                    stock = "In stock";
                }
                else
                {
                    stock = "Uitverkocht";
                }
                subtot += Convert.ToInt32(dr[3]) * (Convert.ToInt32(dr[0]));
                WinkelmandBody.InnerHtml += "<tr>";
                WinkelmandBody.InnerHtml += $"<td><img src='imgs/{dr[2]}' style='height: 50px; width: 50px; '/> </td>";
                WinkelmandBody.InnerHtml += $"<td>{dr[1]}</td>";
                WinkelmandBody.InnerHtml += $"<td>{stock}</td>";
                WinkelmandBody.InnerHtml += $"<td style='text-align:center; border:none'><input style='text-align:center' type='text' value='{dr[0]}' /></td>";
                WinkelmandBody.InnerHtml += $"<td style='text-align:right'>{ Convert.ToInt32(dr[3]) * (Convert.ToInt32(dr[0])) }€</td>";
                WinkelmandBody.InnerHtml += "</tr>";

                Button btnTrash = new Button();
                btnTrash.ID = "Verwijderen_"+dr[5];
                btnTrash.Text = "Verwijderen";
                btnTrash.Click += btnTrash_Click;
                WinkelmandBody.Controls.Add(btnTrash);
                //WinkelmandBody.InnerHtml += $"<td style='float:right'><a href='homepage.aspx' onserverclick='btnTrash_Click' runat = 'server'> Verwijder</a></td>";
                //WinkelmandBody.InnerHtml += "<td style='float:right'><input type='submit' name='btnSubmit' id='btnSubmit' runat='server' onserverclick='btnTrash_Click'/><i class='fa fa-trash'></i></button></td>";
                //WinkelmandBody.InnerHtml += "<td style='float:right'><asp:LinkButton style='height:50px;width:50px' id='btnTrash' AutoPostBack='true' onClick='btnTrash_Click'><i class='fas fa-trash'></i></asp:LinkButton></td>";
                //WinkelmandBody.InnerHtml += $"<input type='submit' name='btnSubmit' id='btnSubmit' value='Login' runat='server' onserverclick='Submit_Click'/>";
                LinkButton btnVuil = new LinkButton();
                btnVuil.Click += new EventHandler(btnTrash_Click);
                //WinkelmandBody.Controls.Add(btnSubmit)
                ButtonBody.Controls.Add(btnVuil);

html :

<div class="container mb-4">
    <div class="row">
        <div class="col-12">
            <div class="table-responsive">
                <table class="table table-striped">
                    <thead>
                        <tr>
                            <th scope="col"></th>
                            <th scope="col">Product</th>
                            <th scope="col">Voorraad</th>
                            <th scope="col" class="text-center">Aantal</th>
                            <th scope="col" class="text-right">Prijs</th>
                            <th> </th>
                        </tr>
                    </thead>
                    <tbody>
                        <div id="WinkelmandBody" runat="server">
                            <div id="ButtonBody" runat="server"></div>
                        </div>                            
                        <tr>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td>Sub-Totaal</td>
                            <td class="text-right" runat="server" id="SubTotaal"></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td>Verzendkosten</td>
                            <td class="text-right" id="VerzendKosten">6,90 €</td>
                        </tr>
                        <tr>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td><strong>Totaal</strong></td>
                            <strong><td runat="server" id="Totaal" class="text-right"></td></strong>
                        </tr>
                    </tbody>
                </table>
            </div>
        </div>
        <div class="col mb-2">
            <div class="row">
                <div class="col-sm-12  col-md-6">
                    <button class="btn btn-block btn-lg btn-info">Winkel verder</button>
                </div>
                <div class="col-sm-12 col-md-6 text-right">
                    <asp:Button ID="Button1" runat="server" class="btn btn-block btn-lg btn-primary" Text="Afbetalen" OnClick="Button1_Click" />                    
                </div>
            </div>
        </div>
    </div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...