在asp.net实体框架中使用重复器
本文关键字:asp net 实体 框架 | 更新日期: 2023-09-27 18:05:10
我在实体框架中使用中继器。我想在数据库中显示所有项目,并选择其中一个,并将其发送到另一个页面。我得到所有项目从数据库没有问题,但我不能得到它到另一个页面。这是我的中继器代码。
<asp:Repeater ID="Repeatersearch" runat="server">
<ItemTemplate>
<li>
<div class="product">
<a class="info">
<span class="holder">
<img id="Image1" src="PerfumeImages/<%#Eval("Image") %>" />
<span class="book-name">
<%#Eval("Name") %><br />
</span>
<span class="description">
<%#Eval("CGender") %><br />
<%#Eval("Size") %> ml<br />
<%#Eval("Stock") %> stock left<br />
</span>
</span>
</a>
<a class="buy-btn"><asp:Button ID="btnProduct1Addtocart" runat="server" Text="Add to cart" onClick="btn_addCart" /><span class="price"> <%#Eval("Price") %><span class="low">TL</span></a>
</div>
</li>
</ItemTemplate>
</asp:Repeater>
我想发送值到detail。当用户单击按钮时,显示Aspx页面。这是我的按钮代码。
protected void btn_addCart(object sender, EventArgs e) {
Response.Redirect("~/Detailed.aspx?Id="?????? ");
}
我不知道该在我用问号标出的地方写些什么。这是我的代码从接收页。
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = Request.QueryString["Id"];
}
谢谢你的帮助
首先将您的按钮更改为this。它添加了CommandName
(在这种情况下是完全可选的)和CommandArgument
来保存id
<asp:Button ID="btnProduct1Addtocart" runat="server" Text="Add to cart" onClick="btn_addCart" CommandName="AddToCart" CommandArgument="<%#Eval("CGender") %>" />
然后在后面的代码中,在按钮单击处理程序中:
protected void btn_addCart(object sender, EventArgs e)
{
Button btn = (Button)sender;
if (btn.CommandName == "AddToCart")
{
//Now you have the id to use in your code here
var id = btn.CommandArgument;
}
}
如果你只需要转到另一个页面为一个单一的项目点击,你只需要使用所需的url在你的重复器控件,如下所示:
<asp:Repeater ID="Repeatersearch" runat="server">
<ItemTemplate>
<li>
<div class="product" >
<a class="info" href='<%: ResolveUrl("~/Detaild.aspx?Id=" + Eval("Id"))%>'>
//the rest of your code...
</a>
</div>
</li>
</ItemTemplate>
</asp:Repeater>