0
私のページ私はデータベースからいくつかのデータを表示していますが、各項目にはデータベースからこれを削除するボタンがあります。私は、コードビハインド方式でItem.id_produktを取得できますかListViewのボタンのクリックハンドラに値を渡すにはどうすればよいですか?
<asp:ListView ID="productList" runat="server"
DataKeyNames="id_produkt"
ItemType="Shop.Models.Produkt" SelectMethod="GetProducts">
<ItemTemplate>
<tr>
<td><%#:Item.id_produkt%></td>
<td><%#:Item.nazwa_produkt%></td>
<td><%#:Item.cena%></td>
<td><%#:Item.poprzednia_cena%></td>
<td><%#:Item.Ilosc%></td>
<td>
<asp:Button CssClass="btn btn-info btn-sm" ID="Edytuj" runat="server" Text="Edytuj" OnClick="AddProductButton_Click" CausesValidation="true" />
<asp:Button CssClass="btn btn-danger btn-sm" ID="RemoveButton" runat="server" Text="Usuń Produkt" OnClick="RemoveProductButton_Click" CausesValidation="false" />
<a href="AdminPage_Details.aspx?productID=<%#:Item.id_produkt%>" class="btn btn-info btn-sm">Szczegóły</a>
</td>
</tr>
</ItemTemplate>
<ItemSeparatorTemplate></ItemSeparatorTemplate>
</asp:ListView>
:
は、ここでのaspxですか?
、今ではこのようになりますのために:どういうわけか
protected void RemoveProductButton_Click(object sender, EventArgs e)
{
using (var _db = new Shop.Models.EgzemplarzContext())
{
int productId = Convert.ToInt16();
var myItem = (from c in _db.Produkty where c.id_produkt == productId select c).FirstOrDefault();
IQueryable<Egzemplarz> query = _db.Egzemplarze;
query = query.Where(p => p.id_produkt == productId);
if (myItem != null && query != null)
{
foreach (var item in query)
{
_db.Egzemplarze.Remove(item);
}
_db.Produkty.Remove(myItem);
_db.SaveChanges();
// Reload the page.
string pageUrl = Request.Url.AbsoluteUri.Substring(0, Request.Url.AbsoluteUri.Count() - Request.Url.Query.Count());
Response.Redirect(pageUrl + "?ProductAction=remove");
}
else
{
LabelAddStatusDanger.Text = "Nie można usunąć produktu.";
}
}
}
私はこの方法でproductlistからItem.id_produktを取得する必要があります。
どうすればいいですか?