C# 在中继器中访问对象数据
我的asp.net web表单页上有一个转发器 repeater数据源是“OrderLine”对象的列表 每个repeater项目都有一个TextBox控件,用于显示订单行的数量 当textbox控件中的数量发生更改时,将自动回发以重新计算OrderLine对象的总值和折扣值属性 我的问题是,有没有更好的方法直接访问对象数据,而不是像下面这样获取repeater项的索引并使用它来获取对象列表索引 如果可能的话,我希望直接访问对象,而不是创建临时变量C# 在中继器中访问对象数据,c#,asp.net,object,repeater,C#,Asp.net,Object,Repeater,我的asp.net web表单页上有一个转发器 repeater数据源是“OrderLine”对象的列表 每个repeater项目都有一个TextBox控件,用于显示订单行的数量 当textbox控件中的数量发生更改时,将自动回发以重新计算OrderLine对象的总值和折扣值属性 我的问题是,有没有更好的方法直接访问对象数据,而不是像下面这样获取repeater项的索引并使用它来获取对象列表索引 如果可能的话,我希望直接访问对象,而不是创建临时变量 protected void txtLineQ
protected void txtLineQuantity_TextChanged(object sender, EventArgs e)
{
RepeaterItem rItem = (RepeaterItem)((Control)sender).NamingContainer;
int i = rItem.ItemIndex;
decimal netPrice = OrderLines[i].NetPrice;
decimal netTotal = OrderLines[i].NetTotal;
int qty = OrderLines[i].Quantity;
decimal weight = OrderLines[i].Weight;
TextBox txtLineQuantity = (TextBox)rItem.FindControl("txtLineQuantity");
//... do calculations and bind data to repeater control
}
如果我错过了任何需要的信息,请让我知道
谢谢您可以向RepeaterItem添加HiddenField控件。将数据绑定到HiddenField ASP
<asp:Repeater runat="server" ID="repeater">
<ItemTemplate>
<asp:HiddenField ID="hiddenNetPrice" runat="server" Value='<%# Eval("NetPrice") %>' />
<!--Other Controls
</ItemTemplate>
</asp:Repeater>
RepeaterItem rItem = (RepeaterItem)((Control)sender).NamingContainer;
var hiddenNetPrice= rItem.FindControl("hiddenNetPrice") as HiddenField;
var netPrice = hiddenNetPrice.Value;