[英]Accessing Object data in repeater
我的asp.net Web表單頁面上有一個轉發器。
轉發器數據源是“OrderLine”對象的列表。
每個轉發器項都有一個TextBox控件,用於顯示訂單行的數量。
更改文本框控件中的數量時,會自動回發以重新計算OrderLine對象的total和discount值屬性。
我的問題是,是否有更好的方法直接訪問對象數據而不是獲取轉發器項的索引,並使用它來獲取如下所示的對象列表索引?
我想盡可能直接訪問對象,而不是創建臨時變量。
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>
C#
RepeaterItem rItem = (RepeaterItem)((Control)sender).NamingContainer;
var hiddenNetPrice= rItem.FindControl("hiddenNetPrice") as HiddenField;
var netPrice = hiddenNetPrice.Value;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.