C# 从ASP.NET Repeater中的HiddenField获取正确的值
在我环顾四周并尝试了一些解决方案后,我决定发布。请记住,我正在学习asp atm(所以我的经验很少) 因此,问题如下:C# 从ASP.NET Repeater中的HiddenField获取正确的值,c#,asp.net,repeater,hidden-field,C#,Asp.net,Repeater,Hidden Field,在我环顾四周并尝试了一些解决方案后,我决定发布。请记住,我正在学习asp atm(所以我的经验很少) 因此,问题如下: <asp:Button runat="server" ID="addToCart" Text="Add to cart" OnClick="Something" CommandArgument='<%#Eval("ProductID")%>' /> 我有一个asp.net中继器从数据库中提取数据。 我有一个HiddenField,在那里我存储了一个ID
<asp:Button runat="server" ID="addToCart" Text="Add to cart" OnClick="Something" CommandArgument='<%#Eval("ProductID")%>' />
我有一个asp.net中继器从数据库中提取数据。
我有一个HiddenField
,在那里我存储了一个ID
在代码隐藏中,我尝试将ID
转换为字符串,但我尝试的所有操作都只返回一个ID,即1
Asp代码:
<asp:Repeater runat="server" ID="dataRepeater" EnableTheming="true">
<ItemTemplate>
<asp:HiddenField ID="prodID" runat="server" Value='<%#Eval("ProductID")%>' />
<asp:Button runat="server" ID="addToCart" Text="Add to cart" OnClick="Something" />
</ItemTemplate>
</asp:Repeater>
C#代码隐藏:
dataRepeater.DataSource=dt;
dataRepeater.DataBind();
受保护的无效内容(对象发送方、事件参数){
字符串pID=“”;
对于(int i=0;i
当我尝试foreach替代方案时,pID
中的结果是相同的1,其中它应该是数据库中的产品ID
我肯定我做错了什么,但我不知道是什么。
谢谢您的时间。在按钮单击
某物
方法中,无需对循环使用,因为它总是返回最后一次迭代值。因此,在您的OnClick
事件中使用以下代码来获取单击值:
//Get value from each button pressed in the RepeaterItem
var repeaterItem = ((Control)sender).NamingContainer;
string pID = (repeaterItem.FindControl("prodID") as HiddenField).Value;
在按钮单击Something
方法中,无需使用for
循环,因为它总是返回上一次迭代值。因此,在您的OnClick
事件中使用以下代码来获取单击值:
//Get value from each button pressed in the RepeaterItem
var repeaterItem = ((Control)sender).NamingContainer;
string pID = (repeaterItem.FindControl("prodID") as HiddenField).Value;
我知道这很古老,但万一有人在寻找答案
您可以按如下方式使用CommandArgument
:
<asp:Button runat="server" ID="addToCart" Text="Add to cart" OnClick="Something" CommandArgument='<%#Eval("ProductID")%>' />
我知道这很古老,但万一有人在寻找答案
您可以按如下方式使用CommandArgument
:
<asp:Button runat="server" ID="addToCart" Text="Add to cart" OnClick="Something" CommandArgument='<%#Eval("ProductID")%>' />
当您查看页面的HTML源代码时,是否在每个转发器项中看到隐藏字段的不同值?此外,根据您的代码,在完成for循环时,pID将保留最后一个转发器项中隐藏字段的值。repeater中的最后一项是否具有prodID隐藏字段值1?是,我得到了不同的值。我的问题的答案如下。谢谢。当您查看页面的HTML源代码时,您是否看到每个转发器项中隐藏字段的不同值?此外,根据您的代码,在完成for循环时,pID将保留最后一个转发器项中隐藏字段的值。repeater中的最后一项是否具有prodID隐藏字段值1?是,我得到了不同的值。我的问题的答案如下。谢谢