Так что я использую 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>