在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"];
    }

谢谢你的帮助

在asp.net实体框架中使用重复器

首先将您的按钮更改为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>