【问题标题】:obtain data using a button from within a repeater使用中继器中的按钮获取数据
【发布时间】:2014-08-14 00:06:17
【问题描述】:

在用尽互联网后,我没有找到很多解决方案,所以我在这里问。所以我有一个中继器显示来自数据库的产品信息,在该数据库中我绑定到中继器,它们显示以下产品名称、产品描述、数量和价格。

我想知道的是如何使用名为“添加到购物车”的按钮来选择单击该按钮的数据行。

这是我尝试做的,但我只能提出一条信息,即产品名称,我也想提出产品数量和价格。

这是我正在使用的网页按钮

<asp:Button ID="Cartbutt" runat="server" Text="Add To Cart" CommandName="select" CommandArgument='<%# Eval("ProductName")%>' />

后面的代码代码:

protected void A4Repeater_ItemCommand(object source, RepeaterCommandEventArgs e) { if (e.CommandName == "select") { String ProductName = Convert.ToString(e.CommandArgument); } }

感谢您提供的任何帮助,因为我对 asp.net 和 c# 还很陌生。

【问题讨论】:

  • 你的描述不太清楚 - 产品数量是文本框,所以用户输入数量?
  • 我的数据库中有预先标记的数量,我正在检索这些数量
  • 那么@Arron Palmer 的答案就是要走的路。

标签: c# asp.net


【解决方案1】:

传递一个 id 作为您的 CommandArgument。当您从后面的代码中获取它时,从您的数据存储中获取新的项目。您的 UI 不应推动业务决策,因为数据在发布之前很容易被黑客入侵。

基于 cmets 的更新。在 CommandArgument 中使用 ProductId:

CommandArgument='<%# Eval("ProductId")%>'

代码隐藏:

if (e.CommandName == "select")
{
    int productId = (int)e.CommandArgument;
    // insert logic to get the product from the data source and use it
}

感谢 LiquaFoo 提供MSDN example

【讨论】:

  • 来自 MSDN 的示例:msdn.microsoft.com/en-us/library/…
  • 感谢您的示例,现在要从数据源获取产品,我需要创建一个新连接吗?我如何在另一个页面上发送和绑定该数据我一直在尝试找到一种方法来做到这一点,但不明白如何,另一个页面将是购物车页面
猜你喜欢
  • 1970-01-01
  • 2012-06-21
  • 1970-01-01
  • 2013-12-02
  • 1970-01-01
  • 2013-11-25
  • 2018-03-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多